跟踪特定的 IP 和端口

Posted

技术标签:

【中文标题】跟踪特定的 IP 和端口【英文标题】:trace a particular IP and port 【发布时间】:2012-06-15 06:48:11 【问题描述】:

我有一个应用程序在远程服务器上的端口 9100 上运行,该服务器提供 http 页面。在我 ssh 进入服务器后,我可以 curl localhost 9100 并收到响应。

但是我无法使用http://ip:9100从浏览器访问相同的应用程序

我也无法从本地 PC 远程登录。我该如何调试它?有没有办法组合,以查看它被阻止的位置?

任何 linux 工具/命令/实用程序将不胜感激。

谢谢, 穆尔塔萨

【问题讨论】:

【参考方案1】:

您可以为此使用默认的traceroute 命令,这样就没有什么要安装的了。

traceroute -T -p 9100 <IP address/hostname>

-T 参数是必需的,以便使用 TCP 协议而不是 UDP。

traceroute 不可用的极少数情况下,您也可以使用ncat

nc -Czvw 5 <IP address/hostname> 9100

【讨论】:

太棒了!请注意,您需要 root 权限才能执行该命令【参考方案2】:
tcptraceroute   xx.xx.xx.xx 9100

如果你没有找到它,你可以安装它

yum -y install tcptraceroute 

aptitude -y install tcptraceroute 

【讨论】:

Homebrew 也为这个小宝石工具提供了一个包。 brew install tcptraceroute。但是,您确实需要 sudo 才能使用该工具。【参考方案3】:

您可以在服务器上使用tcpdump 来检查客户端是否到达服务器。

  tcpdump -i any tcp port 9100

还要确保您的防火墙没有阻止传入连接。

编辑:如果您不想在控制台上读取它,您也可以将转储写入文件并在客户端上使用wireshark查看它。

第二次编辑:您可以检查是否可以通过

 nc ip 9100 -z -v

从您的本地 PC。

【讨论】:

【参考方案4】:

首先,检查您的应用程序绑定的 IP 地址。例如,它只能绑定到本地地址,这意味着无论防火墙状态如何,您都不会从其他机器上看到它。

您可以尝试使用像 nmap 这样的端口扫描器来查看端口是否打开并且在外部可见...它可以告诉您端口是否关闭(那里没有任何监听)、打开(您应该可以看到它很好) 或过滤(例如通过防火墙)。

【讨论】:

Rook,感谢您的回复。如何检查 IP 绑定? 另外,当我做 nmap 时它只显示打开的端口,我用什么选项来显示所有端口? 好吧,不了解您的应用程序是不可能的!看看它的配置文件,也许?您可以尝试查看netstat -lt 的输出...例如,绑定到本地地址的应用程序将显示为“tcp localhost:9100”。 感谢 Rook,这是它只绑定到本地 IP 的问题。【参考方案5】:

可以使用以下命令完成:tcptraceroute -p destination port destination IP。喜欢:tcptraceroute -p 9100 10.0.0.50 但不要忘记在您的系统上安装 tcptraceroute 包。 tcpdump 和 nc 默认安装在系统上。问候

【讨论】:

以上是关于跟踪特定的 IP 和端口的主要内容,如果未能解决你的问题,请参考以下文章

如何从跟踪器响应中获取对等方的 IP 和端口

IP列表特定端口检查器脚本[重复]

在 IP 和端口上托管节点服务器

端口映射

利用nmap进行特定端口扫描

测试特定协议下指定端口是不是开启