一起来歇斯底里(hysteria)吧!

实用教程 admin 来源:原文链接 2年前 (2022-05-08) 4141次浏览 0个评论

没疯,真没疯。

Hysteria 是一个功能丰富的,专为恶劣网络环境进行优化的网络工具(双边加速),比如卫星网络、拥挤的公共 Wi-Fi、在中国连接国外服务器等。

?在我等人看来,这看起来是很适合做梯子的。

测了一下,速度确实非常棒

使用 shadowsocks/trojan 的速度

使用 hysteria

速度足足提升了 10 倍,跑满了本地带宽

配置起来很简单?就以自签名证书为例了

配置服务端

自签名证书

  1. 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

  1. {
  2. “listen”: “:443”,
  3. “cert”: “/etc/hysteria/certificate.pem”,
  4. “key”: “/etc/hysteria/key.pem”,
  5. “up_mbps”: 300,
  6. “down_mbps”: 300,
  7. “obfs”: “dankdhsawj”
  8. }

可选的 obfs 选项使用提供的密码对协议进行混淆,这样协议就不容易被检测出是 Hysteria/QUIC,可以用来绕过针对性的 DPI 屏蔽或者 QoS。 如果服务端和客户端的密码不匹配就不能建立连接,因此这也可以作为一个简单的密码验证。

up_mbps 和 down_mbps用来限制每个客户端最大下载速度和上传速度,可选

运行

  1. hysteria server

即可。使用-config参数指定配置文件路径

  1. hysteria config /etc/hysteria/config.json server

客户端

iOS

iOS 可以使用 shadowrocket,混淆字段写 obfs 的值,密码留空,允许不安全勾选

shadowrocket 测速会显示超市,延迟测试方法改成 CONNECT 就好了,可能是个 bug

Linux

  1. {
  2. “server”: “1.1.1.1:443”,
  3. “obfs”: “1231”,
  4. “up_mbps”: 300,
  5. “down_mbps”: 300,
  6. “socks5”: {
  7. “listen”: “127.0.0.1:1080”
  8. },
  9. “insecure”: true
  10. }

然后直接运行hysteria就可以,之后可以用 proxychains 之类的工具了。如有需要也可以添加 http 字段

  1. “http”: {
  2.  
  3. “listen”: “127.0.0.1:8080”
  4.  
  5. }

systemd 自动启动

/lib/systemd/system/hysteria.service

如果是 systemd 的话,写个单元文件

  1. [Unit]
  2. Description=Hysteria
  3. After=network.target networkonline.target nsslookup.target
  4.  
  5. [Service]
  6. Restart=onfailure
  7. Type=simple
  8. ExecStart=/usr/sbin/hysteria config /etc/hysteria/config.json server
  9.  
  10. [Install]
  11. WantedBy=multiuser.target
  12.  
  1. systemctl daemonreload # 重新加载
  2. systemctl enable hysteria # 开机自启
  3. systemctl start hysteria # 启动

?专属配置

这个小鸡,是从 sentris 那里弄来的,这么多年没想到竟然没倒闭没跑路。

由于小鸡配置堪忧,我想办法给搞成了 Alpine,毕竟 Alpine 是出了名的小,省内存也是必然的。

因为是 Alpine 所以自然也就是 OpenRC 了。

hysteria 额外配置

由于小鸡内存少,必须额外配置下,要不然总是被 OOM Kill

  1. “recv_window_conn”: 2097152,
  2. “recv_window_client”: 8388608,

这样会减少 OOM 的可能性

OpenRC 启动项

如果是 OpenRC……/etc/init.d/hysteria

  1. #!/sbin/openrc-run
  2.  
  3. name=“hysteria”
  4. command=“/usr/sbin/hysteria”
  5. command_args=“-config /etc/hysteria/config.json server”
  6. command_background=“yes”
  7. pidfile=“/run/hysteria.pid”
  8.  
  9. depend() {
  10. after sshd
  11. }

然后

  1. chmod +x /etc/init.d/hysteria
  2. rcupdate add hysteria # 开机自启动
  3. rcservice hysteria start # 启动

非常不幸的是,如果进程挂掉了,OpenRC 是没什么办法给拉起来的。可以办法是用 supervisor,可以使用 Go 版本的 https://github.com/ochinchina/supervisord

然而这个内存占用有点可怕,毕竟我整个只有 64M 的内存啊,这一个用了 22.5%,14M 了。

那就只能魔改 crontab,10 秒一次,最多 20 秒拉起(

  1. # 创建一个shell脚本 /usr/bin/restart
  2.  
  3. #!/bin/sh
  4. echo Restarting
  5.  
  6. for svc in $(rcstatus crashed); do
  7. rcservice $svc nodeps restart
  8. done
  9. # 加x权限
  10. chmod+x /usr/bin/restart
  11.  
  12. # crontab中
  13. * * * * * for i in {1..6}; do /usr/bin/restart & sleep 10; done

?感觉还行(((


VPS小白 , 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:一起来歇斯底里(hysteria)吧!
喜欢 (1)
发表我的评论
取消评论
表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址