跟踪特定的 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 和端口的主要内容,如果未能解决你的问题,请参考以下文章