没疯,真没疯。
Hysteria 是一个功能丰富的,专为恶劣网络环境进行优化的网络工具(双边加速),比如卫星网络、拥挤的公共 Wi-Fi、在中国连接国外服务器等。
😂在我等人看来,这看起来是很适合做梯子的。
测了一下,速度确实非常棒
使用shadowsocks/trojan的速度
使用hysteria
速度足足提升了10倍,跑满了本地带宽
配置起来很简单😂就以自签名证书为例了
配置服务端
自签名证书
openssl req -newkey rsa:2048 -nodes -keyout key.pem -x509 -days 3650 -out certificate.pem
下载
去GitHub Release可以找到,我的是OpenVZ的🐤,下载了non-tun版本的。
https://github.com/HyNetwork/hysteria/releases
创建配置文件
config.json
{ "listen": ":443", "cert": "/etc/hysteria/certificate.pem", "key": "/etc/hysteria/key.pem", "up_mbps": 300, "down_mbps": 300, "obfs": "dankdhsawj" }
可选的 obfs 选项使用提供的密码对协议进行混淆,这样协议就不容易被检测出是 Hysteria/QUIC,可以用来绕过针对性的 DPI 屏蔽或者 QoS。 如果服务端和客户端的密码不匹配就不能建立连接,因此这也可以作为一个简单的密码验证。
up_mbps
和 down_mbps
用来限制每个客户端最大下载速度和上传速度,可选
运行
hysteria server
即可。使用-config
参数指定配置文件路径
hysteria -config /etc/hysteria/config.json server
客户端
iOS
iOS可以使用shadowrocket,混淆字段写obfs的值,密码留空,允许不安全勾选
shadowrocket测速会显示超市,延迟测试方法改成CONNECT就好了,可能是个bug
Linux
{ "server": "1.1.1.1:443", "obfs": "1231", "up_mbps": 300, "down_mbps": 300, "socks5": { "listen": "127.0.0.1:1080" }, "insecure": true }
然后直接运行hysteria
就可以,之后可以用proxychains之类的工具了。如有需要也可以添加http字段
"http": { "listen": "127.0.0.1:8080" }
systemd自动启动
/lib/systemd/system/hysteria.service
如果是systemd的话,写个单元文件
[Unit] Description=Hysteria After=network.target network-online.target nss-lookup.target [Service] Restart=on-failure Type=simple ExecStart=/usr/sbin/hysteria -config /etc/hysteria/config.json server [Install] WantedBy=multi-user.target
systemctl daemon-reload # 重新加载 systemctl enable hysteria # 开机自启 systemctl start hysteria # 启动
🐤专属配置
这个小鸡,是从sentris那里弄来的,这么多年没想到竟然没倒闭没跑路。
由于小鸡配置堪忧,我想办法给搞成了Alpine,毕竟Alpine是出了名的小,省内存也是必然的。
因为是Alpine所以自然也就是OpenRC了。
hysteria额外配置
由于小鸡内存少,必须额外配置下,要不然总是被OOM Kill
"recv_window_conn": 2097152, "recv_window_client": 8388608,
这样会减少OOM的可能性
OpenRC启动项
如果是OpenRC……/etc/init.d/hysteria
#!/sbin/openrc-run name="hysteria" command="/usr/sbin/hysteria" command_args="-config /etc/hysteria/config.json server" command_background="yes" pidfile="/run/hysteria.pid" depend() { after sshd }
然后
chmod +x /etc/init.d/hysteria rc-update add hysteria # 开机自启动 rc-service hysteria start # 启动
非常不幸的是,如果进程挂掉了,OpenRC是没什么办法给拉起来的。可以办法是用supervisor,可以使用Go版本的 https://github.com/ochinchina/supervisord
然而这个内存占用有点可怕,毕竟我整个只有64M的内存啊,这一个用了22.5%,14M了。
那就只能魔改crontab,10秒一次,最多20秒拉起(
# 创建一个shell脚本 /usr/bin/restart #!/bin/sh echo Restarting... for svc in $(rc-status --crashed); do rc-service $svc -- --nodeps restart done # 加x权限 chmod+x /usr/bin/restart # crontab中 * * * * * for i in {1..6}; do /usr/bin/restart & sleep 10; done
😂感觉还行(((