Linux

無法訪問使用 ssh 轉發的 http 服務

  • August 8, 2014

我將一個埠從遠端伺服器(上面執行著 Tomcat)轉發到我機器上的本地埠。

比如說,如果遠端伺服器地址是http://myremoteserver.com:8080,我通過這種方式將埠轉發到 localhost:

ssh -L 8080:myremoteserver.com:8080 -N watson

注意:只能通過 watson 訪問 myremoteserver。

轉發後,如果我在瀏覽器上執行 localhost:8080 ,我可以看到輸出。但是,如果我嘗試通過瀏覽器(例如​​ server1:8080)從網路上的任何其他電腦(本地主機的 DNS 為 server1)訪問此本地主機,它根本不會載入。

奇怪的是,如果我在 localhost 上執行 tomcat(而不是通過 ssh 進行埠轉發),並通過瀏覽器從網路上的另一台機器 server1:8080 訪問它,它就可以工作。

請幫忙。我認為它必須與 iptables 做一些事情;但即使關閉它也不起作用。

試試這個:

ssh -L *:8080:myremoteserver.com:8080 -N watson

man ssh選項的摘錄-L

By default, the local port is bound in accordance with the GatewayPorts setting.
However, an explicit bind_address may be used to bind the connection to a specific address.
The bind_address of “localhost” indicates that the listening port be bound for local use 
only, while an empty address or ‘*’ indicates that the port should be available from 
all interfaces.

引用自:https://unix.stackexchange.com/questions/149273