ssh 埠轉發時,大寫 -N 引數的作用
阿新 • • 發佈:2021-11-22
本地轉發(-L)
將ssh的機器用作跳板機去連線另一臺機器:
ssh -L 5050:192.168.0.0:4849 [email protected] -N
敲完密碼成功後,我們訪問本機的5050埠就是在訪問 [email protected]
這臺跳板機的區域網下的IP地址為192.168.0.0 的4849 埠。
二次跳板
設本機區域網地址為192.168.1.1, 如果使用以下ssh命令: ssh -L "*:5050:192.168.0.0:4849" [email protected] -N
, 並關閉本機和路由器防火牆,則使用同一網段中的別的機器(如192.168.1.5)訪問192.168.1.1:5050 就等於在訪問 [email protected]
-N 選項的含義
-N' Do not execute a remote command. This is useful for just forwarding ports (protocol version 2 only).
ssh man page
不執行遠端命令. 用於轉發埠. (僅限協議第二版)
解釋
ssh用於在遠端機的shell指令碼中執行命令,如ssh user@server ls
。 如果後面不指定命令,則進入遠端機的shell。
而在使用ssh的 -D -L -R
選項進行埠轉發時,我們總是希望保留這條打通的隧道,為其他業務而服務。因此使用 -N選項。