使用 WireGuard 协议绕校园网认证进行上网
以前中专捣鼓的小玩意,搞过几次但服务器过期了就不了了之了,毕竟买了校园网;现在来到了大专,终于又可以用上了,这次搞到了三年免费的 30 Mbps 带宽香港服务器,于是就好好记录一下操作。
使用 WireGuard 协议,简单地将上网流量通过 53 UDP 端口绕过校园网认证页面转发到自建服务器,再由自建服务器访问并结果返回给客户机。
本文章云服务使用的环境是 Ubuntu 22.04。
安装 WireGuard-Tools 前最好更新一下软件源。
sudo apt update
接下来,就是安装上面提到的工具了。
sudo apt install wireguard
开启流量转发,顾名思义。
echo "net.ipv4.ip_forward = 1" >> /etc/sysctl.conf
sysctl -p
记得关闭 Ubuntu 防火墙以及在服务商的安全组里开放 53 UDP 端口(如果有的话)。
生成节点密钥,文件名自定义,用于备忘罢了。 WireGuard 协议不分服务端和客户端,所以节点密钥对应着使用即可。
name=文件名 && wg genkey | tee $name'.prikey' | wg pubkey > $name'.pubkey'
在 /etc/wireguard/
目录中新建配置文件 wg0.conf
名字随意也罢。
每个连接到云服务器节点的机器只能使用未被使用的 IP 地址及对应节点公钥。
[Interface]
PrivateKey = 节点密钥
Address = 10.0.0.1/24
PostUp = iptables -A FORWARD -i wg0 -j ACCEPT; iptables -A FORWARD -o wg0 -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
PostDown = iptables -D FORWARD -i wg0 -j ACCEPT; iptables -D FORWARD -o wg0 -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE
ListenPort = 53
DNS = 8.8.8.8
MTU = 1420
[Peer]
PublicKey = 节点公钥
AllowedIPs = 10.0.0.2/32
[Peer]
PublicKey = 节点公钥
AllowedIPs = 10.0.0.3/32
[Peer]
PublicKey = 节点公钥
AllowedIPs = 10.0.0.4/32
...
启动服务端:
查看节点状态 wg
启动 wg-quick up wg0
关闭 wg-quick down wg0
开机自启 systemctl enable wg-quick@wg0
以上的操作都是在云服务器里完成的,启动完毕后即可在需要用的机器里连接到云服务器的节点即可。
以下是用于连接云服务器节点的配置:
[Interface]
PrivateKey = 对应上面节点的私钥
Address = 对应上面节点的 IP CIDR,示例:10.0.0.2/24
DNS = 8.8.8.8
MTU = 1420
[Peer]
PublicKey = 云服务器节点的公钥
AllowedIPs = 0.0.0.0/0
Endpoint = 云服务器公网 IP 加端口号
PersistentKeepalive = 25
可惜了,53 端口被封了,悲 :(