已经发布了大量说明,其中包含用于绕过阻止Internet资源的各种选项。 但是这个话题并没有失去意义。 甚至更经常地,在立法层面上听到了一些倡议,以阻止有关绕过锁的方法的文章。 并且有传言称,罗斯科姆纳佐尔将因“更好”的锁而获得另一包纳税人的钱。 有经验的用户不会从本文中学到任何新知识或有用的东西。 但是其他人将收到现成的分步说明,以简单有效地选择旁路使用Padavan和Keenetic固件的流行路由器上的锁。

目录内容
引言
我使用
Zolg 锁旁路选项大约两年了。 网络上的许多指令都基于此。 矿山包括。
一切都很好,但是“最好永远是善的敌人”。 首先,一些新程序变得过于“智能”,将绕过路由器的DNS服务器使用自己的方法来解析域。 这不允许路由器上的dnsmasq将地址添加到ipset集以进行解锁,并导致逻辑结果-资源保持锁定状态。 在Android 9中,原生支持基于TLS的DNS,即 这种绕过锁定的方法将停止工作(如果其他设备之前尚未访问过dnsmasq)。 其次,每次从antizapret更新整个域列表都会导致无法预测的结果。 该列表可能包括未被真正阻止的域,并且这些域的操作在主渠道中很重要。 您需要时刻保持警惕并用手编辑生成的文件。 第三,我厌倦了“拖延”具有成千上万个赌场之类的大量域名,而这根本是不需要的。 随着时间的流逝,我意识到我只需要一小部分受阻资源。
因此,一年来,我一直在使用略微修改的解锁方法,对此我完全满意:
- 简单易用(配置后)。
- 完全控制您需要解锁的资源。
- 处理器资源和路由器RAM的最低要求。
- 绕过锁时,可广泛涵盖细微差别。
重要的是要注意,我的选项不适用于需要解锁成千上万个域的情况。 因为当路由器启动时,将解析给定列表中的每个域。 列表中的域越多,许多要解锁的ipset的初始化时间就越长。
绕过锁的基础是相同的-Tor网络。 它的使用是由于两个简单的因素-免费的,而且与任何VPN服务不同,Tor在俄罗斯被阻止的可能性接近于零。 Tor是从中到下在俄罗斯贩毒的基础。 锁定Tor将导致寻找新的市场工具并降低匿名性,这将需要成功启动地方执法机构的工作。 最终,这就像病毒一样,将开始对上层链接产生负面影响。 鉴于有关高级政府官员与全球向俄罗斯贩毒的关系的最新惊人消息,Tor在俄罗斯的封锁只是一个禁忌,尽管这是微不足道的。 无论是分配给该机构多少亿美元,罗斯科姆纳佐尔都没有,俄罗斯没有一个法院可以“自上而下”地封锁Tor。 即使俄罗斯只是简直是被毒品淹死(任何小学生都知道要怎么做,而且甚至在30分钟后,在拥有1万人口的任何城市中,实际上都有可能免费获得任何毒品),这甚至都不会令任何人感到惊讶或恐吓任何人。无论如何-这种邪恶的生活真理)。 在当前模式下,阻止Tor网络的概率低于阻止冬宫博物馆遗址的概率。
给出的说明很容易适用于带有OpenWrt的路由器。 同样,小的更改使使用OpenVPN轻松替换Tor成为可能。
配置后如何管理旁路锁?
一切都非常简单。 您有文件/opt/etc/unblock.txt-一个简单的列表可以解锁。 您可以解锁域,IP地址,地址范围或CIDR。 一行-一个元素。 允许使用空行,并且可以在行的开头使用#字符来忽略。
编辑此文件后,您只需执行命令即可应用新配置:
unblock_update.sh
来自unblock.txt的所有资源都被解锁,而无需重新启动路由器。
工作原理
- 初始化路由器会创建一组空的ipset IP地址,称为unblock。
- 将具有目的地的所有数据包从取消阻止重定向到Tor服务的规则已添加到防火墙。
- Tor服务以透明代理模式启动。
- 启动特殊脚本unblock_ipset.sh,该脚本解析unblock.txt中的所有域,并将其IP地址添加到unblock集中。 该文件的IP地址,范围和CIDR也被添加为取消阻止。
- Dnsmasq将使用附加配置文件unblock.dnsmasq启动,该文件指示解析时将unblock.txt中的域IP地址添加到unblock集中。
- cron以一定的频率运行unblock_ipset.sh以部分补偿细微差别的可能情况。
- 如有必要,如果提供商过滤DNS,则unblock.txt中的所有域(只有它们)都将通过dnscrypt-proxy进行解析。
配置Padavan路由器
您必须具有安装了Padavan固件和已配置Entware软件包管理器的路由器。 在Windows上,您可以使用
PuTTY客户端通过SSH连接到路由器。
确保您使用的是Entware,而不是旧版Entware-ng。 查看/ opt / var / opkg-lists文件夹的内容。 将会有一个entware或entware-ng文件。 在第二种情况下,您需要将路由器的Padavan固件更新到最新版本,然后重新安装Entware软件包管理器。 然后,才按照分步说明进行操作。
如评论所示,主要是那些最初配置不正确(即未加载init.d脚本的人)在路由器内部存储器中的用户。 如果您拥有小米Mi路由器3或3G,并且不确定Entware在内存中是否正常运行(自动启动),则只需重新设置所有内容即可。 服用PROMETHEUS。 更新脚本(1)。 更新源代码(2)。 收集并刷新最新固件(4)。 重置固件设置(NVRAM和文件存储)-高级>管理>设置。 在路由器上配置Internet访问并启用SSH。 在PROMETHEUS固件> RWFS格式中执行。 在“ R / W”部分中,选择“高级>管理>设置>挂载文件系统> UBIFS”。 重新启动路由器。 内部存储器中所有当前的Entware启动脚本将被自动注册,并且一切将像时钟一样工作。
为了进行测试,我使用了流行的小米路由器3G(内部存储器中安装了软件)和最新的固件-32a93db。 甚至在传说中的婴儿WT3020 AD / F / H上,一切都可以用,只要$ 10。

