ping 测试、端口、HTTPS 警告逐条解释
ping 测试到底能告诉我什么
ping 是最基础的网络连通性测试工具——它发一个小 ICMP 包到目标 IP,然后等对方回。有回 = 网络层通了;无回 = 网络层不通。
PlainApp 浏览器打不开时第一反应就是跑 ping:
Windows
# 打开 Command Prompt(Win+R → cmd)
ping 192.168.1.50 # 换成手机上显示的 IP
macOS / Linux
ping 192.168.1.50
三种结果怎么解读
| 结果 | 含义 | 下一步 |
|---|---|---|
有回复:64 bytes from 192.168.1.50: icmp_seq=1 ttl=64 time=5.2 ms | ✅ 电脑和手机之间网络层完全通了 | 问题在上层——浏览器 / 端口 / 证书警告 |
Request timeout / 100% 丢包 | ❌ 电脑根本找不到这个 IP | 检查 Wi-Fi 是否同一台、AP Isolation、VPN |
Destination host unreachable | ❌ 连子网都不对 | 检查电脑自己的 IP 网段(cmd 里 ipconfig) |
ping 有回复但浏览器还是打不开
这时候问题就细了:
- 端口对吗? 手机上 PlainApp 显示的可能是
http://192.168.x.x:8080和https://192.168.x.x:8443两个地址,都试试 - http / https 搞反了? 浏览器自动把
http://升级成https://有时会导致握手失败——手动输完整地址 - 浏览器缓存问题 — 无痕模式开一下试试、或 Ctrl+Shift+Delete 清缓存
- 浏览器 WebCodecs 不支持(影响屏幕镜像等功能)— 更新浏览器到最新版
端口号:8080 vs 8443
PlainApp 默认同时开两个端口:
| 端口 | 协议 | 说明 |
|---|---|---|
| 8080 | HTTP | 明文 HTTP + 应用层 XChaCha20 加密。没有 TLS 层 |
| 8443 | HTTPS | TLS + XChaCha20 双重加密。推荐用 |
PlainApp 手机端界面上会同时显示两个地址。选哪个:
- 推荐 https://192.168.x.x:8443(双重加密,安全)
- 如果浏览器 HTTPS 警告怎么都过不去,退而用 http://192.168.x.x:8080(还有应用层加密,不是完全裸奔)
- 某些手机 PlainApp 版本可能还会显示
plainapp.local:8080——这是 mDNS 友好名称,只有路由器支持 mDNS 时才有用,不行就换回数字 IP
端口冲突
极少数情况 8080 或 8443 被系统其他 App 占用——这时候 PlainApp 会在界面显示 Port In Use 错误。解决:
- PlainApp 手机端设置里有端口选项,改成别的(比如 8088 / 8444)
- 改完后手机端 Start 重启服务,新端口生效
HTTPS 自签名证书警告到底安不安全
这是用户最纠结的问题。分三层回答:
第一层:"这个警告是什么意思"
浏览器警告的是:"我没法验证这个 HTTPS 证书确实是你要访问的那个服务器发的"——因为 PlainApp 用的是自己生成的自签名证书,不是 DigiCert / Let's Encrypt 这类权威 CA 颁发的。
浏览器没法确认"发证书的就是你手机",所以警告。
第二层:"跳过这个警告后数据安全吗"
安全。两层加密:
- TLS 层虽然证书没 CA 背书,但加密算法和密钥交换本身还是安全的——除非你手动信任"继续前往"的时候同一 Wi-Fi 上有专门针对你的中间人攻击者,否则 TLS 层不会被攻破
- 而且 PlainApp 在 TLS 之上还加了一层自己的 XChaCha20-Poly1305 应用层加密——就算 TLS 被攻破,攻击者拿到的还是一层密文
第三层:"真的有危险吗"
理论上,同一 Wi-Fi 上的恶意设备可以发起 MITM 攻击:
- 恶意设备假装是你的手机、发另一个自签名证书
- 浏览器显示警告,但用户点了"继续前往"——用户不知道证书被换了
- TLS 加密被恶意设备解密、查看明文、再重新加密发给你
但——PlainApp 的应用层 XChaCha20 加密密钥不在 TLS 层交换,而是在第一次 HTTP 请求后通过应用层握手交换的。MITM 拿不到这个应用层密钥,解不开 XChaCha20 加密的内容。
所以即使 TLS 被中间人攻破,PlainApp 应用层加密也让攻击者拿不到实际数据。
完全消除警告的做法
手动把 PlainApp 自签名证书导入浏览器信任存储。但这个操作涉及导出证书、导入 Chrome/Firefox/Safari 各自的信任存储——每个浏览器都要做一遍,繁琐。通常不值得花这个时间,点"继续前往"就够了。
mDNS 友好名 plainapp.local
PlainApp 有时会显示 http://plainapp.local:8080 这个地址——这是 mDNS(Bonjour)自动生成的友好名称,路由器支持 mDNS 时可以用它访问,不用记 IP。
但 mDNS 支持度参差不齐:
- Windows:默认不支持(需要装 iTunes 或 Bonjour)
- macOS:原生支持
- Linux:需要 Avahi 服务
- 某些路由器配置下 mDNS 广播被屏蔽
如果 plainapp.local 打不开,直接用 IP:端口就行——数字地址一定靠谱。