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 に答える