Giter Site home page Giter Site logo

kfeimaro / hi_hysteria Goto Github PK

View Code? Open in Web Editor NEW

This project forked from emptysuns/hi_hysteria

0.0 0.0 0.0 51.81 MB

Hello World!非钟国优化线路使用不佳?不想中转?hysteria一键搞定。

Home Page: https://blog.imoeq.com/hi_hysteria/?swcfpc=1

License: GNU General Public License v3.0

Shell 69.47% Python 7.48% Batchfile 22.62% VBScript 0.43%

hi_hysteria's Introduction

Hi Hysteria

一·简介

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

Hysteria这是一款由go编写的非常优秀的“轻量”代理程序,它很好的解决了在搭建富强魔法服务器时最大的痛点——线路拉跨

在魔法咏唱时最难的不是搭建维护,而是在晚高峰时期的交付质量。当三大运营商晚高变成了:奠信、连不通、移不动时,你我都有感触。 虽然是走的udp但是因为加了混淆使暂时不会被运营商针对性的QoS。

1、原项目提供的bench:

image

2、50mbps北方电信,北京出口 直连落地vir San Jose机房163线路,22-23点测试YT 1080p60直播流:

image

190 dropped of 131329

3、无对钟国大陆线路优化,洛杉矶shockhosting机房,1c128m ovznat 4k@p60: image

139783 Kbps

该项目仅作学习用途,请查看的访客在5s之内立即删除并停止使用。

由它所引起的任何问题,作者并不承担风险和任何法律责任。

因为脚本现处于0.x的测试版本,可能会有一些bug,如果遇到请发issue,欢迎star,您的⭐是我维护的动力。

(2022/02/04 15:42) v0.2.7:(希望更新到此版本,不向后兼容)
1、update hysteria->0.9.6,hi_hysteria 0.2f
2、上游quic-go不修bug,hysteria暂时禁用了PMTUD,删掉了原来的 disable_mtu_discovery选项,永远为true,缓解断流问题
3、增加重新连接选项的支持,默认尝试5次,间隔3s
4、开启一个新的板块和issue,收集限制udp传输的IDC和地级运营商,给各位排雷,如果发现请回复issue信息ou,谢谢~。
(被限制udp传输,主要表现为服务端正常启动,但是客户端显示网络不可达这种情况)
历史改进
 