1.在路由器上安装必要的软件
opkg update opkg install mc tor tor-geoip bind-dig cron
mc-午夜指挥官文件管理器。 仅由于方便的mcedit编辑器,才需要它。 如果您习惯于使用其他文本编辑器,则无法安装mc。
tor -Tor服务。
tor-geoip -Tor的geo-IP数据库。
bind-dig -DNS客户端(nslookup和主机的类似物)。
cron-任务计划程序。
2.初始化ipset,创建多个解锁IP地址(start_script.sh)
连接必要的模块,并在路由器启动时创建一个名称为
unblock的空地址集。 为此,请在编辑器中打开
/etc/storage/start_script.sh文件:
mcedit /etc/storage/start_script.sh
在末尾添加:
modprobe ip_set modprobe ip_set_hash_ip modprobe ip_set_hash_net modprobe ip_set_bitmap_ip modprobe ip_set_list_set modprobe xt_set ipset create unblock hash:net
要从缓冲区粘贴,请使用Shift +插入,保存-F2,退出-F10。

如果需要,可以通过路由器的Web界面-“高级”>“个性化”>“脚本”>“在初始化路由器之前运行”来编辑start_script.sh文件。 编辑后,单击“应用”。

3. Tor设置
删除Tor配置文件的内容:
cat /dev/null > /opt/etc/tor/torrc
打开Tor配置文件:
mcedit /opt/etc/tor/torrc
粘贴(Shift +插入)内容:
User admin PidFile /opt/var/run/tor.pid ExcludeExitNodes {RU},{UA},{AM},{KG},{BY} StrictNodes 1 TransPort 192.168.0.1:9141 ExitRelay 0 ExitPolicy reject *:* ExitPolicy reject6 *:* GeoIPFile /opt/share/tor/geoip GeoIPv6File /opt/share/tor/geoip6 DataDirectory /opt/var/lib/tor
如有必要,将
192.168.0.1替换为路由器(LAN)的内部地址。 简要配置说明:
- 不包括输出节点:俄罗斯,乌克兰,亚美尼亚吉尔吉斯斯坦,白俄罗斯。
- 将透明代理挂到地址192.168.0.1,端口9141。
- 拒绝成为出口点。
4.绕过锁定的域列表(不仅是)(unblock.txt)
unblock.txt是一个简单的列表,可供解锁。 您可以解锁域,IP地址,范围或CIDR。 一行-一个元素。 空行(包括空格和制表符)将被忽略。 您可以在行的开头使用#字符来忽略它。
创建文件
/opt/etc/unblock.txt :
mcedit /opt/etc/unblock.txt
每行可以包含一个域名,IP地址,范围或CIDR。 您可以使用#字符在行上注释。
5.一个脚本,用于填充给定域列表的一组未阻止IP地址(unblock_ipset.sh)
创建脚本
/opt/bin/unblock_ipset.sh :
mcedit /opt/bin/unblock_ipset.sh
粘贴(Shift +插入)内容:
赋予执行权:
chmod +x /opt/bin/unblock_ipset.sh
该脚本非常简单,这就是其工作的本质。。。我们正在等待google.com域解析正常工作(如果未完成,则路由器启动时将无法填充很多解除阻止的状态,因为路由器仍处于初始化过程中)。 我们阅读了unblock.txt文件中的行。 读取行会自动删除开头和结尾的空格和制表符。 跳过空行。 跳过以#字符开头的行。 我们正在寻找CIDR。 如果找到CIDR,则将其添加为取消阻止。 我们正在寻找字符串中的范围。 如果找到,则将其添加为取消阻止。 我们正在寻找字符串中的IP地址。 如果找到IP,则将其添加为取消阻止。 让我们通过挖掘来解决一条线。 结果的所有IP地址都将添加为取消阻止。
6.一个脚本,用于从给定的域列表中生成其他dnsmasq配置文件(unblock_dnsmasq.sh)
创建脚本
/opt/bin/unblock_dnsmasq.sh :
mcedit /opt/bin/unblock_dnsmasq.sh
粘贴(Shift +插入)内容:
赋予执行权:
chmod +x /opt/bin/unblock_dnsmasq.sh
该脚本非常简单,这就是其工作的本质。...我们依次从/opt/etc/unblock.txt中读取各行。 读取行会自动删除开头和结尾的空格和制表符。 跳过空行。 跳过以#开头的行。 我们跳过包含IP地址(IP,范围,CIDR)的行,即 我们只对带有域名的字符串感兴趣。 在文件/opt/etc/unblock.dnsmasq中,添加“ ipset = / domain_name / unblock”形式的行。 这意味着在确定特定域的IP地址之后,它们将被自动添加到解锁集。
确保运行脚本以生成unblock.dnsmasq文件:
unblock_dnsmasq.sh
验证是否创建了unblock.dnsmasq文件:
cat /opt/etc/unblock.dnsmasq
7.编辑域列表后手动强制更新系统的脚本(unblock_update.sh)
创建脚本
/opt/bin/unblock_update.sh :
mcedit /opt/bin/unblock_update.sh
粘贴(Shift +插入)内容:
赋予执行权:
chmod +x /opt/bin/unblock_update.sh
8.启动路由器时自动填充一组解锁的脚本(S99unblock)
创建脚本
/opt/etc/init.d/S99unblock :
mcedit /opt/etc/init.d/S99unblock
粘贴(Shift +插入)内容:
赋予执行权:
chmod +x /opt/etc/init.d/S99unblock
9.将目标数据包从取消阻止转发到Tor(post_iptables_script.sh)
在编辑器中打开文件
/etc/storage/post_iptables_script.sh :
mcedit /etc/storage/post_iptables_script.sh
在末尾添加:
iptables -t nat -A PREROUTING -i br0 -p tcp -m set --match-set unblock dst -j REDIRECT --to-port 9141

