• 搜索
  • 夜间模式
    ©2012-2026  陈十一的小破站 Theme by OneBlog

    陈十一的小破站博客

    搜索
    标签
    # Nodejs # CentOS # Git # Golang # Docker # Windows # Nginx # 反向代理 # 脚本 # Linux
  • 首页>
  • 技术>
  • 正文
  • 破案了:为什么开启代理后 TLS 总是报错?

    2026年03月18日 9 阅读 0 评论 713 字

    最近用代理上网的时候,经常遇到 TLS 证书异常 或者 HSTS 错误。本来以为是节点抽风或者线路不稳定,今天实在忍不了了,打算深挖一下。

    发现怪事

    报错的时候我点开证书详情看了一眼,结果一脸懵逼:为什么我访问的网站,返回的证书是 Facebook 的?

    我这明明没在刷 FB 啊。

    溯源排查

    带着这个关键词去 V2EX 考古(搜到了 2018 年的老帖),发现这其实是一个典型的 DNS 中间人攻击 导致的坑。

    原理大概是这样:

    1. 我的本地 DNS 之前图省事设成了网关地址(类似 192.168.0.1)。
    2. 在开启代理或某些网络环境下,DNS 解析请求被中间人拦截/污染了。
    3. 由于 DNS 返回了错误的 IP(可能指向了 FB 的服务器或者是被劫持到了某个特定的 IP),浏览器去握手时,发现域名和证书完全对不上。
    4. 加上现在的网站基本都开了 HSTS,浏览器校验非常严格,直接锁死不让访问。

    解决办法

    其实就是把 DNS 链路理顺。

    • 路由器端: 弃用默认网关 DNS,手动改成了靠谱的公共 DNS(如 1.1.1.1 或 8.8.8.8)。
    • 代理客户端: 检查了 DNS 配置,确保开启了远程解析,防止本地污染。

    改完之后重启代理,Nice,报错全部消失,丝滑上网。


    总结: 以后遇到 TLS 报错,先别急着换节点,看看证书到底是谁发的,说不定又是 DNS 在背地里搞鬼。

    本文著作权归作者 [ 陈十一 ] 享有,未经作者书面授权,禁止转载,封面图片来源于 [ 互联网 ] ,本文仅供个人学习、研究和欣赏使用。如有异议,请联系博主及时处理。
    取消回复

    发表留言
    回复

    Copyright©2012-2026  All Rights Reserved.  Load:0.014 s
    Theme by OneBlog V3.6.5
    夜间模式

    开源不易,请尊重作者版权,保留基本的版权信息。