30

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

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

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

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

谢谢,穆尔塔萨

4

5 回答 5

48

您可以为此目的使用默认traceroute命令,然后就无需安装任何内容。

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

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

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

nc -Czvw 5 <IP address/hostname> 9100
于 2015-08-25T02:09:09.123 回答
29
tcptraceroute   xx.xx.xx.xx 9100

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

yum -y install tcptraceroute 

或者

aptitude -y install tcptraceroute 
于 2012-06-12T11:38:13.670 回答
11

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

  tcpdump -i any tcp port 9100

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

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

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

 nc ip 9100 -z -v

从您的本地 PC。

于 2012-06-12T11:48:58.203 回答
4

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

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

于 2012-06-12T11:36:50.897 回答
0

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

于 2017-01-16T07:41:30.143 回答