我正在尝试设置一个简单的 SSH 服务器,但即使在端口转发之后,端口仍然被过滤。(我已将 SSH 设置为使用端口 1338,而不是默认的 22。)
我们可以通过在本地 IP(端口开放的地方)和外部 IP 上运行 Nmap 扫描来查看端口是否被过滤了。
在本地 IP 上运行 nmap:
$ nmap -p 1338 -Pn 192.168.1.144
Starting Nmap 7.70 ( https://nmap.org ) at 2019-12-17 16:34 CET
Nmap scan report for 192.168.1.144
Host is up (0.0030s latency).
PORT STATE SERVICE
1338/tcp open wmc-log-svc
Nmap done: 1 IP address (1 host up) scanned in 0.08 seconds
在外部 IP 上运行 nmap:
$ nmap -p 1338 -Pn <server's external IP>
Starting Nmap 7.70 ( https://nmap.org ) at 2019-12-17 16:34 CET
Nmap scan report for <external-IP>.<ISP-info> (<external IP>)
Host is up.
PORT STATE SERVICE
1338/tcp filtered wmc-log-svc
Nmap done: 1 IP address (1 host up) scanned in 2.07 seconds
端口转发设置(如果相关的话,这是华硕 RT-N12D1 路由器):
这可能是什么原因造成的?似乎有防火墙阻止了通信,但我没有配置任何防火墙。我最近搬家并接管了前租户的互联网服务,也许我的路由器和互联网之间有防火墙?
编辑
此用户谈论的是 Linux 过滤传入连接。我的服务器正在运行全新安装的 Ubuntu 16.04,据我所知,Ubuntu 没有预配置防火墙。
编辑
我记录了使用流量tcpdump
,并且可以确认流量没有被服务器本身阻止(即流量被路由器或链中较早的某些东西过滤)。
答案1
事实证明我的 ISP 正在使用运营商级 NAT,这实际上意味着我有一个私有 IP 地址。解决方案是给他们打电话并要求一个公共 IP 地址。
答案2
如果您扫描的公共 IP 被转发到您正在扫描的机器,您可能会遇到许多问题。可能会出现许多路由和网络地址转换问题。首先,我建议您从防火墙外的机器扫描 IP 和端口,并监控目标机器上的流量。这至少可以帮助您确定数据包是否通过了路由器/防火墙。此外,如果端口与病毒和僵尸网络等不良流量相关联,ISP 偶尔会阻止端口,因此您可能需要测试几个端口。我曾多次看到端口被阻止。
答案3
在华硕路由器中,您必须转到“管理”,然后在底部的“系统”中启用 ssh 访问并选择您的服务器的 ip(目标 ip)。
答案4
请考虑检查您的 LAN Linux 中有哪些反向网关。例如,我在我的/etc/netplan
:
...
gateway4: 192.168.1.2
这是从以前的家庭网络转移后留下的未更改 IP,与当前的 LAN 家庭路由器 IP 不同。将其更改为实际网关 IP 后,一切都恢复正常。而且 Nmap 现在是“开放”的,而不是“过滤”的。
– 苦难故事的概要:
我的诊断结果和情况是:
转发端口 22(还有其他几个)设置正确,但 Nmap 显示为“已过滤”且无法访问。此外,我在从外部机器手动尝试连接到 5G 家庭路由器 WAN 上的这个 22 端口时出现超时。
如果我使用 Nmap 测试本地网络内针对这个 Ubuntu 的那些端口,我可以看到“开放”端口的状态。
我做了所有可能的检查。我甚至设置了测试以将 5900 端口从外部转发到我的 iMac,Nmap 显示它为打开并且可以正常工作,所有设置都类似于 Ubuntu 的 22 端口。
我甚至在 Ubuntu 上禁用了 ufw:,ufw disable
删除了所有 iptables。
更多信息:这个 Ubuntu 在没有更改具有相同端口的配置的情况下,在另一个家庭中使用另一个路由器,并且它有端口转发到它并正常工作。
另外:ISP 不限制端口。WAN IP 是公开的(但遗憾的是不是静态的 :P)。
我甚至使用不同的 5G 路由器进行了测试,但并没有以同样的方式成功——5900 可以,22 则不可以。
硬件也重启了。但我应该深入研究 Ubuntu 的主要证据是 iMac 的 5900 转发测试通过了。
最后我……终于:),发现是 Ubuntu 的网关错误^_^。