web-dev-qa-db-ja.com

Tomcat 8ポートを変更する方法

この設定[conf/server.xml]を使用して、Ubuntu 14.04でTomcatのポートを80に変更しようとしています。

<Connector port="8080" protocol="HTTP/1.1"
           connectionTimeout="20000"
           redirectPort="8443" />

に:

<Connector port="80" protocol="HTTP/1.1"
           connectionTimeout="20000"
           redirectPort="8443" />

そして、私はこのエラーを受け取っています:

13-Oct-2015 18:09:10.626 SEVERE [main] org.Apache.coyote.AbstractProtocol.init Failed to initialize end point associated with ProtocolHandler ["http-nio-80"]
 Java.net.SocketException: Permission denied

私が間違っているのは何ですか?または何が欠けていますか?

ありがとう...

7
Diego Mendes

Ubuntu/Unixの1024未満のポートでTomcatを実行するには、サービスにルート権限が必要です。そして、あなたが望んでいないこと。

iptables経由でポートリダイレクトを使用する

iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 8080
12
A.B.

Authbindを使用してTomcatサービスを開始すると、ユーザーがリダイレクトまたはiptablesする必要のない1024未満のポートを開始できます。

Sudo apt-get install authbind -y

Authbindソフトウェアをインストールするには

Sudo chmod -R 755/etc/authbind

グループはユーザーグループでなければなりません。

Sudo chown -Rh root:group/etc/authbind

その後、以下のコマンドを実行します

cd/etc/authbind/byuid

例としてimagneユーザーIDを2000にすると、ユーザーID番号を使用できます

須藤エコー '0.0.0.0/0:1,1023'> 2000

そのファイルは、ユーザーとグループが所有する必要があります。

須藤チャウン:2000

須藤chmod 700 2000

Tomcatスタートアップファイル$ CATALINA_BASE/startup.shに次の行を追加します

export Java_OPTS="$Java_OPTS -Djava.net.preferIPv4Stack=true"

Authbindサービスstartup.shを使用してTomcatを起動する場合

以下の行にコメントしてください

#$CATALINA_HOME/bin/startup.sh

ファイルの末尾としてThis Endを追加します

AUTHBIND_COMMAND="/usr/bin/authbind --deep /bin/bash -c " 

$AUTHBIND_COMMAND $CATALINA_HOME/bin/startup.sh   

これで、1024未満のポートを持つユーザーとしてTomcatサービスを開始できるはずです。

3
PKumar