實驗室中有一台電腦可以通過公網ip進行ssh登錄,因為服務器只將ssh端口暴露出來所以無法通過ss等需要開放其他端口的方式來構建代理服務器, 本文將利用ssh隧道建立的代理服務器,無需其他軟件上的配置,將內網訪問請求通過代理服務器進行轉發。
Requirements
- Proxifier Win/Mac
- 內網中擁有公網ip的服務器賬號
原理
- 利用ssh隧道的socks5代理,使用Proxifier將內網訪問請求強制通過代理服務器
1. 准備
需要Proxifier客戶端,Win/Mac平台都有對應的客戶端,度娘即可
2. 建立ssh隧道
2.1. 使用ssh命令
ssh -D ${本地代理端口} ${用戶名}@${公網服務器ip地址} -p ${ssh端口}
例如
ssh -D 1082 bill@202.118.**.** -p 22
2.2. 使用Xshell等ssh客戶端
在具有公網ip的服務器連接配置中的隧道
配置中添加一個Dynamic轉移規則
3. 配置Proxifier
在其中配置代理服務器,地址一定為127.0.0.1
,端口要和之前建立ssh隧道時填寫的本地代理端口(Xshell中的偵聽端口)保持一致,本文中均設置為了1082
-
配置其中的代理規則,孫老師和楊老師的服務器地址在192.168.2.*網段中,我們只需要將這些網段地址中的訪問請求通過代理服務器即可。其他地址的服務器代理規則同理。
-
保存后便可以自動通過代理進行實驗室內部服務器資源的訪問了,實測支持jupyter vscode ssh ftp
-
使用jupyter時請注意,需要在命令中手動指定ip地址,例如在孫老師服務器上執行
jupyter notebook --ip 192.168.2.118 --port 10086
便可以在本地瀏覽器中通過訪問192.168.2.118:10086來使用jupyter