这篇文章仅用于研究和测试,请勿用于任何收费或违法项目,违者后果自负。

原理

在校园网未认证的情况下,通常不会封锁 DNS 查询(53 端口),因此可以通过在 53 端口运行 Hysteria 2 或基于 UDP 的 mKCP 来建立通信。此处以 Hysteria 2 为例进行说明。

这里仅使用Hysteria 2举例

准备工作

所需条件

  • 未认证的情况下,不封锁 53 端口的校园网
  • 一台远程服务器(Linux 或 Windows 均可,本文以 Linux 为例)
  • 支持Hysteria 2的客户端, 如:

验证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
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
listen: :53 #监听端口
#使用CA证书
# acme:
# domains:
# - hy2.clashyun.com #你的域名,需要先解析到服务器ip
# email: [email protected]

使用自签证书
tls:
cert: /etc/hysteria/server.crt
key: /etc/hysteria/server.key

auth:
type: password
password: 123456 #设置认证密码

masquerade:
type: proxy
proxy:
url: https://bing.com #伪装网址
rewriteHost: true

启动 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

  • SNIbing.com

  • 跳过证书验证(可以的话,建议设置自签证书的pinSHA256或ca

关闭分应用代理并切换到全局规则。

使用方法

如果配置正确,连接代理后即可在尚未验证的校园网中正常上网。