1

InetAddress.getCanonicalHostname()質問:Javaのメソッドによって報告される正規のホスト名を「設定」するにはどうすればよいですか?

コンテキスト:CentOS 5.6でNeo4j(Jettyサーバーが組み込まれている)を実行しようとしています。サービスは正常に起動しますが、netstatで証明されているように、間違ったアドレス(IPv6)にバインドされています。の代わりに、 (IPv4):::*にバインドする必要があります。0.0.0.0

必要な文字列を強制的に返すために使用できるJVMパラメータはありますgetCanoncialHostname()か?hostsそうでない場合、同じことを達成するために自分のファイルまたは他のLinux構成ファイルに何を追加できますか?

[編集-netstat出力を追加]

$ netstat -plten
...
Proto  Local Address    Foreign Address    State       User       Inode      PID/Program name
tcp    0.0.0.0:930      0.0.0.0:*          LISTEN      0          10240      -
tcp    0.0.0.0:139      0.0.0.0:*          LISTEN      0          57484      -
tcp    0.0.0.0:111      0.0.0.0:*          LISTEN      0          10104      -
tcp    127.0.0.1:25     0.0.0.0:*          LISTEN      0          12714      -
tcp    0.0.0.0:445      0.0.0.0:*          LISTEN      0          57483      -
tcp    :::7474          :::*               LISTEN      500        524965     28200/java
tcp    :::22            :::*               LISTEN      0          62967      -
tcp    :::1337          :::*               LISTEN      500        524953     28200/java
tcp    :::15003         :::*               LISTEN      500        481149     3926/java
tcp    :::60156         :::*               LISTEN      500        524951     28200/java
tcp    :::15004         :::*               LISTEN      500        524917     28177/java

:::*ポート22はsshです-マシンにsshで問題なく接続できるので、外部アドレスが(原則として)問題ないという証拠があります。

[編集-リモートnmap出力を追加]

別のホストからnmapを実行し、具体的に上記のすべてをリストすると、次のようになります。

$ nmap -T4 -A -v -PE -PS22,25,80 -PA21,23,80,930,139,111,25,445,7474,22,1337,15003,60156,15004,3389 192.168.176.138
...
Initiating SYN Stealth Scan at 13:31
Scanning 192.168.176.138 [1000 ports]
Discovered open port 111/tcp on 192.168.176.138
Discovered open port 139/tcp on 192.168.176.138
Discovered open port 445/tcp on 192.168.176.138
Discovered open port 22/tcp on 192.168.176.138
Discovered open port 15003/tcp on 192.168.176.138
Discovered open port 15004/tcp on 192.168.176.138
Completed SYN Stealth Scan at 13:31, 0.04s elapsed (1000 total ports)
4

3 に答える 3

3

次のネットワークプロパティを使用して、IPv6ではなくIPv4を使用するようにJVMに指示できます。-Djava.net.preferIPv4Stack=true

ネットワークプロパティを参照してください

于 2011-06-02T17:31:14.473 に答える
2

たぶん、-Djava.net.preferIPv4Stack=trueシステムプロパティを設定することは役に立ちますか?

于 2011-06-02T17:28:38.803 に答える
1

特定のインターフェース(IP)でリッスンするようにjettyに指示する必要があります。http://www.paralint.com/blog/2007/05/18/making-jetty-listen-to-the-local-interface-onlyを参照してください。 //

行: <Set name="Host"><SystemProperty name="jetty.host" default="localhost"/></Set> それを行います

于 2011-06-02T17:27:29.743 に答える