我将一个端口从远程服务器(上面运行着 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 ssh
for 选项-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.