我打开了端口 25374,这是 eMule TCP 端口,然后我使用canyouseeme.org检查它是否真的打开了。
我遇到了一个奇怪的问题:
当 eMule 运行时,canyouseeme.org 看到了我的端口。我收到以下消息:"Success: I can see your service on xxx.xx.xxx.xx on port (25374) Your ISP is not blocking port 25374"
当我关闭 eMule 然后在 canyouseeme.org 上再次检查端口时,我得到了:Error: I could not see your service on xxx.xx.xxx.xx on port (25374)
原因:连接超时
但是当我关闭 Windows 防火墙时,我收到了不同的错误:Error: I could not see your service on xxx.xx.xxx.xx on port (25374)
原因:连接被拒绝
谁能向我解释为什么会发生这种情况以及如何使端口始终打开?
谢谢
答案1
您的端口转发功能正常运行。只是存在以下区别:
- 转发端口
- 开放端口
- 关闭的端口
- 被阻塞的端口
端口转发只是路由器的一项功能,它指示路由器将数据包路由到特定主机的特定端口。无论目标主机的端口实际上是打开还是关闭,它都会执行此操作。
如果目标主机的目标端口已关闭,路由器仍会将任何连接请求数据包转发到目标主机,但目标主机将回复一个RST
数据包,告知远程主机端口已关闭,而不是SYN-ACK
继续连接的响应。(这是 TCP SYN ping 所基于的机制,也是许多端口扫描器的工作方式。)
但是,如果防火墙主动阻止了端口,那么甚至响应也RST
可能会被阻止。因此网络活动将如下所示:
- 外部主机
SYN
向路由器发送数据包(TCP 连接请求的三次握手的第一步)。 - 路由器接收
SYN
数据包并将其重新路由到目标主机。 - 目标主机接收到
SYN
数据包,但被 Windows 防火墙阻止。即使 eMule 正在运行,该应用程序也不会收到连接请求。 - 外部主机等待
RST
或SYN-ACK
响应,告知它目标端口已关闭或连接请求已被接受;但是,什么也没有发生...... - 最终,外部主机的客户端应用程序决定等待的时间足够长,并且连接超时。
这是防火墙的一个特点,它只是丢弃流量。防火墙拒绝流量仍会发送RST
响应或 ICMP destination unreachable
。但是,这会向潜在攻击者暴露更多有关网络的信息,这就是为什么一些网络管理员更喜欢简单地丢弃被阻止的流量。