一键脚本轻松搭建hysteria2,榨干宽带,2024主流翻墙技术,全平台客户端支持

前言

我曾在2022年分享过早期的Hysteria(歇斯底)技术搭建,当时的Hysteria面对复杂多变的网络环境技术并不成熟,而现如今Hysteria2的再次出现,强大的网络优化以及“卷”的很的性能值得我们去尝试。本文从一键脚本到客户端轻松安装一条龙详细讲述,Hysteria2知识点较多,篇幅有限,这里只挑实用的讲述。

hysteria2一键脚本安装服务端

hysteria2服务端安装


      使用finalshell登陆境外VPS,复制以下脚本命令,粘贴到vps终端敲回车即可无人值守,自动安装。

wget -N --no-check-certificate https://raw.githubusercontent.com/lanhebe/hysteria/master/hy2_onekey_install.sh && chmod +x hy2_onekey_install.sh && ./hy2_onekey_install.sh

执行该脚本后,安装hysteria2前,脚本会提示输入域名/端口/acme证书选择/密码/邮箱及伪装域名等。如果你没有域名可以选择自签证书方式安装,有域名,必须在安装前做好域名解析服务,其他不选的脚本已为你做好默认选项无压力安装。

hysteria2服务端命令及设置讲解

如果你对安装技术不感兴趣,可以跳过。对hysteria2技术细节感兴趣的,可以直接往下看。

nohup ./hysteria-linux-amd64 server &    # 启动 hysteria 服务
pgrep -f "hysteria-linux-amd64"    # 查看  hysteria 服务PID
kill PID   # 停止 hysteria 服务 状态
脚本围绕Hysteria2两种方法进行安装:
  • acme证书安装;(需要有域名,并做好解析服务,根据个性设置)
  • 自签证书安装;(无需域名,傻瓜安装,适合快速,一路敲回车即可完成)

两种方法只能二选其一,根据脚本操作提示快速安装Hysteria2。

一键脚本安装成功后,配置及相关文件存放在/root/hy2/,

  • clash-mate.yaml ======>clash客户端配置文件
  • config.yaml ======>hysteria2运行配置文件
  • hysteria-linux-amd64 ======>服务端执行主程序
  • neko.txt ======>hysteria2分享链接
  • nolup.out ======>运行主程序log日志信息

以下展示acme申请证书和自签证书两种服务端配置json格式,供大家学习。假设服务器IP:107.182.177.8
    1.acme配置示例:

#服务器acme配置:
listen: :443

acme:
  domains:
    - www.yugogo.xyz
  email: your@email.com

auth:
  type: password
  password: z230gDFzpN6bLk0yymdf7+24

masquerade:
  type: proxy
  proxy:
    url: https://bing.com/
    rewriteHost: true

客户端acme配置json格式:
{
  "server": "107.182.177.8",
  "auth": "z230gDFzpN6bLk0yymdf7+24",
  "bandwidth": {
    "up": "30 mbps",
    "down": "100 mbps"
  },
  "tls":{
    "sni": "www.yugogo.xyz",
    "insecure": "false"
  },
  "socks5": {
    "listen": "127.0.0.1:1080"
  },
  "http": {
    "listen": "127.0.0.1:8080"
  }
}

2.自签配置示例:

#服务端配置:
listen: :443

tls:
  cert: /etc/ssl/private/bing.com.crt
  key: /etc/ssl/private/bing.com.key
auth:
  type: password
  password: qmyxSYW0UP2wsE6COoGdGEDAknM

masquerade:
  type: proxy
  file:
    dir: /www/masq 
  proxy:
    url: https://news.ycombinator.com/
    rewriteHost: true 
  string:
    content: hello stupid world 
    headers: 
      content-type: text/plain
      custom-stuff: ice cream so good
    statusCode: 200 

bandwidth:
  up: 0 gbps
  down: 0 gbps

udpIdleTimeout: 90s

ignoreClientBandwidth: false

quic:
  initStreamReceiveWindow: 8388608 
  maxStreamReceiveWindow: 8388608 
  initConnReceiveWindow: 20971520 
  maxConnReceiveWindow: 20971520 
  maxIdleTimeout: 90s 
  maxIncomingStreams: 1800 
  disablePathMTUDiscovery: false 

#客户端配置:

    "server": "107.182.177.8:443",
    "auth": "qmyxSYW0UP2wsE6COoGdGEDAknM",
    "tls": {
        "sni": "bing.com",
        "insecure": true
    },
    "socks5": {
        "listen": "127.0.0.1:10808"
    },
    "http": {
        "listen": "127.0.0.1:10809"
    }
}

hysteria2客户端安装使用

Mac/Windows使用方法

目前支持Windows,Mac的hysteria2客户端,这里推荐下载使用Furious-0.2.13-windows-x86_64,Furious-0.2.13-macOS-11.0-x86_64,更多版本详见:Furious页面
      下载完毕,自行安装后,启动Furious客户端,这里以Mac演示为例:

  1. 点选小火箭图标,选择“导入”“从剪贴板导入分享链接”
  2. 点选小火箭图标,点击“编辑配置”,鼠标右键“从剪贴板导入分享链接”

