{"version":"https://jsonfeed.org/version/1.1","title":"Su's Blog","home_page_url":"https://blog.0ne.day","feed_url":"https://blog.0ne.day/json/","description":"<a rel=\"me\" href=\"https://mastodon.0ne.day/@su\">Mastodon</a>","icon":"https://blog-media.0ne.day/blog-one-day/production/images/channel-5d1415959252c8d61e9adb7cbe424d6c.png","favicon":"https://blog.0ne.day/assets/default/favicon.png","authors":[{"name":"Su"}],"language":"zh-cn","items":[{"id":"QgbtJdeP1c6","title":"一些翻墙通识","url":"https://blog.0ne.day/i/QgbtJdeP1c6/","content_html":"<blockquote>極權社會中遭遇最多危險的既不是無知的大衆，也不是已經理解極權的極少數人，而是那些啓蒙過程中有了質疑極權的意識但還不知道如何保護自己的人。 — <a href=\"https://x.com/Chillylin/status/1842638866194563291\" rel=\"noopener noreferrer\" target=\"_blank\">@Chillylin</a></blockquote>\n<br>\n<br>\n<ul>\n  <li>随着<del>鬼子</del>墙的封锁越来越紧，越来越多的人开始接触翻墙，其中绝大多数人都并非熟悉各种网络和安全概念，不可避免的在翻墙的过程中有着各种各样的问题和隐患，今天我们就来讲讲翻墙的一些基础概念和常见误区，帮大家了解GFW，平稳过墙，安全翻墙。</li>\n  <li>翻墙</li>\n  <ul>\n    <li>简单直接地理解，翻墙就像是海外代购，因为某些原因，商品不能直接从海外寄到我们国内的地址，不得不找一个中介来中转货物，商家发给代购，代购再寄给我们，购买成功✌️。同样地，某些海外网站被GFW屏蔽，我们无法访问，这时候需要一台能访问的国外服务器作为中介转发数据，服务器在被屏蔽的网站和我们的设备之间中转信息，网站访问成功✌️。</li>\n  </ul>\n  <li>VPN和梯子</li>\n  <ul>\n    <li>VPN的典型使用场景是公司员工在公司外使用的外部网络访问公司的网络时，无法保证员工的网络环境是否安全，是否会监听篡改到公司的网络通信，所以建立一套加密传输信息的系统，既能访问公司内部网络，又能在不安全的网络环境下保证通信安全。当然适用范围不局限于公司，比如普通的网络审查或者电视剧/游戏限制特定地区访问的锁区，VPN 因为突破限制而被广泛使用，但是并不使用于中国大陆，墙（GFW）的网络封锁已经远非普通级别，使用 VPN 就像海淘时快递上了锁，虽然不知道你买的是什么东西，但知道你不想让海关知道，那海关就直接把包裹拦截丢弃；一般网络通信中，都会在通信中标明使用的协议，使用 VPN 时，流量就会明晃晃地标明自己是加密协议，协议特征明显且主动，就像夜空中最闪亮的星。既然不知道你在干什么，那就技术上把 VPN 常用协议的出国连接都直接干扰屏蔽掉，或者线下拦截你真人，让学校辅导员、反诈、派出所线下敲打。</li>\n    <li>历史不断地告诉我们，只要真实的需求一直存在，那它的供给就永远不会消失，而是找到更难被观测到的方式来实现，就像有禁酒令就会有酒厂制造含有酒精的饮料一样，表面上是叫各种苹果汁、芭乐汁、红茶咖啡，但实际上有着不低的酒精含量，叫作不同口味的酒更准确，类似这样的代理工具就俗称梯子，在GFW看来，你只是在访问一个普通的境外电商网站或者博客，实际上你是在通过这个看似正常的网站作为代理访问各种被封锁的网站。简单总结就是，用VPN，不知道你在看什么，但知道你不想让别人知道你在看什么，用梯子，知道你在看普通网站，不知道你看的这个“普通网站”的内容，也不知道你实际上是在把这个网站当作代理访问其他被封锁的网站。</li>\n  </ul>\n  <li>协议</li>\n  <ul>\n    <li>协议就像语言，要对话的双方都说同一种语言才能够相互理解，网络上的两端也需要使用相同协议才能通信，我们浏览网站用的是一种协议，QQ聊天用的是一种协议，发邮件用的一种协议，VPN也有各种各样的协议，梯子也是。</li>\n    <li>自建某个协议的梯子，需要在服务器上安装实现这个协议的服务端软件，在你的设备（电脑/手机/路由器…）上安装支持这个协议的客户端软件，配置好账号密码等验证方式来连接上服务器，建立翻墙通道，才能达到翻墙的效果。</li>\n    <li>主流翻墙协议的客户端，iOS上推荐小火箭 <a href=\"https://apps.apple.com/us/app/shadowrocket/id932747118\">ShadowRocket</a>，Android 上推荐 <a href=\"https://github.com/dyhkwong/Exclave\">Exclave</a> ，PC端推荐 <a href=\"https://github.com/MetaCubeX/mihomo\">mihomo</a>（原 ClashMeta）</li>\n  </ul>\n  <li>线路</li>\n  <ul>\n    <li>只有技术上的突破还不够我们流畅地网上冲浪，我们还面临着物理网络资源上的限制，中国出国网络带宽总量低，人均少，网络服务也是垄断市场，国内家用宽带经过提速降费，虽然普遍就百兆起步，但很大程度上只是中国大局域网内的速度，家用带宽提速的成本被转嫁到企业商用上，商宽补贴家宽，尤其翻墙涉及到出国带宽时，总量就那么多，当然是优先保证企业用户使用，普通出国线路被运营商 QoS 严重劣化，访问国外网络速度慢，丢包率高，不仅是网络使用高峰期，就连普通时段也难以有流畅的体验，很多没有被墙的境外网站也加载缓慢甚至不能完成加载。网络线路有优劣之分，所以想要真正地网上冲浪，你还需要翻墙用的服务器有线路优化。</li>\n    <li>在不同的地区，不同的运营商的优化线路也有不同，比如电信的优化线路 CN2 GIA，联通的 AS9929、AS4837 线路，移动的 CMI、CMIN2 线路。主流的运营商里，电信宽带用户最多，人均国际出口带宽低，且价格昂贵；联通宽带用户较少，人均国际出口带宽高，价格较便宜；移动带宽用户最少，人均国际出口带宽一般，很多用户都是白送宽带积累的，且有墙内墙，国内网络质量较差，综合来讲，最好是在一开始办理带宽时就选联通，如果使用场景需要在多个地区和运营商网络使用，最简单的还是买 CN2 GIA 线路的服务器，全国效果都不错，在某些地区，如泉州等，对所有出国网络都有更严重的限制，严重时候近乎白名单效果，可能就需要国内中转，在国内其他限制不严格的地区再找台服务器，多加一层代理。</li>\n    <li>还要注意线路的去程和回程也可能不一样，可能只有单程是优化线路，比如去程是广州 → 香港 直连，回程就变成 香港 → 日本 → 北京 → 广州，也不是物理距离越近就一定越好，距离很近的，也可能去程回程都是绕地球的线路，一般 VPS 商家都会提供 Looking Glass服务，可以 traceroute 测试服务器到国内的线路。要注意不要被各种营销活动的季付年付忽悠，尽量只月付，损失不会太大，线路也不一定会一直不变，可能刚开始是优化的线路，过段时间就换成了普通线路，服务器IP也说不定哪天就被墙了，小服务商也有可能随时跑路。VPS 相关的评测、新闻等更多信息也可以选择性地参考 <a href=\"https://hostloc.com/\">全球主机交流论坛</a>、<a href=\"https://www.nodeseek.com/\">NodeSeek</a>、<a href=\"https://t.me/vps_xhq\">VPS信号旗播报</a>。</li>\n  </ul>\n  <li>概率性和确定性</li>\n  <ul>\n    <li>不存在一个可以一劳永逸永远稳定的翻墙协议，你可能不时就会看到自建的梯子被封了的情况，有些可能是间隙性屏蔽几分钟，有些可能是屏蔽端口，有些是直接屏蔽服务器IP，甚至有些在客户端屏蔽，间歇性禁用宽带访问国外网络或者出国流量到一定量级限速、禁用。翻墙软件用户/开发者和GFW是一个持续的博弈过程，对于可识别的旧协议和根本不知道是什么的协议，可以直接屏蔽服务器，但在主流协议逐渐转向隐匿的代理模式时，GFW就难以完全判断一个出国网络连接是正常的还是隐匿的代理，于是通过机器学习等技术来对流量特征进行识别，给出一个可能的概率，这种情况下也会有误判产生，导致正常通信受到影响，所以前面讲的普通正常的境外网络访问也可能有部分是因误杀而无法访问，主流的翻墙协议已经逐渐转向基于类似网页浏览的HTTPS这类被广泛使用的协议，一旦误封会造成更大的经济损失，以此来抑制GFW的威力。在部署翻墙服务时，要选那些有开发者持续维护更新，用户反馈被识别情况少的协议。</li>\n  </ul>\n  <li>需求和商业化</li>\n  <ul>\n    <li>随着不同场景下的需求不同和越来越多的翻墙用户基数，使用方式上也是各种各样。最开始只是DNS污染的时候，改下hosts或者DNS就行了，到IP封禁越来越普遍的时候，普通代理协议也还能用，电脑上装个客户端软件开放个SOCKS5端口，浏览器安装个分流的扩展 AutoProxy 或者 Proxy SwitchyOmega 来分流，默认直连，被墙的网站才走代理；随着移动设备普及，需要全平台翻墙，这个时候 Clowwindy 站出来不仅开源了本来自用的 Shadowsocks 协议，还一人开发了所有平台服务端客户端的全套软件，Shadowsocks 开始在全平台普及；既然这么多设备都需要翻墙，干脆就在路由器上配好翻墙，被封的网站实在太多了，开始境内IP段直连境外IP段全走代理，连接翻墙路由器的设备无需设置也能翻墙，路由器刷机成 OpenWrt 系统，或者软路由全局翻墙也开始普遍起来；随着GFW 开始用机器学习等技术，服务器被识别封禁的越来越多，专门卖梯子的商家也越来越多，个人服务器一旦被封就要重新再买新的或者换IP，商家有很多服务，封了一个还有很多节点，而且有全球各个地区的节点，有些还能解锁流媒体，不用担心单点故障；除了最普通的翻出去就能访问的，还有各种锁区的国外服务，玩游戏需要UDP代理的，还能加上广告屏蔽等等，多样的需求就催生了能整合功能高度自定义的软件，其中最有名的就是clash系列，一系列复杂繁多的规则配置，在规则订阅功能的帮助下，到最终用户面前的操作，被简化到只需要填入一个配置订阅链接就可以了，提供服务的机场也普及开来。</li>\n    <li>一般人翻墙最方便可行的方式就是买机场的服务，不过也要注意，由于提供翻墙服务本身就有合法性问题，运营者也良萎不齐，所以买梯子的时候也要注意安全，需要真实身份信息的绝对不要买，注意服务条款等，写明遵守中国法律之类的就别买了，还有些爱国机场，主动屏蔽了像法轮功、大纪元之类的网站也没说明，购买后可以试着访问下这类网站验证。买的时候尽量只月付，付款尽量选择有PayPal之类第三方的支付方式，要记住，机场无论大小随时有跑路可能。</li>\n  </ul>\n  <li>翻墙悖论</li>\n  <ul>\n    <li>翻墙遇到最大的问题不是翻墙时的，而是怎么开始，就像没有工作经验的人去找工作，而工作要求是有工作经验，当你需要下载翻墙软件的时候，发现下载地址是被墙的，当你买梯子的时候，发现机场的官网被墙了，要下载翻墙软件你需要先翻墙，要买梯子你需要先有梯子，不要着急，现实世界中充满了缝隙，总有方法可以达成，有很多可访问的在线网页代理、免翻墙镜像、免翻墙下载地址，用这些来临时绕过，或者找社群、能翻墙的朋友求助等，有过类似经历，就记得日后多留一条路，多留一个梯子或者和朋友互为备份，不要再留下单点故障。</li>\n  </ul>\n  <li>日常使用的安全</li>\n  <ul>\n    <li>具体怎么能翻墙，最多人听说的可能就是 VPN，于是当需要翻墙的时候，可能下意识地就会去搜索VPN软件，尤其大多数设备都是移动设备，自然而然地就会去应用商店搜索VPN软件，这是最多人会做的事，所以也是最多恶意潜伏的地方。特别是搜出来一堆免费的 老王VPN、xxxVPN、免费xxVPN，说不定就是蜜罐或者中资背景，你不知道背后是不是会偷偷利用你的设备网络用作网络攻击或者向公安提交你的信息，而且 VPN 本身不适合用来翻墙，不要安装，除非你是走投无路像用IE浏览器下载Chrome浏览器那样临时下载别的翻墙软件这种不涉及隐私信息的操作。</li>\n    <li>翻墙设备，手机等尽量不要用国内厂商的国产系统，国产手机基本都已经内置了反诈软件，最简单和安全的方式是买个非国行的国外品牌手机全局翻墙，不安装任何国产软件，做到国内和国外访问两个手机物理隔离的效果。</li>\n    <li>系统、软件及时更新，不要用过时或者无人维护的软件和协议，如 shadowsocksR、trojan、tuic 等</li>\n    <li>不要在墙内墙外用相同的网名，发相同内容、用墙内手机号注册墙外服务等自曝物理身份信息的行为。</li>\n  </ul>\n  <li>被墙垄断的想象力</li>\n  <ul>\n    <li>GFW（墙）的影响人数有十几亿，却甚至没有一个正式的官方名称，它的存在方式也是“刑不可知，则威不可测”式的。最大的恐惧永远是未知，比起物理上的限制，精神上的限制影响更加强大深远，有太多人因为想象中的恐惧就先自我恐吓、自我审查、自我限制，行动被真切的想象而束缚，精神被折磨而痛苦，所有的想象在真正与现实接轨时都会失真，你花在想象它的时间上越久就越脱离现实。我们可以了解它，跨过它，忽视它，超越它，不要把想象力放在这些加倍限制你、缩小你、贬低你存在的地方，把想象力放在爱、创造、探索这些会加倍你力量的地方。</li>\n  </ul>\n  <li>我能做些什么</li>\n  <ul>\n    <li><a href=\"https://ooni.org/\">OONI</a> 是一个观测全球互联网审查的非营利性自由软件项目，他们会监测记录世界各地的审查事件的研究报告并实时<a href=\"https://explorer.ooni.org/\">公开发布</a>，来提高互联网审查的透明度，你可以安装他们的应用 <a href=\"https://ooni.org/install/\">OONI Probe</a> 并上传你所在地网络的审查程度，帮助促进信息平等。</li>\n    <li><a href=\"https://gfw.report/\">GFW Report</a> 是一个主要关注中国互联网审查技术的长期审查监测平台，旨在增进人们对互联网审查的理解并提高对它的认识。他们最近<a href=\"https://x.com/gfw_report/status/1842070152709541912\">发布</a>了一个面向翻墙人群的匿名调查问卷，试图了解和改进翻墙生态系统，你可以花一分钟时间在<a href=\"https://stanforduniversity.qualtrics.com/jfe/form/SV_9sCK42HV8Ntwc4e?s=kai&amp;Q_Language=ZH-S\">这里</a>参与调查。</li>\n  </ul>\n</ul>","content_text":"> 極權社會中遭遇最多危險的既不是無知的大衆，也不是已經理解極權的極少數人，而是那些啓蒙過程中有了質疑極權的意識但還不知道如何保護自己的人。 —\n> @Chillylin\n\n\n\n * 随着鬼子墙的封锁越来越紧，越来越多的人开始接触翻墙，其中绝大多数人都并非熟悉各种网络和安全概念，不可避免的在翻墙的过程中有着各种各样的问题和隐患，今天我们就来讲讲翻墙的一些基础概念和常见误区，帮大家了解GFW，平稳过墙，安全翻墙。\n * 翻墙\n    * 简单直接地理解，翻墙就像是海外代购，因为某些原因，商品不能直接从海外寄到我们国内的地址，不得不找一个中介来中转货物，商家发给代购，代购再寄给我们，购买成功✌️。同样地，某些海外网站被GFW屏蔽，我们无法访问，这时候需要一台能访问的国外服务器作为中介转发数据，服务器在被屏蔽的网站和我们的设备之间中转信息，网站访问成功✌️。\n\n * VPN和梯子\n    * VPN的典型使用场景是公司员工在公司外使用的外部网络访问公司的网络时，无法保证员工的网络环境是否安全，是否会监听篡改到公司的网络通信，所以建立一套加密传输信息的系统，既能访问公司内部网络，又能在不安全的网络环境下保证通信安全。当然适用范围不局限于公司，比如普通的网络审查或者电视剧/游戏限制特定地区访问的锁区，VPN\n      因为突破限制而被广泛使用，但是并不使用于中国大陆，墙（GFW）的网络封锁已经远非普通级别，使用 VPN\n      就像海淘时快递上了锁，虽然不知道你买的是什么东西，但知道你不想让海关知道，那海关就直接把包裹拦截丢弃；一般网络通信中，都会在通信中标明使用的协议，使用\n      VPN 时，流量就会明晃晃地标明自己是加密协议，协议特征明显且主动，就像夜空中最闪亮的星。既然不知道你在干什么，那就技术上把 VPN\n      常用协议的出国连接都直接干扰屏蔽掉，或者线下拦截你真人，让学校辅导员、反诈、派出所线下敲打。\n    * 历史不断地告诉我们，只要真实的需求一直存在，那它的供给就永远不会消失，而是找到更难被观测到的方式来实现，就像有禁酒令就会有酒厂制造含有酒精的饮料一样，表面上是叫各种苹果汁、芭乐汁、红茶咖啡，但实际上有着不低的酒精含量，叫作不同口味的酒更准确，类似这样的代理工具就俗称梯子，在GFW看来，你只是在访问一个普通的境外电商网站或者博客，实际上你是在通过这个看似正常的网站作为代理访问各种被封锁的网站。简单总结就是，用VPN，不知道你在看什么，但知道你不想让别人知道你在看什么，用梯子，知道你在看普通网站，不知道你看的这个“普通网站”的内容，也不知道你实际上是在把这个网站当作代理访问其他被封锁的网站。\n\n * 协议\n    * 协议就像语言，要对话的双方都说同一种语言才能够相互理解，网络上的两端也需要使用相同协议才能通信，我们浏览网站用的是一种协议，QQ聊天用的是一种协议，发邮件用的一种协议，VPN也有各种各样的协议，梯子也是。\n    * 自建某个协议的梯子，需要在服务器上安装实现这个协议的服务端软件，在你的设备（电脑/手机/路由器…）上安装支持这个协议的客户端软件，配置好账号密码等验证方式来连接上服务器，建立翻墙通道，才能达到翻墙的效果。\n    * 主流翻墙协议的客户端，iOS上推荐小火箭 ShadowRocket，Android 上推荐 Exclave ，PC端推荐 mihomo（原\n      ClashMeta）\n\n * 线路\n    * 只有技术上的突破还不够我们流畅地网上冲浪，我们还面临着物理网络资源上的限制，中国出国网络带宽总量低，人均少，网络服务也是垄断市场，国内家用宽带经过提速降费，虽然普遍就百兆起步，但很大程度上只是中国大局域网内的速度，家用带宽提速的成本被转嫁到企业商用上，商宽补贴家宽，尤其翻墙涉及到出国带宽时，总量就那么多，当然是优先保证企业用户使用，普通出国线路被运营商\n      QoS\n      严重劣化，访问国外网络速度慢，丢包率高，不仅是网络使用高峰期，就连普通时段也难以有流畅的体验，很多没有被墙的境外网站也加载缓慢甚至不能完成加载。网络线路有优劣之分，所以想要真正地网上冲浪，你还需要翻墙用的服务器有线路优化。\n    * 在不同的地区，不同的运营商的优化线路也有不同，比如电信的优化线路 CN2 GIA，联通的 AS9929、AS4837 线路，移动的\n      CMI、CMIN2\n      线路。主流的运营商里，电信宽带用户最多，人均国际出口带宽低，且价格昂贵；联通宽带用户较少，人均国际出口带宽高，价格较便宜；移动带宽用户最少，人均国际出口带宽一般，很多用户都是白送宽带积累的，且有墙内墙，国内网络质量较差，综合来讲，最好是在一开始办理带宽时就选联通，如果使用场景需要在多个地区和运营商网络使用，最简单的还是买\n      CN2 GIA\n      线路的服务器，全国效果都不错，在某些地区，如泉州等，对所有出国网络都有更严重的限制，严重时候近乎白名单效果，可能就需要国内中转，在国内其他限制不严格的地区再找台服务器，多加一层代理。\n    * 还要注意线路的去程和回程也可能不一样，可能只有单程是优化线路，比如去程是广州 → 香港 直连，回程就变成 香港 → 日本 → 北京 →\n      广州，也不是物理距离越近就一定越好，距离很近的，也可能去程回程都是绕地球的线路，一般 VPS 商家都会提供 Looking Glass服务，可以\n      traceroute\n      测试服务器到国内的线路。要注意不要被各种营销活动的季付年付忽悠，尽量只月付，损失不会太大，线路也不一定会一直不变，可能刚开始是优化的线路，过段时间就换成了普通线路，服务器IP也说不定哪天就被墙了，小服务商也有可能随时跑路。VPS\n      相关的评测、新闻等更多信息也可以选择性地参考 全球主机交流论坛、NodeSeek、VPS信号旗播报。\n\n * 概率性和确定性\n    * 不存在一个可以一劳永逸永远稳定的翻墙协议，你可能不时就会看到自建的梯子被封了的情况，有些可能是间隙性屏蔽几分钟，有些可能是屏蔽端口，有些是直接屏蔽服务器IP，甚至有些在客户端屏蔽，间歇性禁用宽带访问国外网络或者出国流量到一定量级限速、禁用。翻墙软件用户/开发者和GFW是一个持续的博弈过程，对于可识别的旧协议和根本不知道是什么的协议，可以直接屏蔽服务器，但在主流协议逐渐转向隐匿的代理模式时，GFW就难以完全判断一个出国网络连接是正常的还是隐匿的代理，于是通过机器学习等技术来对流量特征进行识别，给出一个可能的概率，这种情况下也会有误判产生，导致正常通信受到影响，所以前面讲的普通正常的境外网络访问也可能有部分是因误杀而无法访问，主流的翻墙协议已经逐渐转向基于类似网页浏览的HTTPS这类被广泛使用的协议，一旦误封会造成更大的经济损失，以此来抑制GFW的威力。在部署翻墙服务时，要选那些有开发者持续维护更新，用户反馈被识别情况少的协议。\n\n * 需求和商业化\n    * 随着不同场景下的需求不同和越来越多的翻墙用户基数，使用方式上也是各种各样。最开始只是DNS污染的时候，改下hosts或者DNS就行了，到IP封禁越来越普遍的时候，普通代理协议也还能用，电脑上装个客户端软件开放个SOCKS5端口，浏览器安装个分流的扩展\n      AutoProxy 或者 Proxy SwitchyOmega 来分流，默认直连，被墙的网站才走代理；随着移动设备普及，需要全平台翻墙，这个时候\n      Clowwindy 站出来不仅开源了本来自用的 Shadowsocks 协议，还一人开发了所有平台服务端客户端的全套软件，Shadowsocks\n      开始在全平台普及；既然这么多设备都需要翻墙，干脆就在路由器上配好翻墙，被封的网站实在太多了，开始境内IP段直连境外IP段全走代理，连接翻墙路由器的设备无需设置也能翻墙，路由器刷机成\n      OpenWrt 系统，或者软路由全局翻墙也开始普遍起来；随着GFW\n      开始用机器学习等技术，服务器被识别封禁的越来越多，专门卖梯子的商家也越来越多，个人服务器一旦被封就要重新再买新的或者换IP，商家有很多服务，封了一个还有很多节点，而且有全球各个地区的节点，有些还能解锁流媒体，不用担心单点故障；除了最普通的翻出去就能访问的，还有各种锁区的国外服务，玩游戏需要UDP代理的，还能加上广告屏蔽等等，多样的需求就催生了能整合功能高度自定义的软件，其中最有名的就是clash系列，一系列复杂繁多的规则配置，在规则订阅功能的帮助下，到最终用户面前的操作，被简化到只需要填入一个配置订阅链接就可以了，提供服务的机场也普及开来。\n    * 一般人翻墙最方便可行的方式就是买机场的服务，不过也要注意，由于提供翻墙服务本身就有合法性问题，运营者也良萎不齐，所以买梯子的时候也要注意安全，需要真实身份信息的绝对不要买，注意服务条款等，写明遵守中国法律之类的就别买了，还有些爱国机场，主动屏蔽了像法轮功、大纪元之类的网站也没说明，购买后可以试着访问下这类网站验证。买的时候尽量只月付，付款尽量选择有PayPal之类第三方的支付方式，要记住，机场无论大小随时有跑路可能。\n\n * 翻墙悖论\n    * 翻墙遇到最大的问题不是翻墙时的，而是怎么开始，就像没有工作经验的人去找工作，而工作要求是有工作经验，当你需要下载翻墙软件的时候，发现下载地址是被墙的，当你买梯子的时候，发现机场的官网被墙了，要下载翻墙软件你需要先翻墙，要买梯子你需要先有梯子，不要着急，现实世界中充满了缝隙，总有方法可以达成，有很多可访问的在线网页代理、免翻墙镜像、免翻墙下载地址，用这些来临时绕过，或者找社群、能翻墙的朋友求助等，有过类似经历，就记得日后多留一条路，多留一个梯子或者和朋友互为备份，不要再留下单点故障。\n\n * 日常使用的安全\n    * 具体怎么能翻墙，最多人听说的可能就是\n      VPN，于是当需要翻墙的时候，可能下意识地就会去搜索VPN软件，尤其大多数设备都是移动设备，自然而然地就会去应用商店搜索VPN软件，这是最多人会做的事，所以也是最多恶意潜伏的地方。特别是搜出来一堆免费的\n      老王VPN、xxxVPN、免费xxVPN，说不定就是蜜罐或者中资背景，你不知道背后是不是会偷偷利用你的设备网络用作网络攻击或者向公安提交你的信息，而且\n      VPN 本身不适合用来翻墙，不要安装，除非你是走投无路像用IE浏览器下载Chrome浏览器那样临时下载别的翻墙软件这种不涉及隐私信息的操作。\n    * 翻墙设备，手机等尽量不要用国内厂商的国产系统，国产手机基本都已经内置了反诈软件，最简单和安全的方式是买个非国行的国外品牌手机全局翻墙，不安装任何国产软件，做到国内和国外访问两个手机物理隔离的效果。\n    * 系统、软件及时更新，不要用过时或者无人维护的软件和协议，如 shadowsocksR、trojan、tuic 等\n    * 不要在墙内墙外用相同的网名，发相同内容、用墙内手机号注册墙外服务等自曝物理身份信息的行为。\n\n * 被墙垄断的想象力\n    * GFW（墙）的影响人数有十几亿，却甚至没有一个正式的官方名称，它的存在方式也是“刑不可知，则威不可测”式的。最大的恐惧永远是未知，比起物理上的限制，精神上的限制影响更加强大深远，有太多人因为想象中的恐惧就先自我恐吓、自我审查、自我限制，行动被真切的想象而束缚，精神被折磨而痛苦，所有的想象在真正与现实接轨时都会失真，你花在想象它的时间上越久就越脱离现实。我们可以了解它，跨过它，忽视它，超越它，不要把想象力放在这些加倍限制你、缩小你、贬低你存在的地方，把想象力放在爱、创造、探索这些会加倍你力量的地方。\n\n * 我能做些什么\n    * OONI\n      是一个观测全球互联网审查的非营利性自由软件项目，他们会监测记录世界各地的审查事件的研究报告并实时公开发布，来提高互联网审查的透明度，你可以安装他们的应用\n      OONI Probe 并上传你所在地网络的审查程度，帮助促进信息平等。\n    * GFW Report\n      是一个主要关注中国互联网审查技术的长期审查监测平台，旨在增进人们对互联网审查的理解并提高对它的认识。他们最近发布了一个面向翻墙人群的匿名调查问卷，试图了解和改进翻墙生态系统，你可以花一分钟时间在这里参与调查。","date_published":"2024-10-08T11:03:24.114Z","_microfeed":{"web_url":"https://blog.0ne.day/i/一些翻墙通识-QgbtJdeP1c6/","json_url":"https://blog.0ne.day/i/QgbtJdeP1c6/json/","rss_url":"https://blog.0ne.day/i/QgbtJdeP1c6/rss/","guid":"QgbtJdeP1c6","status":"published","itunes:episodeType":"full","date_published_short":"Tue Oct 08 2024","date_published_ms":1728385404114}},{"id":"c-0KfHuTo35","title":"我的网站访问记录是怎么泄露的之用 MosDNS 防止 DNS 泄露并实现分流","url":"https://blog.0ne.day/i/mosdns-dns-c-0KfHuTo35/","content_html":"<ul>\n  <li>自从反诈以来，中国互联网上有越来越多的网友分享自己刚打开某个网站，正准备网上冲浪的时候，突然来了<code>“您正在浏览境外小众网站，请谨慎浏览”</code>或者是<code>“xx网警提醒您，您访问的网站xxx存在用户举报”</code>之类的短信，甚至有的是直接跳脸的闪信，还有的直接就是反诈民警直接电话呼过来，甚至还边响铃边带着这是反诈中心电话，请放心接听之类的闪信，给了不少网友一点小小的反诈震撼，被诈骗之余，网友们可能会好奇他们是怎么知道你在访问什么网站的？诸位网友稍安勿燥，接下来我们将揭开反诈的骗…啊不对，是DNS的面纱，并且帮助大家学习如何保护自己的隐私。</li>\n  <li>什么是DNS</li>\n  <ul>\n    <li>为了便于理解网络是如何通信的，我们可以把网络类比成邮政系统，我们在网络上接收信息发送信息就像收发快递，只不过网络的传输速度是光速，收发快递需要有双方确定的地址，网络上我们的地址就是IP地址，我们上网时的每次通信都是向对方的IP地址发送信息，当你访问某个网站的时候，其实是在你的IP地址和网站的IP地址之间传递信息，互联网早期，人们访问网站都是直接输入IP地址访问，但是像<code>114.514.114.514</code> 这样的地址形式太不好记，就像生活中我们不会说<code>“我想去中华人民共和国北京市海淀区清华园 40°0′2″N 116°19′34″E”</code>，而是说<code>“我想去清华大学”</code>，DNS（域名解析系统）就是这样一个人类友好的别名系统，把域名<code>example.com</code>转换成对应服务器的IP地址<code>114.514.114.514</code>，这样我们再上网冲浪的时候访问网站就好记多了。</li>\n  </ul>\n  <li>DNS的问题</li>\n  <ul>\n    <li>明文可审查</li>\n    <ul>\n      <li>互联网早期发展阶段，没有想到政府会大规模监控其他人上网，并且可能因此写保证书或者进监狱，更没有想到有人会从中作梗，把域名指向到错误的IP上做坏事。所以 DNS 协议默认是明文的，一般如果你没有特意设置过 DNS 服务器的话，默认会使用电信运营商的 DNS 服务器，即使你使用了第三方公共 DNS 服务器，在通过 DNS 查询某网站的 IP 的时候，通信内容都是运营商可以直接看到的，这么一来，你访问了哪些网站的域名，运营商都知道得一清二楚，而众所周知，中国的电信运营商都属国有，政府能监控所有人的域名访问记录，那顺道再给你发个短信打个电话问候一下肯定不在话下。</li>\n    </ul>\n    <li>DNS 劫持和 DNS 污染</li>\n    <ul>\n      <li>网络通信的过程其实和快递类似，快递运输的途中会有一个个的中转点，不是直接从地址A到地址B，而是从<code>地址A → A附近的快递网点 → 中转点1 → 中转点2 →...→ 中转点N → B附近的快递网点 → 地址B</code>，网络发送信息的过程也类似，从<code>你的手机/电脑 → 你家的路由器 → 电信运营商接入点 → 运营商骨干网节点1 → 运营商骨干网节点2 →…→ 运营商骨干网节点N → 对方电信运营商接入点 → 对方的路由器 → 对方的手机/电脑</code>。</li>\n      <li>对收发快递的用户来说，快递的运输依赖于中间人快递公司，如果你的包裹没有上锁，那么快递公司完全有能力在运输过程中偷梁换柱或者全部私吞，想想如果你下单了首发的游戏光盘，收货时却发现变成了菠萝！或者你下单的就是菠萝，却被快递公司偷吃了，而你一直收不到货，你重复下单菠萝，却永远收不到货。</li>\n      <li>网络通信也类似，既然电信运营商全程负责在 DNS 服务器和用户之间直接转发消息，也能看到明文的内容，那么就能够篡改网站对应的IP地址，而墨菲定律告诉我们，如果坏事可能发生，那就一定会发生，果不其然，即使在今天电信运营商们也一直在做着这些坏事，把 DNS 服务器返回的结果丢失或者篡改成错误的 IP，而用户们轻则访问不了网站，重则被钓鱼丢失钱财。</li>\n    </ul>\n    <li>DNS 解析友好度</li>\n    <ul>\n      <li>随着互联网的发展，大一些的互联网服务提供者为了确保服务的高可用和提高不同地区用户的访问速度，会在不同地区都设立服务器提供服务，因此一个域名可能指向多个 IP，DNS 服务器在解析域名的时候，理想情况下应该返回离用户最近的服务器 IP，确保用户流畅的网络体验，但面对一些国外的服务，国内电信运营商默认的 DNS 服务器往往在这方面能力较差，而一些在全球各国各地区都有服务器的第三方公共 DNS 服务通常会有更好的解析结果，常见例子是使用某些国外互联网服务时，比如 Switch、PS 等下载游戏时，换个国外的 DNS 下载速度就变快了，就是因为使用了解析更精准的 DNS 服务器，对应下载资源的域名解析到了离用户更近速度更快的服务器。</li>\n    </ul>\n  </ul>\n  <li>解决 DNS 的问题</li>\n  <ul>\n    <li>加密 DNS 协议</li>\n    <ul>\n      <li>随着网络的广泛应用，DNS安全也越来越受重视，因此开发了加密的DNS协议，加密之后，网络通信的中间节点们就看不到我们的通信内容了，自然也无从篡改。</li>\n      <li>目前主流的DNS加密协议有 DoT（DNS over TLS)、DoH（DNS over HTTPS/HTTP3）、DoQ（DNS over QUIC）、DNSCrypt，由于 DNSCrypt、DoQ 支持平台有限，DoT 协议特征明显，很容易被屏蔽，所以推荐依附于 HTTPS 的 DoH，目前主流的公共 DNS 服务基本都支持了 DoH 协议。</li>\n    </ul>\n    <li>公共 DNS 服务</li>\n    <ul>\n      <li>电信运营商默认提供的 DNS 服务只做到了基本能用，对于安全性、准确性等方面支持较差，因此有些企业或者公益组织提供了公共的 DNS 服务，这些公共 DNS 服务也在不同地区都有多台服务器，使用 anycast 技术，所有地区服务器的 IP 地址都相同，用户访问时会自动分配到离用户最近的服务器，以尽可能得到最优的结果。</li>\n      <li>国内公共 DNS 服务</li>\n      <ul>\n        <li>国内公共 DNS 服务的服务器大多都在国内各地区，国外则较少，所以在国内用户对国内网站的解析效果较好，而对国外用户和国外网站的效果可能就不太好了。</li>\n        <li>国内公共 DNS 服务虽然即使是加密的，也可能存在 DNS 污染的现象，但还是比电信运营商默认的 DNS 服务污染少多了，电信运营商提供的 DNS 服务没有加密，整个通信链路中除了电信运营商，也可能会有其他的攻击者，所以加密还是好过不加密。</li>\n        <li>自2022年12月1日起施行的<b>《中华人民共和国反电信网络诈骗法》</b>第二十四条 <code>“提供域名解析、域名跳转、网址链接转换服务的，应当按照国家有关规定，核验域名注册、解析信息和互联网协议地址的真实性、准确性，规范域名跳转，记录并留存所提供相应服务的日志信息，支持实现对解析、跳转、转换记录的溯源。”</code> 意味着即使是使用国内公共 DNS 服务的加密 DNS 协议，域名的请求记录也被服务商保存，提供给政府进行监控对政府来说和明文一样，那当你用国内公共 DNS 服务访问某些国外网站的时候，也可能会接到反诈电话。所以尽量避免用国内任何 DNS 服务解析国外网站。</li>\n        <li>国内流行的公共 DNS 服务中，南京信风的 114DNS（114.114.114.114）知名度最高，由于公司本身就是对政府和电信运营商等做用户行为分析、广告等业务的，你使用它们公共 DNS 的每一次记录都可能被分析并利用，不推荐， 其他的据说阿里的 <a href=\"https://www.alidns.com/knowledge?type=SETTING_DOCS\">AliDNS</a> 服务器节点比较多，腾讯的 <a href=\"https://www.dnspod.cn/Products/publicdns\">DNSPod</a> 比较准一些，可以用这两个的 DoT 和 DoH。</li>\n      </ul>\n      <li>国外公共 DNS 服务</li>\n      <ul>\n        <li>由于政策原因，国外公共 DNS 服务难以在国内设立服务器，所以都没有国内节点，很多解析结果对国内来说并不是最优，所以国外公共 DNS 服务对国外用户访问国外网站效果比较好，对国内用户访问国内服务就不好用了。</li>\n        <li>既然加密的国外公共 DNS 服务政府无法监控，那就直接屏蔽掉他们好了，目前国外常用的公共 DNS 服务在国内各地区均收到不同程度的干扰，有些地区直接屏蔽，有些地区会不定时干扰阻断连接，间歇性屏蔽国外公共 DNS服务，所以想要国外 DNS 服务访问稳定，最好通过代理访问或者自建 DoH 服务器。</li>\n        <li>国外公共 DNS 服务推荐 <a href=\"https://developers.google.com/speed/public-dns/docs/intro\">Google（8.8.8.8）</a> 和 <a href=\"https://developers.cloudflare.com/1.1.1.1/setup/\">Cloudflare（1.1.1.1） </a>的，这俩应该是全球各地服务器数量最多的公共 DNS 服务了，体验应该也会好很多。</li>\n      </ul>\n    </ul>\n    <li>DNS 分流</li>\n    <ul>\n      <li>对于每天需要上互联网而不只是上局域网的人来说，即要想上网速度快，又不想被反诈，最好的情况是国内 DNS 服务只用来解析国内网站，国外网站全部用国外公共 DNS 解析，要达到这个目的，我们需要先确定网站是否在国内，如果是国内的服务，那么使用国内 DNS，否则使用国外 DNS，那怎么来判断是否是国内网站呢，这方面已经有了不少的翻墙分流方案做过了，简单来说就是两个列表，一个是使用最多的<a href=\"https://github.com/Loyalsoldier/v2ray-rules-dat/releases/latest/download/direct-list.txt\">国内域名列表</a>，一个是 IP 地址归属地为<a href=\"https://raw.githubusercontent.com/Loyalsoldier/geoip/release/text/cn.txt\">中国的 IP 区段列表</a>，当接受一个网站的 DNS 解析请求时，先看它是否在国内域名列表中，如果在，就用国内 DNS 解析，如果不在，就用国外 DNS 解析，解析的 IP 地址如果在中国的 IP 区段中，那就改用国内 DNS 解析，并对解析结果缓存。虽然国内域名列表没有包含所有国内域名，IP区段列表也不是全都准确，但两者组合基本上能保证一个相对更安全准确的结果。</li>\n      <li>对于这个解决方案，刚好 <a href=\"https://github.com/IrineSistiana/mosdns\">MosDNS</a> 这个功能强大的 DNS 转发器就能很好的做到，MosDNS 至今已经开发到第五版，以下就给出 V5 的配置文件，详细可以看看<a href=\"https://irine-sistiana.gitbook.io/mosdns-wiki/mosdns-v5\">官方文档</a>，根据自己的需求修改<p><br/></p><pre data-lang=\"yaml\">\t\t  log:\n\t\t  level: info\n\t\t  production: true\n\t\t  \n\t\t  plugins:\n\t\t  # 定期更新中国域名列表到配置目录\n\t\t  # https://github.com/Loyalsoldier/v2ray-rules-dat/releases/latest/download/direct-list.txt\n\t\t  - tag: cn_domainList\n\t\t    type: \"domain_set\"\n\t\t    args:\n\t\t      files:\n\t\t        - \"./direct-list.txt\"\n\t\t  \n\t\t  # 定期更新IP列表到配置目录\n\t\t  # https://raw.githubusercontent.com/Loyalsoldier/geoip/release/text/cn.txt\n\t\t  - tag: cn_ipList\n\t\t    type: \"ip_set\"\n\t\t    args:\n\t\t      files:\n\t\t        - \"./cn.txt\"\n\t\t  \n\t\t  #国外DNS\n\t\t  - tag: world_DNS\n\t\t    type: \"forward\"\n\t\t    args:\n\t\t      upstreams:\n\t\t        #可使用代理或者自建DoH\n\t\t        - tag: google_doh\n\t\t          addr: \"https://dns.google/dns-query\"\n\t\t          dial_addr: \"8.8.8.8\"\n\t\t          enable_http3: true\n\t\t          insecure_skip_verify: false\n\t\t  \n\t\t        - tag: cloudflare_doh\n\t\t          addr: \"https://1.1.1.1/dns-query\"\n\t\t          dial_addr: \"1.1.1.1\"\n\t\t          enable_http3: true\n\t\t          insecure_skip_verify: false\n\t\t  \n\t\t  #国内DNS\n\t\t  - tag: cn_DNS\n\t\t    type: \"forward\"\n\t\t    args:\n\t\t      upstreams:\n\t\t        - tag: alidns_dot\n\t\t          addr: \"tls://dns.alidns.com\"\n\t\t          dial_addr: \"223.5.5.5\"\n\t\t          enable_pipeline: true\n\t\t          insecure_skip_verify: false\n\t\t  \n\t\t        - tag: dnspod_dot\n\t\t          addr: \"tls://dot.pub\"\n\t\t          dial_addr: \"1.12.12.12\"\n\t\t          enable_pipeline: true\n\t\t          insecure_skip_verify: false\n\t\t  \n\t\t  #本地缓存\n\t\t  - tag: local_cache\n\t\t    type: \"cache\"\n\t\t    args:\n\t\t      size: 65535\n\t\t      lazy_cache_ttl: 260000\n\t\t      dump_file: \"./cache.dump\"\n\t\t      dump_interval: 600\n\t\t  \n\t\t  #缓存解析\n\t\t  - tag: cache_resolve\n\t\t    type: \"sequence\"\n\t\t    args:\n\t\t      - exec: $local_cache\n\t\t      - matches:\n\t\t          - has_resp\n\t\t        exec: query_summary cache\n\t\t      - matches:\n\t\t          - has_resp\n\t\t        exec: accept\n\t\t  \n\t\t  #国内解析\n\t\t  - tag: cn_resolve\n\t\t    type: \"sequence\"\n\t\t    args:\n\t\t      - exec: $cn_DNS\n\t\t      - exec: query_summary cn_DNS\n\t\t  \n\t\t  #解析流程\n\t\t  - tag: resolve_process\n\t\t    type: \"sequence\"\n\t\t    args:\n\t\t      - exec: prefer_ipv4\n\t\t  \n\t\t      - exec: jump cache_resolve\n\t\t  \n\t\t      - matches:\n\t\t        - \"qname $cn_domainList\"\n\t\t        exec: goto cn_resolve\n\t\t  \n\t\t      - exec: $world_DNS\n\t\t      - exec: query_summary world_DNS\n\t\t  \n\t\t      - matches:\n\t\t        - \"resp_ip $cn_ipList\"\n\t\t        exec: goto cn_resolve\n\t\t  \n\t\t  # 提供明文的UDP DNS服务\n\t\t  - tag: udp_server\n\t\t    type: \"udp_server\"\n\t\t    args:\n\t\t      entry: resolve_process\n\t\t      listen: \"0.0.0.0:53\"\n</pre></li>\n    </ul>\n    <li>在配置目录下载需要的两个列表文件，并定期更新，命令或后台服务启动 mosdns，就会监听 53 端口，提供一个明文的本地 DNS 服务，本机系统设置 DNS 为 127.0.0.1，局域网内其他机器或路由器设置 DNS 为此机器的 IP 地址即可使用上分流的 DNS。</li>\n    <li>除了上述的简单方案，MosDNS 还有更多强大的功能和插件，能精细控制 DNS 解析流程中的各个环节，大家可以参照文档自定义配置文件。</li>\n  </ul>\n  <li>DNS 之外</li>\n  <ul>\n    <li>SNI（Server Name Indication）泄露</li>\n    <ul>\n      <li>只加密了 DNS 还不够，网络协议中并非只有 DNS 协议是明文的，浏览网页的 HTTP 协议也是明文，虽然现在普遍升级到了加密的 HTTPS 协议，但是 HTTPS 协议也并非完全加密，当初为了一台服务器可以同时有多个域名，会在 HTTPS 请求发起时发送明文的网站域名给服务器，所以电信运营商虽然不知道你访问的具体链接和网页内容，但会知道你上了哪个网站，对于这个问题，目前还没有比较好的办法，有一项新的 ECH 协议计划正在推进中，来加密 SNI，但远未广泛施行，目前还是需要完全使用代理才能保证域名访问记录不泄露。</li>\n    </ul>\n    <li>安全意识</li>\n    <ul>\n      <li>除了网络基础设施环境的安全，更重要的还是日常网上冲浪的过程中的种种行为，审查系统不是一个无所不能的机器，了解它的运作机制，学习如何应对才能长久地保护自己，所以强烈推荐 matters 的这个<a href=\"https://public.0ne.day/videos/cybersecurity.mp4\">网络安全讲座</a>，梳理解答了很多常见的问题，看完之后会对大家有不少帮助。</li>\n    </ul>\n  </ul>\n</ul>","content_text":" * 自从反诈以来，中国互联网上有越来越多的网友分享自己刚打开某个网站，正准备网上冲浪的时候，突然来了“您正在浏览境外小众网站，请谨慎浏览”或者是“xx网警提醒您，您访问的网站xxx存在用户举报”之类的短信，甚至有的是直接跳脸的闪信，还有的直接就是反诈民警直接电话呼过来，甚至还边响铃边带着这是反诈中心电话，请放心接听之类的闪信，给了不少网友一点小小的反诈震撼，被诈骗之余，网友们可能会好奇他们是怎么知道你在访问什么网站的？诸位网友稍安勿燥，接下来我们将揭开反诈的骗…啊不对，是DNS的面纱，并且帮助大家学习如何保护自己的隐私。\n * 什么是DNS\n    * 为了便于理解网络是如何通信的，我们可以把网络类比成邮政系统，我们在网络上接收信息发送信息就像收发快递，只不过网络的传输速度是光速，收发快递需要有双方确定的地址，网络上我们的地址就是IP地址，我们上网时的每次通信都是向对方的IP地址发送信息，当你访问某个网站的时候，其实是在你的IP地址和网站的IP地址之间传递信息，互联网早期，人们访问网站都是直接输入IP地址访问，但是像114.514.114.514\n      这样的地址形式太不好记，就像生活中我们不会说“我想去中华人民共和国北京市海淀区清华园 40°0′2″N\n      116°19′34″E”，而是说“我想去清华大学”，DNS（域名解析系统）就是这样一个人类友好的别名系统，把域名example.com转换成对应服务器的IP地址114.514.114.514，这样我们再上网冲浪的时候访问网站就好记多了。\n\n * DNS的问题\n    * 明文可审查\n       * 互联网早期发展阶段，没有想到政府会大规模监控其他人上网，并且可能因此写保证书或者进监狱，更没有想到有人会从中作梗，把域名指向到错误的IP上做坏事。所以\n         DNS 协议默认是明文的，一般如果你没有特意设置过 DNS 服务器的话，默认会使用电信运营商的 DNS 服务器，即使你使用了第三方公共 DNS\n         服务器，在通过 DNS 查询某网站的 IP\n         的时候，通信内容都是运营商可以直接看到的，这么一来，你访问了哪些网站的域名，运营商都知道得一清二楚，而众所周知，中国的电信运营商都属国有，政府能监控所有人的域名访问记录，那顺道再给你发个短信打个电话问候一下肯定不在话下。\n   \n    * DNS 劫持和 DNS 污染\n       * 网络通信的过程其实和快递类似，快递运输的途中会有一个个的中转点，不是直接从地址A到地址B，而是从地址A → A附近的快递网点 → 中转点1 →\n         中转点2 →...→ 中转点N → B附近的快递网点 → 地址B，网络发送信息的过程也类似，从你的手机/电脑 → 你家的路由器 →\n         电信运营商接入点 → 运营商骨干网节点1 → 运营商骨干网节点2 →…→ 运营商骨干网节点N → 对方电信运营商接入点 → 对方的路由器 →\n         对方的手机/电脑。\n       * 对收发快递的用户来说，快递的运输依赖于中间人快递公司，如果你的包裹没有上锁，那么快递公司完全有能力在运输过程中偷梁换柱或者全部私吞，想想如果你下单了首发的游戏光盘，收货时却发现变成了菠萝！或者你下单的就是菠萝，却被快递公司偷吃了，而你一直收不到货，你重复下单菠萝，却永远收不到货。\n       * 网络通信也类似，既然电信运营商全程负责在 DNS\n         服务器和用户之间直接转发消息，也能看到明文的内容，那么就能够篡改网站对应的IP地址，而墨菲定律告诉我们，如果坏事可能发生，那就一定会发生，果不其然，即使在今天电信运营商们也一直在做着这些坏事，把\n         DNS 服务器返回的结果丢失或者篡改成错误的 IP，而用户们轻则访问不了网站，重则被钓鱼丢失钱财。\n   \n    * DNS 解析友好度\n       * 随着互联网的发展，大一些的互联网服务提供者为了确保服务的高可用和提高不同地区用户的访问速度，会在不同地区都设立服务器提供服务，因此一个域名可能指向多个\n         IP，DNS 服务器在解析域名的时候，理想情况下应该返回离用户最近的服务器\n         IP，确保用户流畅的网络体验，但面对一些国外的服务，国内电信运营商默认的 DNS\n         服务器往往在这方面能力较差，而一些在全球各国各地区都有服务器的第三方公共 DNS\n         服务通常会有更好的解析结果，常见例子是使用某些国外互联网服务时，比如 Switch、PS 等下载游戏时，换个国外的 DNS\n         下载速度就变快了，就是因为使用了解析更精准的 DNS 服务器，对应下载资源的域名解析到了离用户更近速度更快的服务器。\n\n * 解决 DNS 的问题\n    * 加密 DNS 协议\n       * 随着网络的广泛应用，DNS安全也越来越受重视，因此开发了加密的DNS协议，加密之后，网络通信的中间节点们就看不到我们的通信内容了，自然也无从篡改。\n       * 目前主流的DNS加密协议有 DoT（DNS over TLS)、DoH（DNS over HTTPS/HTTP3）、DoQ（DNS over\n         QUIC）、DNSCrypt，由于 DNSCrypt、DoQ 支持平台有限，DoT 协议特征明显，很容易被屏蔽，所以推荐依附于 HTTPS 的\n         DoH，目前主流的公共 DNS 服务基本都支持了 DoH 协议。\n   \n    * 公共 DNS 服务\n       * 电信运营商默认提供的 DNS 服务只做到了基本能用，对于安全性、准确性等方面支持较差，因此有些企业或者公益组织提供了公共的 DNS\n         服务，这些公共 DNS 服务也在不同地区都有多台服务器，使用 anycast 技术，所有地区服务器的 IP\n         地址都相同，用户访问时会自动分配到离用户最近的服务器，以尽可能得到最优的结果。\n       * 国内公共 DNS 服务\n          * 国内公共 DNS\n            服务的服务器大多都在国内各地区，国外则较少，所以在国内用户对国内网站的解析效果较好，而对国外用户和国外网站的效果可能就不太好了。\n          * 国内公共 DNS 服务虽然即使是加密的，也可能存在 DNS 污染的现象，但还是比电信运营商默认的 DNS\n            服务污染少多了，电信运营商提供的 DNS 服务没有加密，整个通信链路中除了电信运营商，也可能会有其他的攻击者，所以加密还是好过不加密。\n          * 自2022年12月1日起施行的《中华人民共和国反电信网络诈骗法》第二十四条\n            “提供域名解析、域名跳转、网址链接转换服务的，应当按照国家有关规定，核验域名注册、解析信息和互联网协议地址的真实性、准确性，规范域名跳转，记录并留存所提供相应服务的日志信息，支持实现对解析、跳转、转换记录的溯源。”\n            意味着即使是使用国内公共 DNS 服务的加密 DNS\n            协议，域名的请求记录也被服务商保存，提供给政府进行监控对政府来说和明文一样，那当你用国内公共 DNS\n            服务访问某些国外网站的时候，也可能会接到反诈电话。所以尽量避免用国内任何 DNS 服务解析国外网站。\n          * 国内流行的公共 DNS 服务中，南京信风的\n            114DNS（114.114.114.114）知名度最高，由于公司本身就是对政府和电信运营商等做用户行为分析、广告等业务的，你使用它们公共\n            DNS 的每一次记录都可能被分析并利用，不推荐， 其他的据说阿里的 AliDNS 服务器节点比较多，腾讯的 DNSPod\n            比较准一些，可以用这两个的 DoT 和 DoH。\n      \n       * 国外公共 DNS 服务\n          * 由于政策原因，国外公共 DNS 服务难以在国内设立服务器，所以都没有国内节点，很多解析结果对国内来说并不是最优，所以国外公共 DNS\n            服务对国外用户访问国外网站效果比较好，对国内用户访问国内服务就不好用了。\n          * 既然加密的国外公共 DNS 服务政府无法监控，那就直接屏蔽掉他们好了，目前国外常用的公共 DNS\n            服务在国内各地区均收到不同程度的干扰，有些地区直接屏蔽，有些地区会不定时干扰阻断连接，间歇性屏蔽国外公共 DNS服务，所以想要国外\n            DNS 服务访问稳定，最好通过代理访问或者自建 DoH 服务器。\n          * 国外公共 DNS 服务推荐 Google（8.8.8.8） 和 Cloudflare（1.1.1.1）\n            的，这俩应该是全球各地服务器数量最多的公共 DNS 服务了，体验应该也会好很多。\n   \n    * DNS 分流\n       * 对于每天需要上互联网而不只是上局域网的人来说，即要想上网速度快，又不想被反诈，最好的情况是国内 DNS\n         服务只用来解析国内网站，国外网站全部用国外公共 DNS 解析，要达到这个目的，我们需要先确定网站是否在国内，如果是国内的服务，那么使用国内\n         DNS，否则使用国外\n         DNS，那怎么来判断是否是国内网站呢，这方面已经有了不少的翻墙分流方案做过了，简单来说就是两个列表，一个是使用最多的国内域名列表，一个是 IP\n         地址归属地为中国的 IP 区段列表，当接受一个网站的 DNS 解析请求时，先看它是否在国内域名列表中，如果在，就用国内 DNS\n         解析，如果不在，就用国外 DNS 解析，解析的 IP 地址如果在中国的 IP 区段中，那就改用国内 DNS\n         解析，并对解析结果缓存。虽然国内域名列表没有包含所有国内域名，IP区段列表也不是全都准确，但两者组合基本上能保证一个相对更安全准确的结果。\n       * 对于这个解决方案，刚好 MosDNS 这个功能强大的 DNS 转发器就能很好的做到，MosDNS 至今已经开发到第五版，以下就给出 V5\n         的配置文件，详细可以看看官方文档，根据自己的需求修改\n         \n         \n         \n         \n         \t\t  log:\n         \t\t  level: info\n         \t\t  production: true\n         \t\t  \n         \t\t  plugins:\n         \t\t  # 定期更新中国域名列表到配置目录\n         \t\t  # https://github.com/Loyalsoldier/v2ray-rules-dat/releases/latest/download/direct-list.txt\n         \t\t  - tag: cn_domainList\n         \t\t    type: \"domain_set\"\n         \t\t    args:\n         \t\t      files:\n         \t\t        - \"./direct-list.txt\"\n         \t\t  \n         \t\t  # 定期更新IP列表到配置目录\n         \t\t  # https://raw.githubusercontent.com/Loyalsoldier/geoip/release/text/cn.txt\n         \t\t  - tag: cn_ipList\n         \t\t    type: \"ip_set\"\n         \t\t    args:\n         \t\t      files:\n         \t\t        - \"./cn.txt\"\n         \t\t  \n         \t\t  #国外DNS\n         \t\t  - tag: world_DNS\n         \t\t    type: \"forward\"\n         \t\t    args:\n         \t\t      upstreams:\n         \t\t        #可使用代理或者自建DoH\n         \t\t        - tag: google_doh\n         \t\t          addr: \"https://dns.google/dns-query\"\n         \t\t          dial_addr: \"8.8.8.8\"\n         \t\t          enable_http3: true\n         \t\t          insecure_skip_verify: false\n         \t\t  \n         \t\t        - tag: cloudflare_doh\n         \t\t          addr: \"https://1.1.1.1/dns-query\"\n         \t\t          dial_addr: \"1.1.1.1\"\n         \t\t          enable_http3: true\n         \t\t          insecure_skip_verify: false\n         \t\t  \n         \t\t  #国内DNS\n         \t\t  - tag: cn_DNS\n         \t\t    type: \"forward\"\n         \t\t    args:\n         \t\t      upstreams:\n         \t\t        - tag: alidns_dot\n         \t\t          addr: \"tls://dns.alidns.com\"\n         \t\t          dial_addr: \"223.5.5.5\"\n         \t\t          enable_pipeline: true\n         \t\t          insecure_skip_verify: false\n         \t\t  \n         \t\t        - tag: dnspod_dot\n         \t\t          addr: \"tls://dot.pub\"\n         \t\t          dial_addr: \"1.12.12.12\"\n         \t\t          enable_pipeline: true\n         \t\t          insecure_skip_verify: false\n         \t\t  \n         \t\t  #本地缓存\n         \t\t  - tag: local_cache\n         \t\t    type: \"cache\"\n         \t\t    args:\n         \t\t      size: 65535\n         \t\t      lazy_cache_ttl: 260000\n         \t\t      dump_file: \"./cache.dump\"\n         \t\t      dump_interval: 600\n         \t\t  \n         \t\t  #缓存解析\n         \t\t  - tag: cache_resolve\n         \t\t    type: \"sequence\"\n         \t\t    args:\n         \t\t      - exec: $local_cache\n         \t\t      - matches:\n         \t\t          - has_resp\n         \t\t        exec: query_summary cache\n         \t\t      - matches:\n         \t\t          - has_resp\n         \t\t        exec: accept\n         \t\t  \n         \t\t  #国内解析\n         \t\t  - tag: cn_resolve\n         \t\t    type: \"sequence\"\n         \t\t    args:\n         \t\t      - exec: $cn_DNS\n         \t\t      - exec: query_summary cn_DNS\n         \t\t  \n         \t\t  #解析流程\n         \t\t  - tag: resolve_process\n         \t\t    type: \"sequence\"\n         \t\t    args:\n         \t\t      - exec: prefer_ipv4\n         \t\t  \n         \t\t      - exec: jump cache_resolve\n         \t\t  \n         \t\t      - matches:\n         \t\t        - \"qname $cn_domainList\"\n         \t\t        exec: goto cn_resolve\n         \t\t  \n         \t\t      - exec: $world_DNS\n         \t\t      - exec: query_summary world_DNS\n         \t\t  \n         \t\t      - matches:\n         \t\t        - \"resp_ip $cn_ipList\"\n         \t\t        exec: goto cn_resolve\n         \t\t  \n         \t\t  # 提供明文的UDP DNS服务\n         \t\t  - tag: udp_server\n         \t\t    type: \"udp_server\"\n         \t\t    args:\n         \t\t      entry: resolve_process\n         \t\t      listen: \"0.0.0.0:53\"\n         \n   \n    * 在配置目录下载需要的两个列表文件，并定期更新，命令或后台服务启动 mosdns，就会监听 53 端口，提供一个明文的本地 DNS 服务，本机系统设置\n      DNS 为 127.0.0.1，局域网内其他机器或路由器设置 DNS 为此机器的 IP 地址即可使用上分流的 DNS。\n    * 除了上述的简单方案，MosDNS 还有更多强大的功能和插件，能精细控制 DNS 解析流程中的各个环节，大家可以参照文档自定义配置文件。\n\n * DNS 之外\n    * SNI（Server Name Indication）泄露\n       * 只加密了 DNS 还不够，网络协议中并非只有 DNS 协议是明文的，浏览网页的 HTTP 协议也是明文，虽然现在普遍升级到了加密的 HTTPS\n         协议，但是 HTTPS 协议也并非完全加密，当初为了一台服务器可以同时有多个域名，会在 HTTPS\n         请求发起时发送明文的网站域名给服务器，所以电信运营商虽然不知道你访问的具体链接和网页内容，但会知道你上了哪个网站，对于这个问题，目前还没有比较好的办法，有一项新的\n         ECH 协议计划正在推进中，来加密 SNI，但远未广泛施行，目前还是需要完全使用代理才能保证域名访问记录不泄露。\n   \n    * 安全意识\n       * 除了网络基础设施环境的安全，更重要的还是日常网上冲浪的过程中的种种行为，审查系统不是一个无所不能的机器，了解它的运作机制，学习如何应对才能长久地保护自己，所以强烈推荐\n         matters 的这个网络安全讲座，梳理解答了很多常见的问题，看完之后会对大家有不少帮助。","date_published":"2023-11-11T12:31:30.633Z","_microfeed":{"web_url":"https://blog.0ne.day/i/mosdns-dns-c-0KfHuTo35/","json_url":"https://blog.0ne.day/i/c-0KfHuTo35/json/","rss_url":"https://blog.0ne.day/i/c-0KfHuTo35/rss/","guid":"c-0KfHuTo35","status":"published","itunes:episodeType":"full","date_published_short":"Sat Nov 11 2023","date_published_ms":1699705890633}},{"id":"u0amVFpfzlp","title":"Hello, microfeed!","url":"https://blog.0ne.day/i/hello-microfeed-u0amVFpfzlp/","content_html":"<p>当 Cloudflare 发布对象存储 R2 时，大方地放出了 <a href=\"https://developers.cloudflare.com/r2/platform/pricing/\" rel=\"noopener noreferrer\" target=\"_blank\">10GB 免费存储空间和每月千万次访问次数</a>，这对绝大多数人的博客和播客来说都足够使用了，即使超过免费额度的访问量也很便宜，当时就在想，如果能基于此做一个用户友好的博客/播客发布工具，那将是把白嫖带给千家万户了，刚好今天发现真有人做了一个出来，<a href=\"https://www.listennotes.com/about/\" rel=\"noopener noreferrer\" target=\"_blank\">Listen Notes</a> 搞了个基于 Cloudflare R2 + Pages + D1 + ZeroTrust 的 CMS <a href=\"https://github.com/microfeed/microfeed\" rel=\"noopener noreferrer\" target=\"_blank\">microfeed</a>，可以直接从 GitHub 一键部署更新，刚好也一直想有个不折腾的博客，于是立即建了一个，mircrofeed 目前还是 0.1.1 版本，主题和后台界面还比较简陋，不过相信后面会有很大改善，后续有计划支持 ActivityPub，加入联邦宇宙，相信到时候会更加吸引人。</p>","content_text":"当 Cloudflare 发布对象存储 R2 时，大方地放出了 10GB\n免费存储空间和每月千万次访问次数，这对绝大多数人的博客和播客来说都足够使用了，即使超过免费额度的访问量也很便宜，当时就在想，如果能基于此做一个用户友好的博客/播客发布工具，那将是把白嫖带给千家万户了，刚好今天发现真有人做了一个出来，Listen\nNotes 搞了个基于 Cloudflare R2 + Pages + D1 + ZeroTrust 的 CMS microfeed，可以直接从 GitHub\n一键部署更新，刚好也一直想有个不折腾的博客，于是立即建了一个，mircrofeed 目前还是 0.1.1\n版本，主题和后台界面还比较简陋，不过相信后面会有很大改善，后续有计划支持 ActivityPub，加入联邦宇宙，相信到时候会更加吸引人。","date_published":"2023-02-19T00:00:13.359Z","_microfeed":{"web_url":"https://blog.0ne.day/i/hello-microfeed-u0amVFpfzlp/","json_url":"https://blog.0ne.day/i/u0amVFpfzlp/json/","rss_url":"https://blog.0ne.day/i/u0amVFpfzlp/rss/","guid":"u0amVFpfzlp","status":"published","itunes:episodeType":"full","date_published_short":"Sat Feb 18 2023","date_published_ms":1676764813359}}],"_microfeed":{"microfeed_version":"0.1.2","base_url":"https://blog.0ne.day","categories":[],"subscribe_methods":[{"name":"RSS","type":"rss","url":"https://blog.0ne.day/rss/","image":"https://blog.0ne.day/assets/brands/subscribe/rss.png","enabled":true,"editable":false,"id":"HJJ2rLrBL0A"},{"name":"JSON","type":"json","url":"https://blog.0ne.day/json/","image":"https://blog.0ne.day/assets/brands/subscribe/json.png","enabled":true,"editable":false,"id":"NIKOVY1VTpN"}],"description_text":"Mastodon","itunes:type":"episodic","items_sort_order":"newest_first"}}