【问题标题】:SNMP error with port already in use端口已在使用中的 SNMP 错误
【发布时间】:2012-09-26 05:27:05
【问题描述】:

我创建了一个 SNMP 代理模拟器应用程序,它使用端口号 161 来模拟设备。有时会出现端口已经在使用的异常。我怎么知道 161 端口是否忙?

【问题讨论】:

    标签: java port snmp


    【解决方案1】:

    以下语句对我有用。

    netstat -lnp
    

    示例用法:

    appuser@-app:~$ sudo netstat -lnp |grep 162
    tcp        0      0 0.0.0.0:3306            0.0.0.0:*               LISTEN      1162/mysqld
    udp6       0      0 127.0.0.1:162           :::*                                6830/java
    

    【讨论】:

      【解决方案2】:

      只是补充说明。我认为您可能被禁止使用低端口号(如果不是 root 用户,则安全策略) - 尝试使用更高的端口号,即 10161。

      【讨论】:

        【解决方案3】:

        在 Windows 上,您可以使用 netstattasklist。例如,

        netstat -aon | findstr 161
        

        它的输出应该是

        C:\Program Files\Microsoft Visual Studio 9.0\VC>netstat -aon |findstr 161
          UDP    0.0.0.0:161            *:*                                    1620
          UDP    [::]:161               *:*                                    1620
        

        然后使用tasklist

        tasklist /fi "PID eq 1620"
        
        Image Name                     PID Session Name        Session#    Mem Usage
        ========================= ======== ================ =========== ============
        snmp.exe                      1620 Services                   0      1,172 K
        

        在我的情况下,显然是 Windows SNMP 服务使用端口 161。在你的情况下,它可能是另一个进程。

        【讨论】:

          【解决方案4】:
          1)ps -efww | grep 161   
          
          2)netstat -anp | grep 161
          

          【讨论】:

            【解决方案5】:

            只需启动您的应用程序。如果它得到一个 BindException,则该端口正在使用中。如果没有,您的应用程序可以运行。提前知道这一点并不能真正为您买任何东西。

            【讨论】:

            • 这并不总是正确的。端口绑定不成功的原因有很多,不仅仅是因为端口已经在使用中。要确定出了什么问题,请检查 java BindException 中的错误消息,或 C/C++ 应用程序中的 errno 值(在绑定调用之后)。
            【解决方案6】:

            通过使用 netstat 命令。

            具体来说,

            netstat -s [PORT_NO]

            例如,

            netstat -s 161

            1. http://www.techrepublic.com/blog/security/list-open-ports-and-listening-services/443
            2. http://www.speedguide.net/faq_in_q.php?qid=115

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 2011-05-07
              • 1970-01-01
              • 1970-01-01
              • 2019-02-03
              • 2015-09-23
              • 1970-01-01
              • 1970-01-01
              • 2013-12-12
              相关资源
              最近更新 更多