web-dev-qa-db-ja.com

JavaターンキーでIPv6をリッスンすることを拒否します

そのため、Minecraftserversをデプロイするためにnode.jswebUIがプリインストールされたターンキーであるMineOSを使用しています。今、私はサーバーがIPv6経由で到達可能であることを望んでいます。なぜなら、それが私のISPから得られるすべてだからです。しかし、私のサーバーインスタンスはIPv4でのみリッスンします。 Java minecraftサーバーにIPv6でリッスンさせるにはどうすればよいですか?

Minecraftのserver.propertiesに関係なく、常に同じであるいくつかのnetstat-ntlp出力:

root@MinecraftServer /etc/default# netstat -ntlp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      493/sshd
tcp        0      0 127.0.0.1:25            0.0.0.0:*               LISTEN      1194/master
tcp        0      0 0.0.0.0:25565           0.0.0.0:*               LISTEN      1446/Java
tcp        0      0 127.0.0.1:12319         0.0.0.0:*               LISTEN      590/shellinaboxd
tcp        0      0 0.0.0.0:12320           0.0.0.0:*               LISTEN      598/stunnel4
tcp        0      0 0.0.0.0:12321           0.0.0.0:*               LISTEN      598/stunnel4
tcp        0      0 127.0.0.1:3306          0.0.0.0:*               LISTEN      978/mysqld
tcp6       0      0 :::22                   :::*                    LISTEN      493/sshd
tcp6       0      0 :::8443                 :::*                    LISTEN      1026/node

また、-Djava.net.preferIPv6Adresses = trueおよび-Djava.net.preferIPv6Stack = trueを使用してみました。少しは変わりません。/proc/sys/net/ipv6/bindv6onlyの値を1に変更しました。

ここに私のip6tables-L:

root@MinecraftServer /etc/default# ip6tables -L
Chain INPUT (policy ACCEPT)
target     prot opt source               destination
ACCEPT     tcp      anywhere             anywhere             tcp dpt:25565
ACCEPT     tcp      anywhere             anywhere             tcp dpt:25566
ACCEPT     tcp      anywhere             anywhere             tcp dpt:8443

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination

IPv6経由でインターネット経由でWindowsマシン上のサーバーにアクセスできます!ターンキーマシンでIPv6を介してwebUIにアクセスすることもできます。

他に何が欠けていますか?すべての助けが感謝します!

解決策:

Minecraftのforge変更により、Java.net.preferIPv4Stack = trueがバージョン1.12.2-14.23.1.2555に設定され、IPv6の試行がすべて台無しになります。そのため、現在6tunnelを使用しています。これにより、IPv6からIPv4に転送するポートが作成されます。 minecraftserverで外部からはまだアクセスできませんが、IPv6は機能しています。

1
Hyrikan

原因は、私がMinecraftで使用した鍛造改造でした。バージョン1.12.2-14.23.1.2555までは、Java.net.preferIPv4Stack = trueを設定します。 6tunnelは回避策であり、IPv6からIPv4にポートフォワードを実行します。

0
Hyrikan

プロパティ名が間違っていると思います。による

プロパティ名は次のとおりです。

  • Java.net.preferIPv4Stack - 注意: IPv4ではないIPv6
  • Java.net.preferIPv6Addresses-注:1つではなく2つのd文字。

また、このバグの影響を受けていないことを確認する必要があります: https://bugs.mojang.com/browse/MC-3776

2
Stephen C