简记用UDP 53端口绕过某种校园验证连接 Internet
众所周知某大专的 wifi 在 24 点是会准时断线的。
前置准备
一台 VPS / 有公网 IP(IPv6 也是可以的)的服务器。目前国内云服务商(比如腾讯云)一般对 53 端口上的 UDP 协议做了限制,我没有很好的解决办法。问就是不用。
网速取决于你的服务器线路与带宽。
以全新安装的 ubuntu 20.04 版本为例。
解除 ubuntu 20.04 上 53 端口的占用
如果没有特殊情况的话一般都是 systemd-resolved 占用了 53 端口。你可以用ss -tulpn | grep 53
来查看是什么应用占用了 53 端口。如果是 systemd-resolved 则使用以下方式解决。
按顺序执行以下命令。以下命令省略了 sudo,有需要就加上,或者直接 root 运行。
systemctl stop systemd-resolved
nano /etc/systemd/resolved.conf
对文件进行如下修改:
[Resolve]
DNS=8.8.8.8 #Google DNS,删掉井号以取消注释
#FallbackDNS=
#Domains=
#LLMNR=no
#MulticastDNS=no
#DNSSEC=no
#Cache=yes
DNSStubListener=no #yes 改为 no,同上
Ctrl+O 回车保存,Ctrl+X 退出。
最后运行:
ln -sf /run/systemd/resolve/resolv.conf /etc/resolv.conf
安装 Wireguard 服务
脚本项目地址:https://github.com/Nyr/wireguard-install
使用以下命令在 root 账号下安装 Wireguard 服务:
wget https://git.io/wireguard -O wireguard-install.sh && bash wireguard-install.sh
接下来会让你按顺序进行配置。
第一个 Port 输入 53——我们需要在 53 端口上运行 Wireguard 服务,否则无法达到绕过某种验证的效果。
第二个 Name 是让你对客户端的配置取个名字——因为每一个客户端(手机、电脑等)都需要一个单独的配置,多个客户端连接一个配置会使 Wireguard 无法正常工作。如果你是先想让电脑连接 Wireguard 那就取个名字叫 MYPC 之类的就行了。
第三个选 DNS,一般 Google 就行了,输入 2 即可。
按回车确认继续。
等待一段时间后,接下来会显示一个二维码并告诉你客户端配置文件的位置(一般存储在/root/XXXX.conf
)中,用 nano 编辑器打开查看即可,二维码和文件中都包含了客户端的完整配置,直接放在客户端上使用即可。
如果需要增加客户端配置(比如你想手机、电脑同时用),那就再次运行一遍脚本,就可以添加配置 / 删除配置 / 卸载 WG 等。此处不展开。
客户端配置
前往 Wireguard 官网安装客户端:https://www.wireguard.com/install/
注意在客户端导入配置文件之后你可能需要更改目标服务器地址到可以访问服务器的公网 IP 或域名。
Windows
选左下角新建隧道的更多选项,选择新建空隧道。
名称随便取,下方配置文件全部拷贝自上面的/root/XXXX.conf
全部内容或二维码内容。
保存连接即可。
iOS
去外区商店的 App Store 安装 Wireguard 客户端。接下来很简单,扫码导入配置文件,然后打开连接即可。
Android
我没有,但应该跟 iOS 差不多吧。
替选方案
原理简单来说就是因为一些原因某种验证不会拦截甚至不会检查从 53 端口过的 UDP 包。域名解析服务一般在这个端口上运行。
这启发我们只需要用在 53 端口上 UDP 方式的代理协议走中转服务器就可以绕过验证了。
当下一些可行的方案包括但不限于使用 ray 系列的 mKCP 或 QUIC 方式的底层传输。值得注意的是这些底层传输方式搭配入站协议在一定情况下性能和可用性都会存在差异。个人尝试过后似乎比较稳定的搭配方式是 mkcp+tls+vmess / quic+vless(sing-box) / hy2(sing-box)。根据各自的网络情况也可以尝试调整配置与协议搭配。详见 ray 系列文档。
WG 方式连接海外服务器易被识别,建议不上主力机。
如果 53 端口在特定的情况下不起作用(比如 IPv6 下的 53 端口),你可以使用各种方式自行测试在没有经过校园网验证的情况下,哪些端口的 UDP 不会被拦截(例如 dhcp 或 dhcpv6 协议所使用的端口),并以此端口作为替代进行代理。这个结果因不同环境可能会产生差异,因此需要每个人进行自行测试。如果存在这样的端口的话,当然是更建议去使用非 53 端口,因为 53 端口的配置过程会更加麻烦,其它端口在大多数情况下能省很多事情。
感谢 / 引用 / 扩展阅读
感谢我的某位朋友告诉了我的确有这么一回事,以及提供了许许多多的相关灵感。
Linux systemd-resolve 占用 53 端口的解决方法 - CSDN
校园网白嫖思路分享:局域网中转 - 不花钱、不认证、高速上网 - Kenvix
本文链接:https://pst.iorinn.moe/archives/bypass-the-dog.html
许可: https://pst.iorinn.moe/license.html若无特别说明,博客内的文章默认将采用 CC BY 4.0 许可协议 进行许可☆
考虑TUIC/Hysteria吧,WG慢啊
其实就我所处校园网的环境来说,WG一点不慢,甚至比XT什么还要快一些(以Vul JP服务器为例)
所以我虽然有意向整 Hysteria,但WG对我来说已经很够用了,主要是方便配置
如果面向的是国内服务器可能会有所不同吧
有什么相关教程吗