如果需要,您可以通过路由器的网络界面-“高级”>“个性化”>“脚本”>“重启防火墙规则后运行”来编辑post_iptables_script.sh文件。 编辑后,单击“应用”。

您可以添加(这是可选的)到同一文件,以将对外部端口53的所有请求重定向到您自己。 这是必需的,以便本地网络上的客户端不使用第三方DNS服务。 请求将通过常规DNS服务器。
iptables -t nat -I PREROUTING -i br0 -p udp --dport 53 -j DNAT --to 192.168.0.1 iptables -t nat -I PREROUTING -i br0 -p tcp --dport 53 -j DNAT --to 192.168.0.1
如有必要,将
192.168.0.1替换为路由器(LAN)的内部地址。
10.将其他配置文件连接到dnsmasq
我们需要将创建的unblock.dnsmasq文件连接到dnsmasq。 为此,请在编辑器中打开文件
/etc/storage/dnsmasq/dnsmasq.conf :
mcedit /etc/storage/dnsmasq/dnsmasq.conf
在末尾添加:
conf-file=/opt/etc/unblock.dnsmasq
如果需要(这是可选的),可以添加其他服务器以提高分辨率和可靠性:
server=8.8.8.8
如果需要,您可以通过路由器的网络界面-“高级”>“局域网”>“ DHCP服务器”>“用户配置文件dnsmasq.conf”来编辑dnsmasq.conf文件。 编辑后,单击“应用”。

