實驗室里有一臺服務器C,我在實驗室里有一臺和服務器在同一局域網的電腦B,我自己的筆記本A在寢室。我想在A電腦上直接訪問C的網站,那么該如何實現(xiàn)呢?
ssh-正向與反向代理 - tanoak - 博客園 (cnblogs.com)
示意圖.png
使B能訪問在C上運行的Jupyter notebook
我直接在C上打開了Jupyter notebook(可以百度一下jupyter 遠程訪問),但是C并沒有開放8888端口(jupyter默認是8888端口),只開放了常用的端口,如22端口等。那么首先需要解決的是使B能訪問到C端的jupyter網頁,這時只需要在B上配置ssh,使用ssh的端口轉發(fā)的功能來訪問C的8888端口
ssh -L 4000:localhost:8888 username@192.168.1.66 -p port
這樣就能直接在B的電腦上輸入localhost:4000來訪問C服務器上jupyter通過8888端口開放的服務
使A能通過B來訪問C開放的jupyter服務
這時只需要在B上做如下配置:
ssh -CfNg -R 4000:localhost:4000 usrname@123.123.999.xxx
這樣就能直接在A電腦上輸入localhost:4000來直接訪問C中開啟的服務了
SSH常用參數
-N 告訴SSH客戶端,這個連接不需要執(zhí)行任何命令。僅僅做端口轉發(fā)
-C 表示壓縮數據傳輸
-f 告訴SSH客戶端在后臺運行
-q Quiet mode. 安靜模式,忽略一切對話和錯誤提示
-g:允許遠程主機連接主機的轉發(fā)端口
-L port:host:hostport 做本地映射端口(正向隧道,監(jiān)聽本地port)
需要使用的本地端口號
需要訪問的目標機器IP地址(IP: 234.234.234.234)
需要訪問的目標機器端口(端口: 21)
-R。port:host:hostport 該參數的三個部分的含義分別(反向隧道,監(jiān)聽遠程port)
遠程機器使用的端口(2222)
需要映射的內部機器的IP地址(127.0.0.1)
需要映射的內部機器的端口(22)
栗子 -R X:Y:Z 就是把我們內部的Y機器的Z端口映射到遠程機器的X端口上
-D port 指定一個本地機器 ``動態(tài)的 應用程序端口轉發(fā)
備注
上圖中A和B電腦都是win10系統(tǒng),win10系統(tǒng)開啟要手動開啟OpenSSH服務才能使用ssh登錄,開啟的方法是先在設置中打開應用->可選服務然后添加OpnenSSH服務,之后再在開始菜單中搜索服務,在服務中打開與OpenSSH相關的兩個服務就行。image.png