无法访问使用 ssh 转发的 http 服务

无法访问使用 ssh 转发的 http 服务

我将一个端口从远程服务器(上面运行着 Tomcat)转发到我的计算机上的本地端口。

假设远程服务器地址是http://myremoteserver.com:8080,我通过这种方式将端口转发到本地主机:

ssh -L 8080:myremoteserver.com:8080 -N 沃森

注意:只能通过 watson 访问 myremoteserver。

转发后,如果我在浏览器上运行 localhost:8080,我可以看到输出。但是,如果我尝试通过浏览器(例如 server1:8080)从网络上的任何其他计算机(本地主机的 DNS 是 server1)访问此本地主机,则它根本不会加载。

奇怪的是,如果我在本地主机上运行 tomcat(而不是通过 ssh 进行端口转发),并通过浏览器从网络上的另一台计算机 server1:8080 访问它,它就可以工作。

请帮忙。我认为它必须与 iptables 做一些事情;但即使关闭后也不起作用。

答案1

尝试这个:

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

摘录自man sshfor 选项-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.

相关内容