11.向cron添加任务以定期更新取消阻止集的内容
万一程序/设备使用其自己的解析方法并且域IP地址已更改,这是额外的保险。 您所需要做的就是以所需的频率运行unblock_ipset.sh脚本。 例如,我们每天早上6点启动。
在cron配置文件中用admin替换根名称:
sed -i 's/root/admin/g' /opt/etc/crontab
在编辑器中打开文件
/ opt / etc / crontab :
mcedit /opt/etc/crontab
在末尾添加:
00 06 * * * admin /opt/bin/unblock_ipset.sh
如果愿意,可以注释掉所有其他模板任务。 这是您的crontab文件的外观:

12.重新启动路由器
运行命令:
reboot
重新启动后,在浏览器中打开check.torproject.org网站(应将其添加到unblock.txt)。 如果您正确地完成了所有操作,则将看到“祝贺您。 该浏览器配置为使用Tor。

使用Keenetic OS配置路由器
您必须已经配置了Entware Package Manager(OPKG)的Keenetic / Zyxel路由器。 例如,这是一些支持Entware的路由器的列表:Keenetic II,Keenetic III,Extra,Extra II,Giga II,Giga III,Omni,Omni II,Viva,Ultra,Ultra II,Omni(KN-1410),Extra(KN -1710),Giga(KN-1010),Ultra(KN-1810),Viva(KN-1910),DSL(KN-2010),Duo(KN-2110)。 可以在
此处找到配置Entware的说明(最多10分)。
如果以前(固件版本低于2.07)已经添加了Entware支持,则请确保您
使用的是过时的Entware-ng 。
确保启用“ Netfilter子系统内核模块”-“常规设置”>“更改组件集”。 如果不在可用列表中,请尝试首先安装IPv6协议组件。 如果之后没有出现,请尝试不使用它,但是很有可能您将无法通过范围和CIDR进行解锁(因为将不支持哈希:网络集)。