(2022/01/10 17:40) v0.2.6:
1、hi_hysteria 0.2e
2、acl规则合并使用geoip替代(期待geosite
3、自签改为wechat.com,取消允许不安全链接,详细查看关于自签说明

(2022/01/04 21:59) v0.2.5: 1、hysteria版本升级成了0.9.3,请重新下载"cmd客户端",version:0.2d ! 由于原项目使用github action编译带tun版本时,使用的最新的GLIBC_2.32 很多系统目前没有很好的支持,有依赖问题 所以我自己编译了v0.9.3 amd64,作为暂时的解决办法。 ! 2、新增wechat视频通话流量伪装 3、readme中加入各个协议类型介绍 4、取消obfs选项支持(没必要开启它,当你的网络环境限制QUIC传输,可自行添加),大幅减小cpu的开销,提升速度

(2021/12/19 21:16) v0.2.4: 1、hysteria版本升级成了0.9.1,请重新下载"cmd客户端",version:0.2c 2、增加faketcp模式配置,详情请查看:“使用前注意”条目 3、outbound被鸽了 4、客户端增加socks5(端口:8889)代理方式,user:pekora;password:pekopeko。可自行修改用户密码 5、增加自定义dns如8.8.8.8等,防止运营商dns劫持攻击

(2021/12/10 18:59) v0.2.3a: 1、hysteria版本升级成了0.9.0,请重新下载"cmd客户端",version:0.2b(注: 因为0.9.0新的特征ipv6_only开启后无法解析ipv4,可以等下个版本所支持的outbound特征,这里就不特意添加了 2、刷新了acl。

(2021/11/26 10:30) v0.2.3: 1、alpn改成了h3(虽然没什么必要) 2、hysteria版本升级成了0.8.6请重新下载"cmd客户端?!",version:0.2a

(2021/11/08 19:50) v0.2.2: 1、整合自签/ACME 2、更改buffer计算方式提升速度 3、修复自签ipv6时多符号bug 4、增加随机端口功能 5、增加每一天自动重启服务端功能防止内存占用过大

(2021/11/06 21:16) v0.2.1: 1、提供自签证书安装,为了有些ACME死活无法验证用户

(2021/10/05 18:36) v0.2: 1、优化客户端(!?)结构 2、增加后台运行功能

(2021/10/04 16:19) v0.1: 1、修复因dns污染无法代理的bug并增加去广告规则 2、增加arm和mipsle架构适配 3、增加客户端防呆

二·使用

使用前须知

防火墙问题:

请提前放行防火墙,保证该udp端口可达!

仅对于faketcp模式,则为放行server的tcp端口。

如果不使用自签方式,则应该放行TCP 80/443供hysteria内置的ACME验证。

自签证书:

0.2.6版本后取消自签证书时的允许不安全链接支持,防止MIMT攻击

对于cmd客户端来说,请手动复制CA/etc/hysteria/wechat.com.ca.crt到cmd客户端的ca/文件夹下使用,和正常签发的证书同样安全

如果你不介意有攻击的可能性的话,修改改客户端config.json"insecure": falsetrue关闭证书验证,并且删除"ca": "ca/wechat.com.ca.crt",选项(我反正是觉得被攻击的几率极小给关了,自己判断吧

限制UDP的服务商排雷列表【长期更新】

究其原因只是一小部分IDC怕被D到怀疑人生,不得出次下文,请放心,大部分服务商hysteria表现均正常。而且下面列出的,是仅有不可用的“前科”,正常与否请自测为准,仅供参考

日志表现为[error:timeout: no recent network activity] Failed to initialize client

  • DigitalOcean : 有时可用,有时不可用,防火墙规则深不可测。
  • vultr:和DigitalOcean表现一致
  • virmach:曾同地区电信可用,移动不可用。
  • ...

安装依赖

# centos
sudo su root  #Change to the user root!
yum install -y wget curl
# debian/ubuntu
sudo su root  #Change to the user root!
apt-get install -y wget curl

拉取安装

bash <(curl -fsSL https://git.io/hysteria.sh)

各协议介绍

1、udp

可被识别为QUIC流量,直接使用最佳。

脚本0.2.5版本后不再默认加入obfs选项了,由于混淆的开销太大,会让cpu性能成为速度的瓶颈。

而且运营商不会单单限速QUIC的传输,长时间测试过程中未被限速过,所以取消掉obfs支持。

2、faketcp:

hysteria v0.9.1 开始支持faketcp,将hysteria的UDP传输过程伪装成TCP,可以躲过运营商和“比较专业”的IDC服务商的QoS设备的对UDP的限速、阻断。

目前faketcp模式客户端只支持在linux类系统root用户内使用包括安卓,windows无法使用(但是可配合udp2raw伪装tcp代替)。

所以我的建议是:

追求代理性能时不要开启它。当下行速度一直被限制在例如128kB/s这种非常非常低的速率情况时,你确认被限制UDP后再重新安装后开启,它并不能"增速",反而会增加cpu的开销,给hysteria“减速”。

追求稳定性且能准备root权限使用环境时。能开faketcp就开它。

3、wechat-video

伪装成wechat的语音视频通话,可能会绕过少部分国内运营商对udp针对性限速?有待证实。

配置过程

演示较长,点我查看
 
******************************************************************
 ██      ██                    ██                  ██
░██     ░██  ██   ██          ░██                 ░░
░██     ░██ ░░██ ██   ██████ ██████  █████  ██████ ██  ██████  
░██████████  ░░███   ██░░░░ ░░░██░  ██░░░██░░██░░█░██ ░░░░░░██
░██░░░░░░██   ░██   ░░█████   ░██  ░███████ ░██ ░ ░██  ███████
░██     ░██   ██     ░░░░░██  ░██  ░██░░░░  ░██   ░██ ██░░░░██
░██     ░██  ██      ██████   ░░██ ░░██████░███   ░██░░████████
░░      ░░  ░░      ░░░░░░     ░░   ░░░░░░ ░░░    ░░  ░░░░░░░░
Version: 0.2.7
Github: https://github.com/emptysuns/Hi_Hysteria
******************************************************************
Ready to install.

The Latest hysteria version: v0.9.6. Download...

Download completed.

开始配置: 请输入您的域名(不输入回车,则默认自签wechat.com证书,不推荐):

% Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 100 15 100 15 0 0 68 0 --:--:-- --:--:-- --:--:-- 68 您的公网ip为:1.2.3.4

选择协议类型:

1、udp(QUIC) 2、faketcp 3、wechat-video(回车默认)

输入序号: 1 传输协议:udp

请输入你想要开启的端口(此端口是server端口,请提前放行防火墙,建议10000-65535,回车随机):

随机端口:57582

请输入您到此服务器的平均延迟,关系到转发速度(回车默认200ms): 100

期望速度,请如实填写,这是客户端的峰值速度,服务端默认不受限。期望过低或者过高会影响转发速度! 请输入客户端期望的下行速度:(默认50mbps): 200 请输入客户端期望的上行速度(默认10mbps): 40 请输入认证口令: pekora

配置录入完成!

执行配置... SIGN... subject=C = CN, ST = GuangDong, L = ShenZhen, O = PonyMa, OU = Tecent, emailAddress = [email protected], CN = Tencent Root CA Getting CA Private Key OK.

sysctl: cannot stat /proc/sys/net/core/rmem_max: No such file or directory Created symlink /etc/systemd/system/multi-user.target.wants/hysteria.service → /etc/systemd/system/hysteria.service. 所有安装已经完成,配置文件输出如下且已经在本目录生成(可自行复制粘贴到本地)!

Tips:客户端默认只开启http(8888)、socks5代理(8889, user:pekora;password:pekopeko)!其他方式请参照文档自行修改客户端config.json ↓↓↓↓copy↓↓↓*******************************↓ { "server": "1.2.3.4:57582", "protocol": "udp", "up_mbps": 40, "down_mbps": 200, "http": { "listen": "127.0.0.1:8888", "timeout" : 300, "disable_udp": false }, "socks5": { "listen": "127.0.0.1:8889", "timeout": 300, "disable_udp": false, "user": "pekora", "password": "pekopeko" }, "alpn": "h3", "acl": "acl/routes.acl", "mmdb": "acl/Country.mmdb", "ca": "ca/wechat.com.ca.crt", "auth_str": "pekora", "server_name": "wechat.com", "insecure": false, "recv_window_conn": 10485760, "recv_window": 41943040, "resolver": "119.29.29.29:53", "retry": 5, "retry_interval": 3 } ↑↑↑↑copy↑↑↑*******************************↑ 安装完毕

root@dedicated:~# systemctl status hysteria

  • hysteria.service - hysteria:Hello World! Loaded: loaded (/etc/systemd/system/hysteria.service; enabled; vendor preset: enabled) Active: active (running) since Mon 2022-01-10 04:17:23 EST; 15s ago Main PID: 29691 (hysteria) Tasks: 6 (limit: 1120) CGroup: /system.slice/hysteria.service `-29691 /etc/hysteria/hysteria --log-level warn -c /etc/hysteria/config.json server

Jan 10 04:17:23 dedicated systemd[1]: Started hysteria:Hello World!.

cmd客户端介绍

本项目只介绍如何在windows环境下使用,其他环境请参考官方原文

因为暂时没有hysteria的图形界面,所以我用批处理写了一个简单的“客户端?!",支持自动改代理和清除代理,实际使用没问题。 可自行到release中下载最新版本。

欢迎其他开发者贡献新的UI或者插件。

当出现安装完毕字样后,会自动打印生成的配置信息,同时当前目录下会生成一个config.json文件。

image

可以本地新建一个config.json(一定要是这个名称!)文件,复制粘贴到本地conf文件夹下,也可以直接下载生成的文件到本地conf文件夹下。

将config.json加入release中提供的简单的windows cmd客户端的解压目录中.

image

image

如果本地配置丢失?使用cat打印config.json后复制:

# cat config.json 
{
"server": "1.2.3.4:57582",
"protocol": "udp",
"up_mbps": 40,
"down_mbps": 200,
"http": {
"listen": "127.0.0.1:8888",
"timeout" : 300,
"disable_udp": false
},
"socks5": {
"listen": "127.0.0.1:8889",
"timeout": 300,
"disable_udp": false,
"user": "pekora",
"password": "pekopeko"
},
"alpn": "h3",
"acl": "acl/routes.acl",
"mmdb": "acl/Country.mmdb",
"ca": "ca/wechat.com.ca.crt",
"auth_str": "pekora",
"server_name": "wechat.com",
"insecure": false,
"recv_window_conn": 10485760,
"recv_window": 41943040,
"resolver": "119.29.29.29:53",
"retry": 5,
"retry_interval": 3
}

ctrl+c and +v.

客户端使用

提供两种运行方法:后台运行(无cmd窗口无感) 和 前台运行(必须得有cmd窗口,但是可查看当前日志)

启动之前请把config.json放到conf文件夹!


  • 方法一:后台运行(推荐)

运行:双击back_start.bat

停止:双击back_stop.bat

运行back_start.bat后,可以回车关闭此窗口,不需保留。

image

停止后台运行:

image

批处理能力有限,请谅解.


  • 方法二:前台运行

运行:双击run.bat

停止:回车,或者键入其他非'n'的字符

打开run.bat运行,运行时按回车键停止,防呆键入n继续运行

直接键入Enter关闭客户端!

直接键入Enter关闭客户端!

直接键入Enter关闭客户端!

切记不要直接关闭cmd窗口!

切记不要直接关闭cmd窗口!

切记不要直接关闭cmd窗口!

批处理能力有限,请谅解.

启动

image

防呆/关闭

image

Tips:前台运行模式下,不小心关掉窗口导致无法上网时,运行back_stop.bat可以清除代理和关闭hysteria。


客户端配置未生效?

如上图启动成功,但代理并未启用,请手动打开设置->网络->代理,查看配置是否生效

image

配置开机自启

不会有人不知道吧:)

对back_start.bat(后台模式) 或者 run.bat(前台模式)文件创建一个快捷方式

win+r 键入

shell:startup

打开自启目录将快捷方式复制进去,下次开机就会自启动。

image

这里用后台做演示,前台同理

三·服务端管理

  • 重启
systemctl restart hysteria
  • 停止
systemctl stop hysteria
  • 状态
systemctl status hysteria -l
  • 卸载
bash <(curl -fsSL https://git.io/rmhysteria.sh)
  • 重新安装/升级
bash <(curl -fsSL https://git.io/rehysteria.sh)

四·结语

魔改UDP的QUIC协议,加了tls和混淆,个人跑了一段时间大流量,未被运营商QoS,落地ip并没有被墙,也不知道什么时候被针对,大家且用且珍惜吧。

五·鸣谢

@HyNetwork/hysteria

@Loyalsoldier/geoip

hi_hysteria's People

Contributors

emptysuns avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.