Hysteria1
由于我目前用的openwrt中的Passwall只支持到Hysteria1,更新Passwall又会遇到内核和依赖等一堆问题,为了减少折腾,先搭建个Hysteria1玩一玩,等有空换了支持Hysteria2的Openwrt固件再尝试Hysteria.
首先参照Hysteria1的官方文档,看到支持docker安装,那二话不说果断选docker,详情见Docker | Hysteria
这次我选择在一台甲骨文云ARM服务器上使用docker-compose的方式安装,由于github和docker hub上的版本默认都是Hysteria2的,所以安装时要注意版本的选择。
1.创建安装目录并新建docker-compose.yaml文件,配置文件内容
version: '3.9'
services:
hysteria:
image: tobyxdd/hysteria:v1.3.5
container_name: hysteria
restart: always
network_mode: "host"
volumes:
- ./hysteria.json:/etc/hysteria.json
command: ["server", "--config", "/etc/hysteria.json"]
2.配置证书申请的文件
cat <<EOF > hysteria.json
{
"listen": ":36752",
"acme": {
"domains": [
"hy.daoker.cc"
],
"email": "jhjyes@163.com"
},
"obfs": "8ZuA2Zrtetr38ds45fdg7vMjD3267BwY",
"up_mbps": 100,
"down_mbps": 100
}
EOF
3.使用docker-compose up -d创建并启动容器
Hysteria2
由于Hysteria1的教程文档较少,大多数脚本已经更新到Hysteria2,使用起来挺麻烦,上面的Hysteria1最终没能成功运用,于是我部署了Hysteria2,并在PVE里安装了windows,在windows中使用V2rayN的局域网共享功能,使得Passwall通过V2rayN使用Hysteria2,原因是我暂时没找到好用的支持Hysteria2的Passwall的OpenWRT,因此只能采用曲线救国的方法,下面记录Hysteria2的搭建过程:
服务端配置
首先从上面的github中下载Hysteria2的服务端到服务器,我这里服务器是ARM的,所以下载ARM的;
curl -Lo hysteria https://github.com/apernet/hysteria/releases/latest/download/hysteria-linux-arm64 && chmod +x hysteria && mv -f hysteria /usr/local/bin/
然后就是域名证书的问题,我这里用x-ui的脚本申请了想使用的域名的证书,并记下了公钥和密钥存储路径;
创建并修改配置文件如下:
vim /root/hysteria_config.yaml
listen: :443(这里改成自己想用的端口)
tls:
cert: /root/cert/hy2.pornhug.top.cer(公钥路径)
key: /root/cert/hy2.pornhug.top.key(密钥路径)
auth:
type: password
password: chika(自定义的密码)
masquerade:
type: proxy
proxy:
url: https://www.lovelive-anime.jp(证书所对应的域名)
rewriteHost: true
acl:
inline:
- reject(all, udp/443)(这里的端口也记得修改)
验证是否搭建成功:curl –http3 https://hy2.pornhug.top -k
设置开机自启:
vim /etc/systemd/system/hysteria.service
[Unit]
After=network.target nss-lookup.target
[Service]
User=root
WorkingDirectory=/root
CapabilityBoundingSet=CAP_NET_ADMIN CAP_NET_BIND_SERVICE
AmbientCapabilities=CAP_NET_ADMIN CAP_NET_BIND_SERVICE
ExecStart=/usr/local/bin/hysteria server -c /root/hysteria_config.yaml --log-level debug
Restart=on-failure
RestartSec=10
LimitNPROC=512
LimitNOFILE=infinity
[Install]
WantedBy=multi-user.target
启动服务
systemctl daemon-reload
启动程序
systemctl enable --now hysteria
程序信息和常用命令:
项目 | 内容 |
程序 | /usr/local/bin/hysteria |
配置 | /root/hysteria_config.yaml |
重启 | systemctl restart hysteria |
状态 | systemctl status hysteria |
查看日志 | journalctl -u hysteria -o cat -e |
实时日志 | journalctl -u hysteria -o cat -f |
客户端配置
这里以windows端V2rayN为例,新建.yaml文件并输入以下内容,注意和服务端内容一一对应
server: 3.0.20.121:443
auth: chika
tls:
sni: hy2.pornhug.top #如果你是自签证书则改为bing.com
insecure: false #如果你是自签证书则改为insecure: true
fastOpen: true
#bandwith根据需求改,如果不写则默认bbr流控
bandwidth:
up: 30 mbps
down: 150 mbps
socks5:
listen: 127.0.0.1:50000
- 下载 Windows 客户端程序 hysteria-windows-amd64.exe(这个下载地址也是和第一步一样,可以去 realease 里面找),重命名为 hysteria.exe,复制到 v2rayN\bin\hysteria 文件夹。
- 修改客户端配置,修改 hy.pornhug.top 为证书中包含的域名,修改 3.0.20.121 为 VPS 的 IP。
- v2rayN:服务器 ——> 添加自定义配置服务器 ——> 浏览 ——> 选择客户端配置 ——> Core 类型 hysteria ——> Socks 端口 50000
最新教程参考波仔的Hysteria2节点搭建,抢占宽带,垃圾线路的救星!大幅提升稳定性!第二代歇斯底里Windows/iOS/安卓/MacOS/Openwrt全平台教程!。
你好,请教下如何在passwall的服务器端(模块)配置Hysteria2? 配置的时候要提供公钥和私钥,不知道如何生成,求教~。