登录
  • 人们都希望被别人需要 却往往事与愿违
  • 假如程序代码和注释不一致, 那么很可能两者都是错的!@Norm Schryer

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

翻墙 Benny小土豆 8740次浏览 2351字 3个评论
文章目录[显示]

没疯,真没疯。

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

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

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

使用shadowsocks/trojan的速度

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

使用hysteria

一起来歇斯底里(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是出了名的小,省内存也是必然的。

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

因为是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了。

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

那就只能魔改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

😂感觉还行(((

 


文章版权归原作者所有丨本站默认采用CC-BY-NC-SA 4.0协议进行授权|
转载必须包含本声明,并以超链接形式注明原作者和本文原始地址:
https://dmesg.app/hysteria.html
喜欢 (54)
分享:-)
关于作者:
If you have any further questions, feel free to contact me in English or Chinese.
发表我的评论(代码和日志请使用Pastebin或Gist)
取消评论

                     

去你妹的实名制!

  • 昵称 (必填)
  • 邮箱 (必填,不要邮件提醒可以随便写)
  • 网址 (选填)
(3)个小伙伴在吐槽
  1. 可以弄一个服务器一键安装脚本吗?
    jack2022-01-29 09:27 回复
    • github官方主页上有安装脚本
      瀚琳苑2022-04-22 17:38 回复
  2. 🤣🤣🤣🤣都工作了还用openvz的
    4042022-01-05 16:55 回复