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

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

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

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

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

谢谢, 穆尔塔萨

【问题讨论】:

    标签: linux networking ubuntu network-programming


    【解决方案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 默认安装在系统上。问候

      【讨论】:

        猜你喜欢
        • 2018-05-09
        • 1970-01-01
        • 1970-01-01
        • 2011-01-12
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-11-13
        • 2019-01-21
        相关资源
        最近更新 更多