Linux 系統中,若將 Tomcat server.xml 連接器埠改為 80,以 tomcat 用戶啟動會報錯:
Catalina.start: LifecycleException: null.open: java.net.BindException: Permission denied: 80
原因是 Linux 規定只有 root 能綁定 1024 以下低號埠,Tomcat 服務通常不以 root 身份運行。
無需改 Tomcat 埠為 80,也無需 root 啟動。保持 Tomcat 監聽 8080,透過 iptables 將 80 埠請求轉發至 8080。
server.xml Connector 埠保持 8080。iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 8080
若同時需 HTTPS(443 埠),同樣新增轉發規則:
iptables -t nat -A PREROUTING -p tcp --dport 443 -j REDIRECT --to-port 8443
完成後透過瀏覽器存取 80 埠,實際請求由 Tomcat 在 8080 埠處理。