ssh -D -L -R 差異


需要sshd的host,執行命令時就要輸入host的密碼,或者host上有登陸機的公鑰。

yes 表示ssh會自動監聽,listen表示需其他主動監聽。

1. ssh -D port host

記執行命令的機器為local。

port sshd
local yes no
host no yes

相當與在local:port有一個代理,實際請求由host發出,host不涉及監聽port問題。

記三台機器分別為host1,host2,host3。目標為通過host3將host1:port1的數據轉發給host2:port2。

2. ssh -L port1:host2:port2 host3

port1 port2 sshd run forward
host1 yes no no yes no
host2 no listen no no no
host3 no no yes no yes

命令必須在host1上執行,host3必須有sshd。

3. ssh -R port1:host2:port2 host1

port1 port2 sshd run forward
host1 yes no yes no no
host2 no listen no no no
host3 no no no yes

yes

命令必須在host3上執行,host1必須有sshd。

實際情況中,可能某2台host相同,或者3台host全部相同,或者2端口相同。

應根據需要監聽的端口,需要轉發的端口,以及sshd的位置,選擇合適的命令。

其他可能用到的選項為

-f 后台運行

-N 不開shell

-T 不分配tty

例:

  ssh -fNTL 8000:127.0.0.1:8000 192.168.1.3

若以host3 為轉發機host1 host2 指向以host3為准。

此例中,假定執行機host為192.168.1.2,

實際效果為將192.168.1。2:8000的數據轉發給192.168.1.3:8000。

因為192.168.1.3為實際轉發機,無論實際監聽為127.0.0.1:8000還是0.0.0.0:8000,

192.168.1.2:8000的數據均能正確到達192.168.1.3:8000。

即訪問192.168.1.2:8000等同於在192.168.1.3訪問127.0.0.1:8000。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM