首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

Tomcat 部署外網服務器:內網可訪問但外網無法訪問的排查方案

     編輯:程式設計綜合問答

問題現象

將項目部署到外網服務器的 Tomcat 後,內網機器可正常訪問,但外網用戶無法連線。Tomcat 配置看似正常,但實際上常被防火牆或安全組攔截。

核心排查步驟

  1. 檢查服務器防火牆(最常見原因)
    # 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
  2. 雲服務商安全組/防火牆:阿里雲、騰訊雲、AWS 等控制台需額外配置入站規則,放行 8080(或自定義端口)。
  3. Tomcat server.xml 綁定地址:確保 <Connector port="8080" address="0.0.0.0" />,而非 127.0.0.1。
  4. 端口轉發/映射:若服務器在 NAT 後,需在路由器配置端口映射。
  5. 測試命令:
    # 服務器本地測試
    curl https://localhost:8080/your-app
    
    # 外網機器測試
    telnet your-public-ip 8080
    # 或使用在線端口掃描工具

實戰經驗分享

「原來是防火牆沒添加例外,不是看了你們的回復,而是百度」—— 許多開發者最終發現是 Windows 防火牆或雲廠商安全組未放行端口。建議優先檢查這兩層防護。

快速驗證清單

  • ☐ Tomcat 進程正常運行(ps -ef | grep tomcat 或任務管理器)
  • ☐ 端口已監聽(netstat -an | findstr 8080 顯示 LISTENING)
  • ☐ 本地 curl 返回正常 HTML
  • ☐ 服務器防火牆已放行端口
  • ☐ 雲控制台安全組入站規則已放行
  • ☐ 無其他安全軟體攔截(如安全狗、雲鎖)

逐項排查,通常能在 10 分鐘內定位並解決問題。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved