我的服务器运行的是 Ubuntu Server 14.04。当从本地 LAN 客户端通过 SSH 连接时,它工作正常。当我使用来自外部网络的其他机器进行连接时,我收到“连接超时”的提示。
我不明白为什么。
我的路由器配置为将外部端口 51887 转发到 Ubuntu 服务器上的端口 22,并将第二个端口 51888 转发到我的 Macbook 上的端口 22。
连接到 Macbook 上的 SSH 服务器(与 Ubuntu 服务器位于同一 LAN 中)并从同一远程客户端工作正常。因此,我得出结论,问题不在于路由器/端口转发。
我曾尝试在非标准端口 22000 上运行 Ubuntu 上的 SSH 服务器(并更新了端口转发规则),但结果没有变化。
我已经确认 ufw 和 iptables 未处于活动状态。自安装服务器以来,我没有更改任何默认设置。
我一直在查看 /var/log/auth.log,我可以看到本地连接,但是没有记录远程连接的任何内容,这表明它们没有到达服务器?
所以我能通过 SSH 本地连接到 Ubuntu 服务器,然后我能也可以通过 SSH 远程连接到 Macbook,但我不能远程连接到 Ubuntu 服务器。
我被难住了,花了好几天时间,阅读了大量 askubuntu 主题和其他资源。有人有什么好的建议吗?
编辑:netstat 和 iptables 的输出:
myuser@server:~$ sudo netstat -natp | grep 22
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1291/sshd
tcp 0 0 192.168.192.61:22 192.168.192.29:58672 ESTABLISHED 1645/sshd: myuser
tcp6 0 0 :::22 :::* LISTEN 1291/sshd
myuser@server:~$ sudo iptables -L -n
Chain INPUT (policy ACCEPT)
target prot opt source destination
Chain FORWARD (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination