前几天发现了通过53端口实现免认证热点上网的方式,在你清不堪的校园网里一试,果然没有防备,于是美滋滋的搭建了一个代理,以后可以免费上网了~
如标题所写,此处是“白嫖校园网基础设施”,实现免登录上网、无限流量上网,但是并不能白嫖校园网,即无法获得教育网的IP地址。同样,公网的服务器也需要购买。
其实道理挺简单的,网关(交换机)都默认放行 DHCP 和 DNS 报文,也就是 UDP53 与 UDP67/68。有些网关(你清网关)甚至不会对报文进行检查,这也就意味着任何形式的数据包都可以顺畅通过。
所以方法就很简单了,随便找个UDP协议的软件,监听53端口就行。可以用原文里提到的SoftEther VPN,但是都3202年了,meet the WireGuard.
搭建WireGuard
其实挺简单的,安装服务端和客户端,写一份配置文件,然后wg-quick up wg0
即可。为了支持IPv6我还鼓捣了一会儿,这里提供一下我的配置文件:
1 2 3 4 5 6 7 8 9 10 11
| [Interface] Address = ***/24, ***/64 # 内网IP地址 PostUp = iptables -A FORWARD -i %i -j ACCEPT; iptables -t nat -A POSTROUTING -o <eth0> -j MASQUERADE; ip6tables -A FORWARD -i %i -j ACCEPT; ip6tables -t nat -A POSTROUTING -o <eth0> -j MASQUERADE PostDown = iptables -D FORWARD -i %i -j ACCEPT; iptables -t nat -D POSTROUTING -o <eth0> -j MASQUERADE; ip6tables -D FORWARD -i %i -j ACCEPT; ip6tables -t nat -D POSTROUTING -o <eth0> -j MASQUERADE # 其中 <eth0> 请替换成可连接互联网的网卡名称 ListenPort = 53 PrivateKey = ***
[Peer] PublicKey = *** AllowedIPs = ***/32, ***/128 PersistentKeepalive = 25
|
客户端:
1 2 3 4 5 6 7 8 9 10
| [Interface] PrivateKey = *** Address = ***/24, ***/64 # 和上面一致 DNS = 8.8.8.8, 2001:4860:4860::8888
[Peer] PublicKey = *** AllowedIPs = 0.0.0.0/0, ::/0 Endpoint = ***:53 PersistentKeepalive = 25
|
注意其中用到了两对Key。这样生成:
1
| wg genkey | tee privatekey | wg pubkey > publickey
|
解除53端口占用
Ubuntu默认启动的systemd-resolve
会占用53端口。关闭的方法在这里。
注意事项
Wireguard的多用户需要注意,不能简单地把IP改成IP段,然后共用一对Key。我这里设备数量少所以手动添加了3个用户。有更好的方法。