Tomcat 啟動報錯 java.net.BindException: Permission denied :80,tomcat啟動報錯
Tomcat一啟動就報如下錯誤:
Caused by: java.net.BindException: Permission denied <null>:80
at org.apache.tomcat.util.net.JIoEndpoint.bind(JIoEndpoint.java:410)
at org.apache.tomcat.util.net.AbstractEndpoint.init(AbstractEndpoint.java:640)
at org.apache.coyote.AbstractProtocol.init(AbstractProtocol.java:434)
at org.apache.coyote.http11.AbstractHttp11JsseProtocol.init(AbstractHttp11JsseProtocol.java:119)
at org.apache.catalina.connector.Connector.initInternal(Connector.java:978)
... 13 more
造成原因:在linux系統上只有root使用者才可以訪問1024以下的連接埠號碼,其餘使用者不能訪問。
解決方案1:
在啟動Tomcat時,使用sudo ./startup.sh或使用root使用者啟動
解決方案2:
修改Tomcat的server.xml設定檔,
將連接埠修改為8081(或者其它1024以上的連接埠號碼,但不能與本機上的其它連接埠衝突),
然後使用root使用者登入伺服器,執行連接埠重新導向命令:
iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 8081
(當訪問80連接埠時重新導向到8081連接埠)。