我有一个应用程序在服务 http 页面的远程服务器上的端口 9100 上运行。在我 ssh 进入服务器后,我可以 curl localhost 9100 并收到响应。
但是我无法使用浏览器从浏览器访问相同的应用程序http://ip:9100
我也无法从本地 PC 远程登录。我该如何调试它?有没有办法跟踪特定的 IP 和端口组合,以查看它被阻止的位置?
任何 linux 工具/命令/实用程序将不胜感激。
谢谢,穆尔塔萨
我有一个应用程序在服务 http 页面的远程服务器上的端口 9100 上运行。在我 ssh 进入服务器后,我可以 curl localhost 9100 并收到响应。
但是我无法使用浏览器从浏览器访问相同的应用程序http://ip:9100
我也无法从本地 PC 远程登录。我该如何调试它?有没有办法跟踪特定的 IP 和端口组合,以查看它被阻止的位置?
任何 linux 工具/命令/实用程序将不胜感激。
谢谢,穆尔塔萨
您可以为此目的使用默认traceroute
命令,然后就无需安装任何内容。
traceroute -T -p 9100 <IP address/hostname>
该-T
参数是必需的,以便使用 TCP 协议而不是 UDP。
在极少数情况下traceroute
不可用时,您也可以使用ncat
.
nc -Czvw 5 <IP address/hostname> 9100
tcptraceroute xx.xx.xx.xx 9100
如果你没有找到它,你可以安装它
yum -y install tcptraceroute
或者
aptitude -y install tcptraceroute
您可以tcpdump
在服务器上使用来检查客户端是否甚至到达服务器。
tcpdump -i any tcp port 9100
还要确保您的防火墙没有阻止传入连接。
编辑:如果您不想在控制台上阅读它,您也可以将转储写入文件并在客户端上使用wireshark查看它。
第二次编辑:您可以检查是否可以通过
nc ip 9100 -z -v
从您的本地 PC。
首先,检查您的应用程序绑定的 IP 地址。例如,它只能绑定到本地地址,这意味着无论防火墙状态如何,您都不会从另一台机器上看到它。
您可以尝试使用像 nmap 这样的端口扫描器来查看端口是否打开并且在外部可见......它可以告诉您端口是关闭的(那里没有任何东西在监听),打开(您应该可以看到它)或过滤(例如,通过防火墙)。
它可以通过使用这个命令来完成:tcptraceroute -p destination port destination IP
。喜欢:tcptraceroute -p 9100 10.0.0.50
但不要忘记在您的系统上安装 tcptraceroute 包。tcpdump 和 nc 默认安装在系统上。问候