我的端口真的开放了吗?

我的端口真的开放了吗?

假设我想在我的电脑上在端口 1234 处安装一个服务器,以便互联网上的其他主机可以连接到它。我位于路由器 NAT 后面,因此我将路由器配置为将到 1234 的连接转发到我的 LAN IP 地址。我使用一些服务,例如或者要检查它是否真的打开,请输入我的 Internet IP 和端口号。它说我的端口是打开的,实际上同时服务器接收到一个连接:

# nc -vv -l -p 1234
listening on [any] 1234 ...
connect to [192.168.0.7] from ec2-52-202-215-126.compute-1.amazonaws.com [52.202.215.126] 37873
sent 0, rcvd 0

但是当我尝试使用我的 Internet IP 连接到我自己时,它会超时。如果我不监听端口,连接就会被拒绝,这是理所当然的。如果我监听,它会被忽略:

# nc -vv -l -p 1234 &
[1] 6869
# nc 95.252.xxx.xxx 1234

然后它就挂在那里了。(当然,如果我改用 LAN IP,它就可以正常工作)。

此外,我注意到一些主机也无法连接到我的服务器:这种安排的最初目的是快速向我的一个朋友发送命令,他经常打电话给我并要求我修复他的计算机上的某些东西,并且他不想使用 telnet 或 ssh 之类的软件。显然他的计算机也无法连接到我的计算机。

我的电脑没有防火墙。据我所知,路由器不过滤出站连接。(Netgear DG834G)

有什么线索吗?

相关内容