1

Netty 服务器,Fedora。我只是无法从远程主机连接到服务器,并且没有通过netstatutil 显示侦听套接字。但是我可以在同一台机器上建立运行客户端和服务器的连接。就是这样:

port = System.getProperty(PORT_PROPERTY);
Preconditions.checkNotNull(port, "Network error, port property is not set");
hostAddress = new InetSocketAddress(Integer.valueOf(port));
...
serverChannel = bootstrap.bind(hostAddress);

我尝试hostAddress仅使用端口、localhost IP、0.0.0.0 IP 和我的网络的 IP 进行初始化。没有什么帮助。问题的根源可能是什么?

4

1 回答 1

2

以下是一些有助于诊断问题的建议:

  • 为了清楚起见(直到你解决这个问题),坚持使用

new InetSocketAddress("0.0.0.0", Integer.valueOf(port))

因为这将确保您绑定到所有接口。

  • 使用-Djava.net.preferIPv4Stack=true调用 JVM以强制 JVM 进入 IPV4。我发现在 IPV4 中更容易解决这些问题,因为它没有 V6 复杂。

  • 获取 JVM 的PID,然后发出这样的 netstat:

sudo netstat -ap --numeric-ports | grep <PID>

这应该显示您的 JVM 实例的所有套接字。(如果您仍然无法远程连接,请发布此输出。同时发布ifconfig的输出)

于 2013-05-28T20:15:24.287 回答