我家里有一台运行 ArchLinux 的服务器,名为 SERVER。目前,我可以通过从同一 LAN 上连接的另一台计算机发出 SSH 来访问这台机器ssh user@SERVER
。如果我将 SERVER 替换为 SERVER_LAN_IP(192.168.XX),它也可以正常工作。
我希望这个服务器可以从互联网公开访问,所以我设置了路由器来转发适当的端口(外部 1234 到内部 22)。现在从同一 LAN 上的计算机发出请求ssh -p 1234 user@ROUTER_WAN_IP
似乎可以解决问题。然而,当我离开LAN,我甚至无法 ping ROUTER_WAN_IP。
如果有帮助的话,我正在使用有线互联网连接。路由器通过 DHCP 检测调制解调器vlan
并获取其外部 IP。
答案1
有时,最简单的方法是从最低限度的配置开始,然后从那里开始进行操作。
确保您正在使用端口转发,而不是“端口触发”
禁用“无法从 WAN 进行 ping”功能(这可以防止对路由器进行 PING)
使用 traceroute/tracert 查看数据包是否能够成功到达路由器
将您的服务器放在 DMZ 内,然后首先尝试此操作
接下来,尝试不重定向端口(只需使用 22)
如果上述操作有效,则从 1234 转发到 22
禁用不必要的防火墙安全功能,成功后逐一启用它们。(如果没有成功,请记住恢复到原始安全设置)
检查路由器防火墙日志和服务器日志,查找潜在问题的报告