用途
在遠程服務器使用jupyter notebook或者tensorboard等時,在本地打開服務器端的網頁的方式有很多比如可以使用MobaXterm工具等,此方法可參考https://blog.csdn.net/cc__cc__/article/details/108060618?spm=1001.2014.3001.5502。
若直接使用ssh則可通過如下命令:
ssh username@remote_address -L 127.0.0.1:8888:127.0.0.1:8008
其中8888是本地端口號,8008是服務器端端口號,可根據實際情況進行調整。
ssh中-L參數
在 SSH 中,-L 參數用于設置本地端口轉發(Local Port Forwarding)。它允許你在本地主機上創建一個監聽端口,將收到的連接轉發到遠程主機的指定端口,從而實現本地和遠程主機之間的端口映射。
SSH 的本地端口轉發語法如下
ssh -L [bind_address:]local_port:remote_address:remote_port user@remote_host
其中:
- [bind_address:]local_port:本地主機上用于監聽的端口。
- remote_address:remote_port:遠程主機和端口,數據將通過 SSH 連接轉發到這個地址和端口上。
本地端口轉發可以用于很多場景,例如:
- 訪問遠程主機上的服務:如果遠程主機上有一些服務(例如數據庫或Web服務器)只允許在本地訪問,你可以使用本地端口轉發來訪問這些服務,將本地的端口映射到遠程主機的服務端口上。
- 繞過防火墻限制:當你無法直接訪問遠程主機的某個端口時(例如遠程主機的防火墻限制),你可以通過本地端口轉發,將本地端口映射到允許訪問的遠程主機端口上,從而繞過限制。
- 安全訪問服務:你可以將遠程主機上的某些服務通過本地端口轉發到本地主機,從而在本地主機上安全地訪問這些服務,而不必直接連接到遠程主機。
需要注意的是,使用本地端口轉發時,本地主機上的端口是在本地監聽的,并非遠程主機上的實際端口。因此,當你在本地連接到轉發的端口時,SSH 將會將數據通過安全的連接轉發到遠程主機上的相應端口。