Ssh
無法 SSH,但 TeamViewer 可以
我想通過 SSH 連接到阻止 SSH 連接(傳入和傳出)的防火牆後面的電腦。有趣的是,我仍然可以使用遠端桌面軟體 TeamViewer 訪問電腦。我假設 TeamViewer 被允許進入,因為它使用的埠與 SSH 的預設埠 22 不同,所以我將以下埠添加到 /etc/ssh/sshd_config:
Port 22 Port 443 Port 80 Port 5938 Port 10000
然後嘗試使用(例如)依次連接到它們中的每一個
ssh user@remote-computer.com -p 5938
所有埠都不起作用:我仍然收到
Connection timed out
錯誤消息。為什麼 TeamViewer 可以連接到遠端電腦而 SSH 不能?如何通過 SSH 進入(或退出)遠端電腦?
如果您想通過 SSH 連接到防火牆後面的電腦,則需要將埠轉發 (DNAT) 規則添加到防火牆,將埠 22(或您決定使用的任何埠)映射到內部伺服器上的 SSH 埠.
TeamViewer 能夠通過使用NAT Traversal和UDP 打孔等技術來建立通過路由器與 PC 的連接。雖然 TeamViewer 連接是點對點的(客戶端直接連接到主機),但初始連接是在 TeamViewer 的伺服器的幫助下建立的,該伺服器告訴主機客戶端正在嘗試連接,然後通過讓伺服器和客戶端嘗試打開連接,然後將防火牆置於允許 TeamViewer 連接通過主機的狀態。
TeamViewer 連接到主機的流量通過路由器,就像訪問網頁的流量一樣,當 PC 上的瀏覽器通過防火牆請求網頁,然後將響應返回給它。主要區別在於“技巧”用於打開客戶端防火牆/路由器上的相應埠,並允許從遠端 TeamViewer 客戶端進行連接。