简记用UDP 53端口绕过某种校园验证连接 Internet
众所周知某大专的 wifi 在 24 点是会准时断线的。
前置准备
一台 VPS / 有公网 IP 的服务器。目前国内云服务商(比如腾讯云)一般对 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
使用以下命令安装 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/
Windows
选左下角新建隧道的更多选项,选择新建空隧道。
名称随便取,下方配置文件全部拷贝自上面的/root/XXXX.conf
全部内容或二维码内容。
保存连接即可。
iOS
去外区商店的 App Store 安装 Wireguard 客户端。接下来很简单,扫码导入配置文件,然后打开连接即可。
Android
我没有,但应该跟 iOS 差不多吧。
替选方案
原理简单来说就是因为一些原因某种验证不会拦截甚至不会检查从 53 端口过的 UDP 包。域名解析服务一般在这个端口上运行。
这启发我们只需要用在 53 端口上 UDP 方式的代理协议走中转服务器就可以绕过验证了。
因此,除了 Wireguard,也可以用内个 ray 的 QUIC,或者内个内个 ray 的 mkcp,或者经典老活小飞机 -rust 套 kcptun,但总而言之从我这边测试的角度来看试来试去还是 WG 最为方便快捷,缺点就是不好分流,以及很容易被探测,因此建议该服务不上主力机。各位可以自己测试哪个方案更加适合自己。
感谢 / 引用 / 扩展阅读
感谢我的某位朋友告诉了我的确有这么一回事。
考虑TUIC/Hysteria吧,WG慢啊
其实就我所处校园网的环境来说,WG一点不慢,甚至比XT什么还要快一些(以Vul JP服务器为例)
所以我虽然有意向整 Hysteria,但WG对我来说已经很够用了,主要是方便配置
如果面向的是国内服务器可能会有所不同吧