我正在尝试远程调试webapp。按照这个码头document的指示。我得到了这样的java进程。
jetty 9682 0.4 2.2 4433620 87568 ? Sl 15:52 0:03 /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.65-0.b17.el6_7.x86_64/jre/bin/java -Xdebug -agentlib:jdwp=transport=dt_socket,address=12000,server=y,suspend=n -Djava.io.tmpdir=/tmp -Djetty.home=/opt/jetty -Djetty.base=/opt/jetty
但该过程仅侦听0.0.0.0。
以下是netstat -an
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 0.0.0.0:12000 0.0.0.0:* LISTEN
所以我无法在其他IP上连接此端口。
我的问题是如何发生这种情况以及如何解决这个问题?
编辑:我错了。我对netstat的输出感到困惑。因为端口8080的输出是tcp 0 0 :::8080 :::* LISTEN
我终于意识到这可能是由防火墙造成的。我通过将此端口添加到iptables来解决了这个问题。
答案 0 :(得分:0)
0.0.0.0表示"本地计算机上的所有IPv4地址"。如果主机有两个IP地址192.168.1.1和10.1.2.1,并且主机上运行的服务器侦听0.0.0.0,则可以在这两个IP上访问它。
来自:https://en.wikipedia.org/wiki/0.0.0.0
Is binding to 0.0.0.0 in Java guaranteed to bind to all network interfaces?
的更多信息