这篇文章仅用于研究和测试,请勿用于任何收费或违法项目,违者后果自负。
原理
在校园网未认证的情况下,通常不会封锁 DNS 查询(53 端口),因此可以通过在 53 端口运行 Hysteria 2
或基于 UDP 的 mKCP
来建立通信。此处以 Hysteria 2
为例进行说明。
这里仅使用Hysteria 2
举例
准备工作
所需条件
- 未认证的情况下,不封锁 53 端口的校园网
- 一台远程服务器(Linux 或 Windows 均可,本文以 Linux 为例)
- 支持
Hysteria 2
的客户端, 如:- Windows
- Android
验证53端口是否开放
在尚未认证的校园网下,打开 CMD 并执行:
1 | nslookup www.baidu.com 223.5.5.5 |
如果返回结果中服务器一栏显示为 unknown,说明 53 端口已被封锁,本文方法可能不适用。
搭建Hysteria 2
服务器
在远程服务器上安装Hysteria 2
可以参考官方文档
安装Hysteria 2
1 | bash <(curl -fsSL https://get.hy2.sh/) |
如果服务器在国内,可能会下载缓慢或无法下载,可先将 Hysteria 可执行文件上传到服务器,再运行:
1 scp <本地Hysteria可执行文件路径> <服务器用户名>@<服务器ip>:/path/to/hysteria-linux-amd64然后执行:
1 bash <(curl -fsSL https://get.hy2.sh/) --local /path/to/hysteria-linux-amd64
安装完成后,设置开机自启:
1 | sudo systemctl enable hysteria-server.service |
生成自签证书
1 | openssl req -x509 -nodes -newkey ec:<(openssl ecparam -name prime256v1) -keyout /etc/hysteria/server.key -out /etc/hysteria/server.crt -subj "/CN=bing.com" -days 36500 && sudo chown hysteria /etc/hysteria/server.key && sudo chown hysteria /etc/hysteria/server.crt |
编辑 config.yaml 配置文件并调整端口和密码
1 | sudo nano /etc/hysteria/config.yaml |
1 | listen: :53 #监听端口 |
启动 Hysteria 2
1 | sudo systemctl start hysteria-server.service |
检查运行状态
1 | sudo systemctl status hysteria-server.service |
当显示 active (running) 时,说明已成功运行;若出现错误,请检查证书、域名或防火墙(如 ufw)等配置。
同时,在云服务器管理页面中(如阿里云安全组、Azure 网络设置等)放行 53 端口。
连接到Hysteria 2
在客户端中
地址
为 服务器域名或ip
端口
为 53
密码
为 你所设置的密码
传输层安全(tls)
为 tls
SNI
为bing.com
跳过证书验证(可以的话,建议设置自签证书的pinSHA256或ca)
关闭分应用代理
并切换到全局规则。
使用方法
如果配置正确,连接代理后即可在尚未验证的校园网中正常上网。