我如何(通过日志记录)证明端口阻塞发生在哪里?

我如何(通过日志记录)证明端口阻塞发生在哪里?

我如何(通过日志记录)证明端口阻塞发生在哪里?

我在 IIS(Windows 7 家庭版)上设置了一个 FTP 站点,并在 Windows 防火墙中设置了允许访问的规则。我可以通过本地浏览器访问我的静态 IP(ftp.example.com,其中 DNS 是 godaddy,因此它解析为我的静态 IP,并且正在提供 ftp 目录)。我还在我的 uVerse 路由器防火墙中设置了一条规则,允许 FTP 服务器访问此计算机。但是,我的客户无法访问我的 FTP 站点,当我使用 mxtoolbox.com 进行测试时……

1.开放端口:

80  http    Success 78 ms

这些端口已关闭:

21  ftp Timeout 0 ms

此外,我可以添加其他开放端口,例如 IMAP 和 POP3,一旦我编辑路由器防火墙,它们就会显示为开放。无论我删除和添加 FTP 服务器多少次,端口 21 永远不会在 mxtoolbox.com 上显示为开放,当然客户无法访问 FTP 站点。他可以成功访问我本地托管的网页。

答案1

从远程站点,您可以使用它traceroute来找出路径中端口被阻止的位置。请注意,这必须是 *nix 跟踪路由,例如 Linux,因为 Windows 不支持通过任意端口进行跟踪路由。

比较

sudo traceroute -p 21 -T <your server ip>

sudo traceroute -p 80 -T <your server ip>

这些必须以 root 身份运行,因为它需要提升的权限。

注意是 IP最后一个成功的跳转会告诉您阻塞的位置 - 即没有响应的跳转。因此,在端口 21 跟踪路由中最后一个成功的跳转之后,在端口 80 跟踪路由中查找下一个跳转。

答案2

要检查您的端口在哪个点或跳跃被阻止,请使用tracetcp。它非常简单,如下所示。

要检查端口 31 一直到目的地:

$ tracetcp www.ebay.co.uk:31

Tracing route to 66.135.192.41 [www.ebay.co.uk] on port 31


Over a maximum of 30 hops.

1       1 ms    1 ms    1 ms    192.168.0.1     [wintermute]

2       10 ms   13 ms   9 ms    10.78.128.1

3       *       *       *       Request timed out.

4       *       *       *       Request timed out.

5       *       *       *       Request timed out.

6 ... continues until maximum number of hops reached.

您只需安装 winpcap,该实用程序即可在 Windows Cmd 中运行。

http://simulatedsimian.github.io/traacetcp_examples.html#scan-for-blocked-outgoing-ports

答案3

如果您无法访问 Linux,只需在 Windows 上安装 telnet 客户端:

控制面板 -> 程序和功能

telnet server-ip port

或者您可以下载 PuTTY。

如果连接超时或者被拒绝,那么就会出现问题:)

相关内容