in Linux

OpenWrt FreeRouterV2 无缝翻墙失效修复小记

仅仅配置工作半年的 OpenWrt 最近不能翻墙了。:( 刚开始怀疑是前段时间折腾 Qos 功能导致的,想着可能恢复下系统就好了。由于最近工作又比较忙,一直也没折腾。今天周末把路由又重新编译固件安装了一遍,发现问题依旧。这才让我意识到,GFW 可能又升级了。

之前的 DNS 污染数据包的 IP 特征非常明显,是固定的一组 IP,我们只要设定黑名单过滤掉,就能正常使用 DNS 解析了。但是现在 GFW 返回的 污染 IP 是随机的,再使用黑名单过滤就不合适了。

目前的解决方案是,当访问需要翻墙的网站时,使用国外 DNS 走 VPN 通道解析域名,这样才能保证不受到 GFW 污染。

需要做的修改:

1.使国外 DNS 查询走 VPN 通道:

在 OpenWrt 配置界面,添加静态路由 8.8.8.8 到 VPN,其他选填项留空。

2.指定需翻墙域名均使用国外 DNS 解析:

添加文件 /etc/ppp/ip-up.d/update_dnsconf.sh,用于通过 gfw.conf 文件自动生成对应配置命令(例:server=/google.com/8.8.8.8):

编辑脚本 /etc/ppp/ip-up.d/vpnup

3.删除多余的国外 DNS

由于国外 DNS 只使用一个,因此其他的国外 DNS 可以注释掉了。编辑文件 /etc/dnsmasq.d/server.conf

4.删除 DNS 污染包黑名单规则

由于规则已经失效,删除旧 iptables DROP 命令:

打开文件 /etc/firewall.user,删除 echo "Add DNS Fake IP Purify Rules @$(date +"%T@%Y-%m-%d")" >>/tmp/vpn.log 之后所有行。

至此全部修改完毕,重启路由即可生效。

Reference

原创文章,采用 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议 进行许可。
转载请注明:转载自 Tony's blog,原文网址:https://itony.me/884.html