我正在尝试使用我的 aws ec2 机器的公共地址进行端口转发以访问我的本地机器端口 8888。(xxxx.compute.amazonaws.com:8888)
我尝试了这个:
ssh -R 8888:localhost:8888 [email protected]
我没有收到任何错误消息,但是它就是不起作用。
netstat -ant
ssh 端口转发之前:
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 127.0.0.53:53 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN
tcp 0 0 172.31.xxx.xxx:22 124.122.xxx.xxx:12902 ESTABLISHED
tcp6 0 0 :::22 :::* LISTEN
netstat -ant
ssh 端口转发之后:
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 127.0.0.53:53 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN
tcp 0 0 127.0.0.1:8888 0.0.0.0:* LISTEN
tcp 0 0 172.31.xxx.xxx:22 209.141.xxx.xxx:53296 TIME_WAIT
tcp 0 368 172.31.xxx.xxx:22 124.122.xxx.xxx:1095 ESTABLISHED
tcp6 0 0 :::22 :::* LISTEN
tcp6 0 0 ::1:8888 :::* LISTEN
但浏览器中一直出现此问题ERR_CONNECTION_REFUSED
。即使在我的简单 apache2 服务器上执行此操作也不起作用:ssh -R 8888:localhost:80
。
我在 aws ec2 上也有这些入站规则:8888 TCP 0.0.0.0/0
我甚至添加了8888 TCP ::/0
, 8888 UDP ::/0
但8888 UDP 0.0.0.0/0
问题是一样的。
答案1
远程服务器仅在本地主机上监听 8888,因此您无法从外部浏览器连接到该服务器。我尝试时也是这种情况 - 但我将 EC2 上的 /etc/ssh/sshd_config 更改为 set GatewayPorts yes
,重新启动 sshd,现在它对我来说工作正常。