为了描述这种情况,我需要定义三台机器。在本地网络上,我有一台机器(笔记本电脑)和一台机器(服务器)分别通过 WAN 和 LAN 连接到路由器。第三台机器是外部 vps (VPS)。
我正在尝试使用明确的 IP 地址从笔记本电脑通过 SSH 连接到服务器。为此,我设置了监听端口 22 的 openssh 服务器(所有机器都运行 Ubuntu)。在路由器上,我为 SERVER 提供了一个保留的 IP 地址,并将传入端口 22 的端口转发规则添加到 SERVER 的端口 22。
什么工作: - 从 VPS 到服务器的 SSH - 从笔记本电脑到服务器的 SSH,使用本地网络内部的本地主机名
什么不工作: - 使用显式 IP 地址从笔记本电脑 SSH 到服务器。
为了尝试调试,我运行了 nmap 以查看端口是否被过滤。我在 VPS 和 LAPTOP 上都运行了以下命令
nmap -sS -p 22 xx.xx.xx.xx
其中 x 表示本地网络路由器的文字外部 IP。结果如下:
VPS:22/tcp 打开 ssh
笔记本电脑:22/tcp 过滤 ssh
只是为了仔细检查我是否使用 LAPTOP 中的本地主机名,端口应该是打开的。使用显式外部 IP 从笔记本电脑 SSH 时,为什么端口会被过滤?我的路由器是否过滤了传出请求?