將項目部署到外網服務器的 Tomcat 後,內網機器可正常訪問,但外網用戶無法連線。Tomcat 配置看似正常,但實際上常被防火牆或安全組攔截。
# Windows 防火牆放行 8080 端口
netsh advfirewall firewall add rule name="Tomcat 8080" dir=in action=allow protocol=TCP localport=8080
# Linux iptables
iptables -A INPUT -p tcp --dport 8080 -j ACCEPT
service iptables save
<Connector port="8080" address="0.0.0.0" />,而非 127.0.0.1。# 服務器本地測試
curl https://localhost:8080/your-app
# 外網機器測試
telnet your-public-ip 8080
# 或使用在線端口掃描工具
「原來是防火牆沒添加例外,不是看了你們的回復,而是百度」—— 許多開發者最終發現是 Windows 防火牆或雲廠商安全組未放行端口。建議優先檢查這兩層防護。
ps -ef | grep tomcat 或任務管理器)netstat -an | findstr 8080 顯示 LISTENING)逐項排查,通常能在 10 分鐘內定位並解決問題。