为了进行测试,我使用了Keenetic Ultra(KN-1810)和最新固件-2.14.C.0.0-4。
重要说明。 您将不得不禁用系统中的常规DNS服务器,我们将改用dnsmasq。 您将失去为客户端单独分配DNS服务(Yandex.DNS / SkyDNS / AdGuard DNS)的能力,但是如果需要,可以通过dnsmasq设置在全局范围内使用它们。1.在路由器上安装必要的软件
opkg update opkg install mc tor tor-geoip bind-dig cron dnsmasq-full ipset iptables
mc-午夜指挥官文件管理器。 仅由于方便的mcedit编辑器,才需要它。 如果您习惯于使用其他文本编辑器,则无法安装mc。
tor -Tor服务。
tor-geoip -Tor的geo-IP数据库。
bind-dig -DNS客户端(nslookup和主机的类似物)。
cron-任务计划程序。
dnsmasq-full -DNS服务器。
ipset和iptables是
ipset和iptables控制台实用程序(它们可能已经在系统上,并且不需要,为安全起见,我添加了它们)。
2.初始化ipset,创建多个解锁IP地址(100-ipset.sh)
检查您的路由器系统是否支持大量的hash:net(事实证明,并非所有Keenetic路由器都具有):
ipset create test hash:net
如果团队未给出任何错误或消息,则表示有支持,请按照说明进行操作。 否则,以下脚本中存在错误(错误),您需要将
hash:net替换为
hash:ip 。 在这种情况下,您将失去解锁范围和CIDR的能力。
路由器启动时,创建一个空的地址集,称为
unblock 。 为此,请创建文件
/opt/etc/ndm/fs.d/100-ipset.sh :
mcedit /opt/etc/ndm/fs.d/100-ipset.sh
粘贴(Shift +插入)内容:
要从缓冲区粘贴,请使用Shift +插入,保存-F2,退出-F10。
赋予执行权:
chmod +x /opt/etc/ndm/fs.d/100-ipset.sh
3. Tor设置
删除Tor配置文件的内容:
cat /dev/null > /opt/etc/tor/torrc
打开Tor配置文件:
mcedit /opt/etc/tor/torrc
粘贴(Shift +插入)内容:
User root PidFile /opt/var/run/tor.pid ExcludeExitNodes {RU},{UA},{AM},{KG},{BY} StrictNodes 1 TransPort 192.168.0.1:9141 ExitRelay 0 ExitPolicy reject *:* ExitPolicy reject6 *:* GeoIPFile /opt/share/tor/geoip GeoIPv6File /opt/share/tor/geoip6 DataDirectory /opt/var/lib/tor
如有必要,将
192.168.0.1替换为路由器(LAN)的内部地址。 简要配置说明:
- 不包括输出节点:俄罗斯,乌克兰,亚美尼亚吉尔吉斯斯坦,白俄罗斯。
- 将透明代理挂到地址192.168.0.1,端口9141。
- 拒绝成为出口点。
4.绕过锁定的域列表(不仅是)(unblock.txt)
unblock.txt是一个简单的列表,可供解锁。 您可以解锁域,IP地址,范围或CIDR。 一行-一个元素。 空行(包括空格和制表符)将被忽略。 您可以在行的开头使用#字符来忽略它。
创建文件
/opt/etc/unblock.txt :
mcedit /opt/etc/unblock.txt
每行可以包含一个域名,IP地址,范围或CIDR。 您可以使用#字符在行上注释。
5.一个脚本,用于填充给定域列表的一组未阻止IP地址(unblock_ipset.sh)
创建脚本
/opt/bin/unblock_ipset.sh :
mcedit /opt/bin/unblock_ipset.sh
粘贴(Shift +插入)内容:
赋予执行权:
chmod +x /opt/bin/unblock_ipset.sh
该脚本非常简单,这就是其工作的本质。。。我们正在等待google.com域解析正常工作(如果未完成,则路由器启动时将无法填充很多解除阻止的状态,因为路由器仍处于初始化过程中)。 我们阅读了unblock.txt文件中的行。 读取行会自动删除开头和结尾的空格和制表符。 跳过空行。 跳过以#字符开头的行。 我们正在寻找CIDR。 如果找到CIDR,则将其添加为取消阻止。 我们正在寻找字符串中的范围。 如果找到,则将其添加为取消阻止。 我们正在寻找字符串中的IP地址。 如果找到IP,则将其添加为取消阻止。 让我们通过挖掘来解决一条线。 结果的所有IP地址都将添加为取消阻止。
6.一个脚本,用于从给定的域列表中生成其他dnsmasq配置文件(unblock_dnsmasq.sh)
创建脚本
/opt/bin/unblock_dnsmasq.sh :
mcedit /opt/bin/unblock_dnsmasq.sh
粘贴(Shift +插入)内容:
赋予执行权:
chmod +x /opt/bin/unblock_dnsmasq.sh
该脚本非常简单。 我们依次从/opt/etc/unblock.txt中读取行。 读取行会自动删除开头和结尾的空格和制表符。 跳过空行。 跳过以#开头的行。 跳过包含IP地址(IP或CIDR)的行,即 我们只对带有域名的字符串感兴趣。 在文件/opt/etc/unblock.dnsmasq中,添加“ ipset = / domain_name / unblock”形式的行。 这意味着在确定特定域的IP地址之后,它们将被自动添加到解锁集。
确保运行脚本以生成unblock.dnsmasq文件:
unblock_dnsmasq.sh
验证是否创建了unblock.dnsmasq文件:
cat /opt/etc/unblock.dnsmasq
7.编辑域列表后手动强制更新系统的脚本(unblock_update.sh)
创建脚本
/opt/bin/unblock_update.sh :
mcedit /opt/bin/unblock_update.sh
粘贴(Shift +插入)内容:
赋予执行权:
chmod +x /opt/bin/unblock_update.sh
8.启动路由器时自动填充一组解锁的脚本(S99unblock)
创建脚本
/opt/etc/init.d/S99unblock :
mcedit /opt/etc/init.d/S99unblock
粘贴(Shift +插入)内容:
赋予执行权:
chmod +x /opt/etc/init.d/S99unblock
9.将目标数据包从unblock转发到Tor(100-redirect.sh)
为此,请创建文件
/opt/etc/ndm/netfilter.d/100-redirect.sh :
mcedit /opt/etc/ndm/netfilter.d/100-redirect.sh
粘贴(Shift +插入)内容:
如果在步骤2中使用了hash:ip而不是hash:net,则将hash:net替换为hash:ip。实际上,我们还重复了从2个步骤创建一组解锁的功能。如果fs.d中的脚本尚未开始运行,并且netfilter.d脚本已在运行,则这对于安全性是必需的。没关系,如果早先已经创建了unblock,该命令将被忽略。您可以添加(这是可选的)到同一文件,以将对外部端口53的所有请求重定向到您自己。这是为了防止本地网络上的客户端使用第三方DNS服务。请求将通过常规DNS服务器。在最后一个出口之前,添加: if [ -z "$(iptables-save 2>/dev/null | grep "udp \-\-dport 53 \-j DNAT")" ]; then iptables -w -t nat -I PREROUTING -i br0 -p udp --dport 53 -j DNAT --to 192.168.0.1 fi if [ -z "$(iptables-save 2>/dev/null | grep "tcp \-\-dport 53 \-j DNAT")" ]; then iptables -w -t nat -I PREROUTING -i br0 -p tcp --dport 53 -j DNAT --to 192.168.0.1 fi
如有必要,将192.168.0.1替换为路由器(LAN)的内部地址。赋予执行权: chmod +x /opt/etc/ndm/netfilter.d/100-redirect.sh
10.配置dnsmasq并将附加的配置文件附加到dnsmasq
删除dnsmasq配置文件的内容: cat /dev/null > /opt/etc/dnsmasq.conf
打开dnsmasq配置文件: mcedit /opt/etc/dnsmasq.conf
粘贴(Shift +插入)内容: user=nobody bogus-priv no-negcache clear-on-reload bind-dynamic listen-address=192.168.0.1 listen-address=127.0.0.1 min-port=4096 cache-size=1536 expand-hosts log-async conf-file=/opt/etc/unblock.dnsmasq server=8.8.8.8
如有必要,将192.168.0.1替换为路由器(LAN)的内部地址。11.向cron添加任务以定期更新取消阻止集的内容
万一程序/设备使用其自己的解析方法并且域IP地址已更改,这是额外的保险。您所需要做的就是以所需的频率运行unblock_ipset.sh脚本。例如,我们每天早上6点启动。在编辑器中打开文件/ opt / etc / crontab: mcedit /opt/etc/crontab
在末尾添加: 00 06 * * * root /opt/bin/unblock_ipset.sh
如果愿意,可以注释掉所有其他模板任务。这是您的crontab文件的外观:
12.禁用常规DNS服务器并重新启动路由器
连接到Keenetic Router CLI(如果将“ SSH服务器”组件添加到系统,则端口23用于Telnet,端口22用于SSH)。运行命令: opkg dns-override system configuration save system reboot
固件内置的DNS服务器将关闭,而将使用Entware的dnsmasq代替。路由器在启动时检查是否已安装opt文件夹(是否有USB闪存驱动器/带有Entware的驱动器)。如果存在,则不使用常规DNS服务器。如果没有,请使用。即
卸下闪存驱动器并重新启动路由器,一切将像以前一样(设置之前)为您工作。重新启动后,在浏览器中打开check.torproject.org网站(应将其添加到unblock.txt)。如果您正确地完成了所有操作,则将看到“祝贺您。该浏览器配置为使用Tor。
配置后诊断错误的基本方法
如果通过站点check.torproject.org的检查(应将其添加到unblock.txt)通过了,但是提供商的存根继续打开了其他资源(或没有打开),则提供商很可能会干扰DNS流量,替换答案-您您需要执行其他绕过DNS查询过滤的操作。如果在配置后某些操作无法正常工作,请使用简单命令确定问题步骤。显示取消阻止集的内容: ipset list unblock
如果系统报告没有这样的设置,则错误是在步骤2中,或者您没有在系统中启用Netfilter模块(对于Keenetic)。如果结果为空,则unblock_ipset.sh脚本不起作用,而该脚本又应由S99unblock启动脚本启动。手动运行此unblock_ipset.sh脚本。如果设置已满,则错误将在步骤8进行。如果无法执行脚本(很有可能正在等待google.com解析),则错误可能在步骤10或6处在DNS服务器一侧。请检查iptables中的重定向: iptables-save 2>/dev/null | grep unblock
如果不存在,则错误发生在步骤9。如果所有站点都无法正常工作,即 DNS无法正常工作,错误可能在第6或第10阶段出现。如果在第9阶段,则错误。如果unblock.txt中的所有站点均不工作(超过超时),但其他所有站点都工作,则问题出在Tor端,错误在阶段3额外绕过提供商过滤DNS查询的方法
如果提供商通过替换对阻塞资源的响应来干扰DNS流量,则很容易解决。为此,我们将使用dnscrypt-proxy。如果您希望并有经验,可以轻松地用stubby(基于TLS的DNS)替换dnscrypt。dnscrypt仅用于unblock.txt中列出的域。所有其他查询将通过常规DNS服务器。如果您确定您的提供者不会过滤DNS查询,则您不需要执行此其他配置。您应该已经配置了上述锁的旁路。Padavan和Keenetic OS的以下设置相同。在路由器上安装其他软件: opkg update opkg install dnscrypt-proxy2
打开dnscrypt-proxy配置文件: mcedit /opt/etc/dnscrypt-proxy.toml
找到listen_addresses,fallback_resolver,缓存参数并进行更改: listen_addresses = ['127.0.0.1:9153'] fallback_resolver = '77.88.8.8:1253' cache = false
77.88.8.8:1253是具有非标准端口的Yandex DNS服务器地址。如果dnscrypt-proxy有任何问题,它是一个备份。运行dnscrypt-proxy: /opt/etc/init.d/S09dnscrypt-proxy2 start
确保dnscrypt-proxy正常工作(您应该在响应中看到IP地址列表): dig +short google.com @localhost -p 9153
在编辑器中打开脚本/opt/bin/unblock_ipset.sh: mcedit /opt/bin/unblock_ipset.sh
将内容替换为:
我们做了一个小的更改-现在解析不使用常规的DNS服务器,而是使用端口9153的dnscrypt-proxy。在编辑器中打开/opt/bin/unblock_dnsmasq.sh脚本: mcedit /opt/bin/unblock_dnsmasq.sh
将内容替换为:
我们做了一个小的更改-现在在生成unblock.dnsmasq文件时,添加了其他行,例如“ server = / domain_name / 127.0.0.1#9153”。这意味着从列表中解析域将通过dnscrypt-proxy进行。运行unblock_update.sh: unblock_update.sh
做完了
所有复杂的设置都在后面。现在,仅在必要时编辑unblock.txt列表,添加或删除要解锁的域或IP地址,然后激活使用unblock_update.sh命令进行的更改。更新04/01/2019。通常在文章上会出现一些带有典型问题的个人信息。我将在这里回答最常见的问题。如何提供.onion域区域网站?在torc中添加: VirtualAddrNetwork 10.254.0.0/16 DNSPort 127.0.0.1:9053 AutomapHostsOnResolve 1
要访问洋葱区域的所有域,请添加到dnsmasq.conf: server=/onion/127.0.0.1
如果您不想打开对洋葱区域的所有域的访问权,而只希望对某些域的访问权,请在dnsmasq.conf中添加以下条目: server=/rutorc6mqdinc4cz.onion/127.0.0.1
如何绕过路由器上运行的VPN服务器的客户端的锁?在torrc中,将行替换为TransPort: TransPort 0.0.0.0:9141
添加具有必要接口(INTERFACE-VPN网络接口)的其他重定向: iptables -t nat -A PREROUTING -i -p tcp -m set --match-set unblock dst -j REDIRECT --to-port 9141