我一直在为全新的 Ubuntu 安装设置 SSH 服务器。但是,该服务器仅接受来自本地网络的连接。如果我尝试通过公共 IP 地址连接到它,我会得到:
ssh: connect to host XXX.XXX.XXX.XXX port 31415: Connection refused
我已经转发了必要的端口,并允许它通过防火墙。我可以 ping 通 IP,并且端口检查器似乎检测到了服务器,这让我相信这不是端口转发问题。
防火墙规则:
31415/tcp ALLOW Anywhere
31415/tcp (v6) ALLOW Anywhere (v6)
Netstat 输出:
...
tcp 0 0 0.0.0.0:31415 0.0.0.0:* LISTEN -
tcp 0 400 10.0.0.30:31415 10.0.0.18:16669 ESTABLISHED -
...
sshd_配置:
...
# What ports, IPs and protocols we listen for
Port 31415
#Use these options to restrict which interfaces/protocols sshd will bind to
#ListenAddress ::
#ListenAddress 0.0.0.0
...
是我的网络接口出了问题吗?是否有强制仅本地连接的设置?我该如何强制它接受远程 IP 以及本地 IP?
答案1
根据以上讨论回答。对于某些路由器,本地环回对于 TCP 和 ICMP 数据包的处理方式不同。因此,路由器将响应 WAN 地址上的 ping,但不允许本地网络用户连接到 WAN 端的端口转发。
为了测试该理论,应该使用 nmap 检查端口是否打开,或者应该从远程地址尝试连接。
nmap -p 31415 -Pn your_internet_ip
或者
去http://canyouseeme.org并从那里进行检查(这是 OP 所做的)。