科学上网

自建Hysteria 2代理:拯救你的垃圾VPS网络

浅时光博客 · 9月18日 · 2024年 996 次已读

一、Hysteria 介绍

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

Hysteria功能特性

  • 功能齐全
    • SOCKS5、HTTP 代理、TCP/UDP 转发、Linux TProxy,更多模式不断添加中。
  • 快如闪电
    • 通过魔改的 QUIC 协议驱动,Hysteria 即使在最不稳定和容易丢包的网络环境中也能提供无与伦比的性能。
  • 抗封锁能力
    • 协议旨在伪装成标准的 HTTP/3 流量,无论中间人还是主动探测,都很难分辨和封锁。
  • 跨平台
    • 我们为所有主要的平台和架构提供构建。随处部署,随处使用。
  • 易于集成
    • 内置对自定义验证、流量统计和访问控制的支持,Hysteria 很容易集成到已有的后端中。
  • 开放标准
    • 有详尽的文档、规范和代码,供开发者参考、贡献和构建自己的应用。

官方站点:v2.hysteria.network/

项目地址:https://github.com/apernet/hysteria

Hysteria为什么可以大幅提升网速

目前hysteria更新到了2.0版本,大幅提升了性能和稳定性,支持反代伪装,增加抗审查能力。由于改动巨大,现在的第二代和之前的第一代完全不兼容。

hysteria底层传输基于UDP的加密代理协议,对比目前使用的SS、vmess、vless、trojan等协议,hysteria在绕过防火墙审查的同时还能大幅提升上网速度,这是因为hysteria修改了quic的拥塞控制算法,我们都知道网络的带宽资源是有限的,比如我家是100兆的带宽,说明我的下载速度被运营商限制到最多只能跑到100兆的速度,但实际上我并不能全天候满速100兆下载,尤其是在晚高峰期间,因为我们发送到目标服务器的数据包会经过很多路由器的转发,这些路由器的性能虽然很高 但也有极限,如果同时发送数据的人太多,路由器来不及处理或者链路的带宽容量不够就会出现拥堵丢包的情况,这种情况通常出现在国际出口的位置,具体表现就是高延迟高丢包率。我们访问网站用的HTTP协议,目前大部分情况下是使用TCP,包括我们常用的SS、vmess等代理协议,底层传输默认也都是TCP协议,在TCP这种面相连接的可靠传输协议下,当出现丢包时就会主动降低发送速率,来缓解网络拥塞的情况,所以网速就会变慢。

二、Hysteria 部署

1、一键部署

[root@proxy ~]# bash <(curl -fsSL https://get.hy2.sh/)

这里我们先不启动服务,后面进行修改配置之后再启动服务,这里先设置开机自启

[root@proxy ~]# systemctl enable hysteria-server.service

2、修改配置

[root@proxy ~]# vim /etc/hysteria/config.yaml
listen: :443  # 监听端口,默认443,http/3

# TLS: 可以选择使用 tls 或 acme,但不能同时包含两者.配置acme则由acme申请证书
acme:
  domains:
    - h2.dqzboy.com      # 你的域名,注意需要提前解析到对应服务器IP
  email: h2@dqzboy.com   # 你的邮箱,随意

#tls:
#  cert: some.crt
#  key: some.key

# 带宽: 作用是最高速度限制.选择不写或者设为零代表没有限制(使用传统的bbr拥塞控制)。注意,服务器上传速度对应的是客户端下载速度,反之亦然
#bandwidth:
#  up: 1 gbps
#  down: 1 gbps

# 验证: 服务端与客户端验证
auth:
  type: password
  password: 12345678    # 设置你的密码

# 伪装: 抵抗审查伪装成标准的HTTP/3流量。
masquerade:
  type: proxy
  proxy:
    url: https://www.baidu.com/ # 伪装的域名
    rewriteHost: true           # 是否重写Host头以匹配被代理的网站

关于服文章来源(Source):浅时光博客务端bandwidth的配置说明:

如果你是个人使用,那么服务端bandwid文章来源(Source):https://dqzboy.comth可以不用设置,而由客户端进行设置

3、启动服务

  • 上面配置修改完成之后,接下来就可以启动服务了
[root@proxy ~]# systemctl start hysteria-server.service
[root@proxy ~]# systemctl status hysteria-server.service

三、客户端配置使用

1、下载安装客户端

  • 在Windows系统下,我这里使用的是V2rayN

解压zz_v2rayN压缩包,然后把hysteria 2的执行文件替换掉v2rayN下面的hysteria文件;路径地址:zz_v2rayN-With-Core-SelfContained\bin\hysteria

2、添加客户端配置

  • 首先添加客户端配置,然后再导入到V2rayN中,新建一个文本文件,添加如下配置内容
server: your_VPS_IP:443  # 指定客户端连接到的Hysteria服务器地址,如默认是443端口可省略
auth: 12345678           # 服务端配置的验证密码,客户端需保持一致

# 带宽:请将up和down的带宽值设置为你当前网络的最大速率(非必须,但推荐);可通过测速工具获取当前带宽速率;如果使用传统BBR那么此处配置不写或者设置0
bandwidth:
  up: 30 mbps
  down: 100 mbps
  
tls:
  sni: h2.dqzboy.com    # 如果使用是自签证书,这里填写伪装域名
  insecure: false       # 使用自签时需要改成true

# 下面是本地的socks5和http端口
socks5:
  listen: 127.0.0.1:1080
http:
  listen: 127.0.0.1:8080

关于客户端这里配置带宽的说明:

如果你对上下行一侧或者两侧的带宽不确定,你可以只设置一侧,或者完全去掉这个带宽部分。

客户端的实际上传速度将是这里指定的值,和服务器最大下载速度(如果服务器设置中指定了)中最小的值。同理,客户端的实际下载速度将是这里指定的值,和服务器最大上传速度中最小的值。

如果服务器启用了 ignoreClientBandwidth 选项,这里指定的值将被忽略。

不挂代理的情况下进行宽带测速:speedtest

3、导入客户端配置

  • 现在打开V2rayN客户端,那么把我们的客户端配置导入进去

4、启用客户端服务

四、访问网站测速

  • 现在打开Google网页进行测试,是否可以上网;可以看到下图中是可以正常访问的

现在挂上代理再次进行测速看看效果;可以跟之前使用vmess或则vless、ss等其他协议进行测速比较下是否有提升。代理模式选择全局,然后访问下面的测速网站进行测速:https://www.speedtest.net/

声明


免责声明:本站内容仅供个人学习与研究,严禁用于商业或非法目的。继续浏览或下载即表明您接受上述条件,任何后果由用户自行承担。

版权声明:未经本站作者允许不得转载本文内容,否则将视为侵权。


本文作者:浅时光博客
原文链接:https://www.dqzboy.com/15978.html
版权声明:知识共享署名-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0)协议进行许可,转载时请以>超链接形式标明文章原始出处和作者信息
免责声明:本站内容仅供个人学习与研究,严禁用于商业或非法目的。请在下载后24小时内删除相应内容。继续浏览或下载即表明您接受上述条件,任何后果由用户自行承担。