以上两种方法都可以轻松实现节点的顺利导入,最后点击“连接”
(如果小火箭图标变红色,证明节点已成功激活,反之,蓝色即连接失败。)

Android使用方法

安卓强烈推荐使用NekoBoxForAndroid客户端,因为支持端口跳跃,并且可以设置跳跃间隔时间。
因NekoBoxForAndroid无法通过hysteria2的节点链接导入,所以只能通过手动配置增加节点,自签证书配置如下图:

IOS使用方法

苹果手机推荐使用Streisand,推荐理由:不花钱,免费使用。
      下载方法:打开苹果手机的App stores,搜索“Streisand”,找到并安装即可。
      使用方法:打开Streisand,点击“+”,新增节点;“手动配置”或“扫描二维码”;
手动配置如下图:

扫描二维码其实很简单,打开支持二维码的客户端分享二维码,扫码即可添加节点,这里以Furious分享二维码为例,如下图:

      打开Furious的“编辑配置”,选中节点,鼠标右键“导出为二维码”,使用Streisand扫描二维码进行添加即可。

软路由使用方法

略--------后续更新

hysteria2端口跳跃

顾名思义,程序不再使用唯一一个固定的端口号通信,而是使用一定范围的端口号随机抽取使用,并且可以根据时间间隔更改端口号。说白了类似动态端口。正好逃避网络供应商针对UDP阻断或限速,因为这些限制往往仅限单个端口。端口跳跃可用作此情况的解决方法。

hysteria2端口跳跃通信流程

hysteria2客户端====(随机端口号)====>>境外VPS的防火墙====(目标转发)====>>hysteria服务端443端口号====>>代理上网。

hysteria2端口跳跃示例

hysteria2服务端使用博文指定的一键脚本安装,提示是否启用端口跳跃,选择“1”,启用端口跳跃;
      输入起始端口号和尾端端口号(如10000~20000),不能输入与系统冲突的0~1023,还有一些特定端口号外,均可自行设定。
      服务端实际并没有在hysteria2上接收端口跳跃服务,而是交给iptables防火墙处理,由nat表筛选符合条件转发给hysteria 443端口接收。(当网络流量只要是10000~20000范围的任意值,就能实现目标转发,反之,则过滤不转发。)
输入:iptables -t nat -nvL 即可查看vps防火墙是否启用端口转发,以下展示端口转发状态。

# IPv4
iptables -t nat -A PREROUTING -i eth0 -p udp --dport 10000:20000 -j DNAT --to-destination :443
# IPv6
ip6tables -t nat -A PREROUTING -i eth0 -p udp --dport 10000:20000 -j DNAT --to-destination :443

hysteria2客户端直接使用FriousNekoBoxForAndroid,目前支持端口跳跃功能的客户端,仅支持Windows/Mac/安卓版,如果有更多的发现,欢迎留言指正。
      以下是NekoBoxForAndroid客户端配置详解下图:

      由于Frious配置文件格式是json,如果需要增加跳跃间隔时间配置,就需要把官方的yaml配置转换成json,这里推荐大家使用yq下载安装,再进行转换。
      json==转换==>>>yaml命令:(cc为待转换文件)

.\yq_windows_amd64.exe -Poy .\cc.json

      yaml==转换==>>>json命令:

.\yq_windows_amd64.exe -Poj .\cc.yaml

      以下是yaml转换json示例:

PS C:\Users\yy\Downloads> .\yq_windows_amd64.exe -Poj .\cc.yaml
{
  "server": "proxy.yugogo.xyz:10000-20000",
  "auth": "me6OtdXjLhUDtIz5u0ohHl3m2k",
  "tls": {
    "sni": "proxy.yugogo.xyz",
    "insecure": false
  },
  "socks5": {
    "listen": "127.0.0.1:10808"
  },
  "http": {
    "listen": "127.0.0.1:10809"
  },
  "transport": {
    "udp": {
      "hopInterval": "30s"
    }
  }
}

hysteria2带宽行为讲解

按照官方说法,hysteria2的上下行速度需要用户根据自身网络环境设定,如果不启用,则一律使用BBR协议通信,这里优选启用hysteria2独有的功能(Brutal)。脚本默认是在服务端加入带宽上下传速度为零配置,表示启用Brutal算法提速,但不做任何速度限制,强烈建议使用该方法!
      如果喜欢折腾的,用户可根据全天上/下午/晚上分别使用https://www.speedtest.net/测速全天各时间段的最大上下行速度值,然后求个平均值,建议使用平均值设定hysteria2的带宽大小。(设置过大可能会由于网络拥塞网速更慢,设置过小等于限速。),大家可以在服务端找到/root/hy2/config.yaml中,自行修改。
      更多hysteria2带宽使用说明详见官方文档

hysteria2参考链接

Hysteria 2下载:https://github.com/apernet/hysteria/releases
      Hysteria 2文档:https://v2.hysteria.network/zh/
      Furious客户端文档:https://github.com/LorenEteval/Furious
      Android客户端(NekoBoxForAndroid):https://github.com/MatsuriDayo/NekoBoxForAndroid
      IOS客户端(Streiand):略。

Hysteria2技术搭建视频详见youtube我的频道
Little yu

View Comments