Netty服务器,Fedora。我无法从远程主机连接到服务器,并且没有通过netstat
util显示监听套接字。但是我可以在同一台机器上建立运行客户端和服务器的连接。就是这样:
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);
我尝试使用仅端口,localhost IP,0.0.0.0 IP和网络IP初始化hostAddress
。什么都没有帮助。什么可能是问题的根源?
答案 0 :(得分:1)
以下是一些有助于解决问题的建议:
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 的输出)