SSH 允許遠端主機連接到本機轉送連接埠

SSH 允許遠端主機連接到本機轉送連接埠

我目前在 RHEL 7.0 中遇到有關 ssh 選項 -g (即遠端主機連接到本機轉送連接埠)的問題。

我正在使用通常的命令列從 myserver_ip 地址上的伺服器建立連接埠轉送連接:

ssh -o StrictHostKeyChecking=no user@server_fqn -L9090:other_server_ip:9080 -g

當我指向瀏覽器時(或嘗試使用curl獲取某些內容時,我收到連接拒絕異常):

curl -X GET "http://myserver_ip:9090"
curl: (7) Failed to connect to myserver_ip port 9090: No route to host

如果我在 Ubuntu 伺服器上執行相同的操作,它可以完美運行,但是在 RHEL 上它根本無法運行。

我懷疑防火牆、selinux,甚至網路連線。

為了解決/排除此問題,我嘗試了以下操作:

  • 停用防火牆 ( service firewalld stop)
  • 檢查selinux是否將9090管理為有效的http埠(semanage port -l | grep 9090),沒問題
  • 透過 netstat () 檢查連接埠是否打開netstat -alptn | grep 9090 ,看起來沒問題,我有一個 ssh 進程正在偵聽 9090
  • 檢查伺服器在乙太網路介面 ( tcpdump -i ens192 'port 9090' -v) 的連接埠 9090 上收到封包,確實收到封包...

所以基本上它符合系統接收接口上的請求,ssh進程正在偵聽給定端口上的所有接口,但是ssh進程不會將數據包轉發到另一端......

我真的沒有解決問題的線索,所以如果您有任何建議,請不要猶豫,我真的很感激一些幫助。

謝謝,

答案1

柯爾已經告訴你答案了。這與 SSH 無關,與防火牆無關,與 selinux 無關。

no route to host

運行curl的機器不知道應該將封包傳送到我的server_ip(與其關聯的IP位址)

相關內容