远程端口转发不起作用

远程端口转发不起作用

我有一个在本地运行的测试应用程序,并使用远程端口转发让其他人访问它。

一切都运行正常,直到我在 EC2 上建立了一个新的服务器实例。

EC2 服务器运行 CentoOS 7。没有运行防火墙,我已将 SELinux 设置为宽容,并在安全组规则中打开了一个端口。然后我运行

ssh -v -N -R port_num:localhost:port_num 

(其中 port_num 实际上是端口号),我可以看到连接正在建立。我还检查了远程服务器上的 netstat,可以看到正在监听的端口号。

这曾经有效,但在这台机器上却不行。我认为这要么与 EC2 有关,要么与 CentOS 7 有关,但已经没什么可尝试的了。

在远程服务器上运行 tcpdump 时,我确实注意到 eth0 上传入的请求长度为 0。不确定为什么或者这不是一个转移注意力的花招,但值得一提。

对于我遗漏的内容您有什么想法吗?

谢谢!

编辑1

添加了一个快速 Web 应用程序,用于侦听我想要转发的端口,并显示“Hello, World!”页面。我可以毫无问题地访问它,因此 EC2 实例上的端口 8080 是开放的并且正在接收请求。只是端口转发不起作用。

我试过

ssh -v -N -R 0.0.0.0:port_num:localhost:port_num

但这似乎也没什么帮助。

编辑2

如果我在本地运行我的 Web 应用程序,运行ssh -N -R port_num:localhost:port_num,然后从另一个终端 ssh 到远程服务器,然后curl http://localhost:port_num/test,我会从本地服务器收到响应。因此转发正在工作。只是来自外部浏览器并发往 eth0 的请求不会被转发。不确定这是如何在旧服务器上实现的(它刚刚工作),有什么想法我应该做些什么才能使其工作?同样,iptables 被禁用,在旧服务器上也被禁用。

答案1

哦,我真傻。我忘了一个步骤,即GatewayPorts on在 sshd_config 中设置。

大惊小怪。希望这篇文章将来能帮到别人。

相关内容