web-dev-qa-db-ja.com

Tomcatをipv4アドレスにバインドするにはどうすればよいですか?

私は最近、Apache solr typo3コミュニティからのインストールスクリプトを介してTomcatをインストールし、過去3日間、「lsof -i」を介してポートでリッスンしているプロセスを照会したときに、偶然に機能しない理由を理解しようとしました"、それはipv6プロトコルにバインドされていました。私はどこでもググっていて、ほとんどがTomcatコネクタで.0.0.にアドレスを設定するとこの問題が解決すると言います。他の人は設定Java_OPTS = "-Djava.net.preferIPv4Stack = true" =;前者はうまくいきませんでしたが、後者はどこに置くかわかりません。 setenv.shに置くことを提案したどこかで読んだ解決策の1つですが、Tomcatインストールでこのファイルが見つかりません。これについては、現時点で何か手助けをお願いします。 Tomcatのバージョンは6.xで、OSはubuntu 11.10です。ありがとう

33
Dark Star1

多くの人がcatalina.sh起動スクリプトの更新を提案しました。はい、そのソリューションは機能しますが、catalina.shスクリプトはカスタマイズ/更新するためのものではありません。代わりに、すべての変更をカスタマイズスクリプトに含める必要があります(例:setenv.sh)。

注:Tomcat_HOME/bin/setenv.shはデフォルトでは存在しないため、作成する必要があります。 catalina.shスクリプトを確認すると、スタートアップスクリプトがsetenv.shが存在するかどうかを確認し、存在する場合は実行されることを確認できます。

したがって、新しいTomcat_HOME/bin/setenv.shスクリプトを1行で作成することをお勧めします。

Java_OPTS="$Java_OPTS -Djava.net.preferIPv4Stack=true -Djava.net.preferIPv4Addresses=true "
29
nevenc

はい、やっと解決しました。私は これを試す とヘンクの解決策に導かれました。どちらもリモート仮想サーバーでは機能しないようです。私は共有カーネルスペースにいるので、プロバイダーがこれを防止しているという事実を推測しています。とにかく私は追加しました:Java_OPTS= $Java_OPTS -Djava.net.preferIPv4Stack=true -Djava.net.preferIPv4Addressesをcatalina.sh起動スクリプトに追加すると、Tomcatをipv6にバインドする問題が修正されたようです。

28
Dark Star1

Catalina.shを変更するための正しい構文は次のとおりです。

Java_OPTS=" $Java_OPTS -Djava.net.preferIPv4Stack=true -Djava.net.preferIPv4Addresses=true "
4
yglodt

このインストーラーを使用した場合: " Apache Solr for TYPO "、ファイルserver.xmlのアドレスを変更できます。デフォルトはlocalhostを指しているため、127.0.0.1を探して、必要なIPv4-addressに変更します。変更を有効にするために、Tomcat6を再起動することを忘れないでください。

UPDATE、20120521

Ubuntu 11.10でIPv6を無効にする方法については、以下のコメントを参照してください。

MacのVirtualbox-VMでこれを正常にテストしました。コネクタポート8080のアドレスは、server.xmlの127.0.0.1から0.0.0.0に変更されました。

次に、IPv6を無効にすると「tcp6」がなくなるため、IPv4のみのアドレスにバインドされます。

IPv6が有効になる前/有効:

# netstat -anp | grep 8080   
tcp6       0      0 :::8080                 :::*                    LISTEN      1972/Java

/ IPv6無効化後:

# netstat -anp | grep 8080   
tcp        0      0 0.0.0.0:8080            0.0.0.0:*               LISTEN      2045/Java
3
Henk

Setenv.shとCATALINA_OPTSを使用した他の回答とともに...

Tomcat SSLとAPRを使用して、Tomcatをipv4にバインドさせる唯一の方法は、これをコネクタ構成に追加することでした。

address="0.0.0.0"

server.xmlは次のようになります。

<Connector port="8443" protocol="org.Apache.coyote.http11.Http11AprProtocol"
               maxThreads="150"
               SSLEnabled="true"
               scheme="https"
               compression="off"
               connectionTimeout="1190"
               address="0.0.0.0"
               >
0
comfytoday

おそらく推奨される方法ではありませんが、 カーネルレベルでIPv6を無効にする は、TomcatにIPv4バインドを開くように説得します。

0
pierce.jason