問題現象
- 本地 Tomcat 修改端口為 80,瀏覽器訪問 `https://localhost` 正常。
- 模擬器訪問 `https://10.0.2.2` (或 `https://10.0.2.2:80`) **無法連接**,顯示網頁無法打開。
- 嘗試 `https://<宿主機局域網IP>` 也失敗。

排查邏輯
- 確認模擬器網絡:模擬器能否訪問外網 (如 `https://www.baidu.com`)?能 → 模擬器網絡通。
- 確認宿主機防火牆:入站規則開放 80 端口?暫時關閉防火牆測試?
- 確認 Tomcat 綁定地址:`server.xml` 中 `` 綁定所有接口?
- 確認端口衝突:80 端口是否被 System (PID 4) 或 IIS 佔用?`netstat -ano | findstr :80`。
最終解決
「解決了,服務器的問題,弄了個新的服務器就好了」
**根因**:原 Tomcat 實例配置損壞、綁定地址錯誤、或端口衝突導致實際未在 0.0.0.0:80 監聽。重新安裝/配置 Tomcat 後恢復正常。
標準配置檢查清單 (避坑指南)
1. server.xml 關鍵配置
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443"
address="0.0.0.0" /> <!-- 關鍵:綁定所有網卡,非 127.0.0.1 -->
端口建議用 **8080** 避免權限/衝突問題,模擬器訪問 `https://10.0.2.2:8080`。
2. Windows 防火牆入站規則
- 控制面板 → Windows Defender 防火牆 → 高級設置 → 入站規則 → 新建規則 → 端口 → TCP → 8080 → 允許連接 → 域/專用/公用全勾選。
3. 驗證監聽狀態
netstat -ano | findstr :8080
# 應顯示
TCP 0.0.0.0:8080 0.0.0.0:0 LISTENING
若顯示 `127.0.0.1:8080` 則說明 `address="127.0.0.1"`,需改為 `0.0.0.0`。
4. 模擬器測試步驟
- 模擬器瀏覽器訪問 `https://10.0.2.2:8080` (Tomcat 默認頁)。
- 成功 → 應用訪問 `https://10.0.2.2:8080/你的項目路徑`。
- 失敗 → `adb logcat` 看網絡錯誤、宿主機 `netsh trace` 抓包分析。
5. 真機調試 (同一 WiFi)
- 手機瀏覽器訪問 `https://<宿主機局域網IP>:8080` (如 `192.168.1.100:8080`)。
- 需宿主機防火牆開放專用/公用網絡入站 8080。
常見誤區
| 誤區 | 事實 |
| 模擬器用 localhost 訪問宿主機 | 模擬器的 localhost 是它自己,必須用 10.0.2.2 |
| Tomcat 默認綁定 0.0.0.0 | 部分安裝版/綠色版默認綁定 127.0.0.1,需手動改 server.xml |
| 80 端口最適合開發 | Windows 需管理員權限、易與 IIS/System 衝突,開發用 8080/8081 更省心 |
| 關閉防火牆就安全 | 僅開發臨時測試可關閉,生產必須配置精確規則 |