准备工作:自行搭建好一个hysteria2翻墙节点服务端,为讲解方便这里以一键脚本(wget -N --no-check-certificate https://raw.githubusercontent.com/Misaka-blog/hysteria-install/main/hy2/hysteria.sh && bash hysteria.sh)安装为例讲解。安装选项使用端口跳跃(主服务端口假设为8888,端口跳跃范围从12345到54321),认证密码假设为S1Jq9Dspf8vK5O5e,证书使用必应www.bing.com自签证书,vps的ip假设为11.22.33.44。安装完成后,脚本会给出两种格式的客户端配置,一个是json格式,一个是yaml格式。
1.开启安装了大鹅的Debian虚拟机并使用xshell之类的工具登录。
2.如果你的大鹅已经配置了ws+tls节点,也就是已经具有翻墙能力了,或者网关本身就能科学上网,那么直接使用官方一键脚本(bash <(curl -fsSL https://get.hy2.sh/))安装hysteria2客户端(一键脚本获取地址:https://v2.hysteria.network/zh/docs/getting-started/Installation/)。
3.如果你的网关不能翻墙,而且大鹅本身也并未配置ws+tls节点或Reality节点不能翻墙。那么请参考前面介绍的“网关不能翻墙情况下安装大鹅”方案三在debian中安装hysteria2客户端。
安装成功后有如下提示:
Installing hysteria executable ... ok
Install /etc/hysteria/config.yaml ... ok
Creating user hysteria ... ok
Install /etc/systemd/system/hysteria-server.service ... ok
Install /etc/systemd/system/hysteria-server@.service ... ok
Congratulation! Hysteria 2 has been successfully installed on your server.
What's next?
+ Take a look at the differences between Hysteria 2 and Hysteria 1 at https://hysteria.network/docs/misc/2-vs-1/
+ Check out the quick server config guide at https://hysteria.network/docs/getting-started/Server/
+ Edit server config file at /etc/hysteria/config.yaml
+ Start your hysteria server with systemctl start hysteria-server.service
+ Configure hysteria start on system boot with systemctl enable hysteria-server.service
从安装成功后提示的英文内容,可以知道hysteria2服务配置文件的完整路径是/etc/systemd/system/hysteria-server.service
4.使用 nano /etc/systemd/system/hysteria-server.service打开hysteria2服务配置文件,将
ExecStart=/usr/local/bin/hysteria server --config /etc/hysteria/config.yaml
修改为(就是将server这个单词修改为client)
ExecStart=/usr/local/bin/hysteria client --config /etc/hysteria/config.yaml
然后保存退出。这样,在大鹅虚拟机上的hysteria2将来就是以客户端方式运行了。
根据hysteria2服务配置文件内容,可以看到hysteria2运行的配置文件完整路径是/etc/hysteria/config.yaml
使用 nano /etc/hysteria/config.yaml建立并编辑配置文件,将搭建翻墙节点服务端完成后显示的yaml格式的客户端配置内容复制粘贴至编辑窗口,然后保存退出。
假设安装完成后所给的yaml格式配置如下:
server: 11.22.33.44:8888,12345-54321
auth: S1Jq9Dspf8vK5O5e
tls:
sni: www.bing.com
insecure: true
quic:
initStreamReceiveWindow: 16777216
maxStreamReceiveWindow: 16777216
initConnReceiveWindow: 33554432
maxConnReceiveWindow: 33554432
fastOpen: true
socks5:
listen: 127.0.0.1:5080
transport:
udp:
hopInterval: 30s
5.使用 nano /usr/local/etc/dae/config.dae 修改大鹅配置文件。这里为了叙述方便,就只讨论一种情况,就是假设你已经为大鹅配置了ws+tls代理和Reality代理,这时候再为大鹅增加hysteria代理。这里假设debian虚拟机网卡名称为ens33,如果不是请根据实际情况修改。
完整的配置内容如下(红色部分是针对
小白折腾大鹅dae笔记(13):大鹅dae搭配Reality节点做透明代理中配置的新增或修改内容,HYPROXY: 'socks5://localhost:5080' 使用的是hysteria对应的5080端口【前面的HYPROXY只是一个名称标记,你也可以换成你自己喜欢的名称,5080端口是步骤4中所使用的yaml格式配置中所设定的端口】,如需要复制粘贴拿去使用,请注意将文字 ws+tls节点信息 更改为自己所使用的真实链接信息):
global {
lan_interface: ens33
wan_interface: auto
log_level: info
auto_config_kernel_parameter: true
dial_mode: domain
allow_insecure: false
so_mark_from_dae: 1234
tls_implementation: utls
utls_imitate: chrome_auto
}
subscription {
}
node {
NODEPA: 'ws+tls节点信息'
REALPROXY: 'socks5://localhost:10808'
HYPROXY: 'socks5://localhost:5080'
}
group {
elden_proxy {
policy: fixed(2)
}
}
dns {
upstream {
googledns: 'tcp://dns.google.com:53'
alidns: 'udp://dns.alidns.com:53'
}
routing {
request {
qname(geosite:cn) -> alidns
fallback: googledns
}
response {
upstream(googledns) -> accept
fallback: accept
}
}
}
routing {
pname(NetworkManager) -> direct
dip(224.0.0.0/3, 'ff00::/8') -> direct
dip(geoip:private) -> direct
ip(geoip:cn) -> direct
domain(geosite:cn) -> direct
domain(geosite:category-ads) -> block
pname(xray) -> must_direct
pname(hysteria) -> must_direct
fallback: elden_proxy
}
如果你不是以上使用三种类型代理的情况,将配置做个变通的修改即可。
举个例子说:比如,你没有免费或收费域名,没有搭建ws+tls类型节点,在node那一节的花括号里只配置了REALPROXY: 'socks5://localhost:10808'这样一行用于使用reality节点,然后你再新增了一行HYPROXY: 'socks5://localhost:5080'用于使用hysteria节点,那么当你要让大鹅搭配hysteria做透明代理时,fix后面括号中的数字就要填写1,因为计算机里的序号是从0开始算的,代表第二个的序号就是1,如果你要让大鹅搭配Reality做透明代理,那么把fix后面括号中的数字改为0,然后重启大鹅服务(systemctl restart dae.service )即可。
如果你把HYPROXY: 'socks5://localhost:5080'这行配置放在REALPROXY: 'socks5://localhost:10808'这行的上一行了,那么你要让大鹅搭配hysteria做透明代理时,fix后面括号中的数字就要填写0,因为此时HYPROXY: 'socks5://localhost:5080'是列表的第一项,代表第一个的序号就是0。
6. 依次执行如下命令,将hysteria服务,dae服务重启,并验证
systemctl daemon-reload
因为修改了hysteria服务的配置内容,使用上一行命令刷新服务加载新的配置
systemctl restart hysteria-server.service
上面的命令用于重启hysteria服务
systemctl status hysteria-server.service
上面的命令用于查看hysteria服务是否正常运行(没有报错且有绿色的Active: active (running) )
systemctl restart dae.service
hysteria服务正常的话,使用上一行命令重启大鹅服务
systemctl status dae.service
使用上一行命令查看大鹅服务是否正常(没有报错且有绿色的Active: active (running) )
使用 curl www.google.com 验证能否成功翻墙 ,能翻墙的话,再使用 curl ip.sb 看看返回的ip是否是搭建hysteria翻墙节点所使用的vps的ip。如果一切都ok,那就没问题。最后可以使用命令systemctl enable hysteria-server.service将hysteria服务设置为开机启动。
7.补充内容
如果你想使用json格式的客户端配置。那么需要对以上步骤做出一些改动。
在步骤4中需要将下面内容
ExecStart=/usr/local/bin/hysteria server --config /etc/hysteria/config.yaml
修改为
ExecStart=/usr/local/bin/hysteria client --config /etc/hysteria/config.json
然后再使用使用 nano /etc/hysteria/config.json建立并编辑配置文件。配置文件内容为搭建翻墙节点服务端完成后显示的json格式的客户端配置内容。格式大致如下:
{
"server": "11.22.33.44:8888,12345-54321",
"auth": "K5O5eS1Jq98vDspf",
"tls": {
"sni": "www.bing.com",
"insecure": true
},
"quic": {
"initStreamReceiveWindow": 16777216,
"maxStreamReceiveWindow": 16777216,
"initConnReceiveWindow": 33554432,
"maxConnReceiveWindow": 33554432
},
"fastOpen": true,
"socks5": {
"listen": "127.0.0.1:5080"
},
"transport": {
"udp": {
"hopInterval": "30s"
}
}
}
保存退出后,记得要使用systemctl daemon-reload命令刷新服务以使新的配置生效,其他地方和使用yaml格式配置时的操作基本一致。