Total Pageviews

Sunday, 3 May 2020

利用hysteria翻墙

在linux vps上。
wget https://github.com/tobyxdd/hysteria/releases/download/v0.2.0/hysteria_linux_amd64.tar.gz
mkdir hysteria_linux_amd64
mv hysteria_linux_amd64.tar.gz hysteria_linux_amd64
cd hysteria_linux_amd64
tar  xvf hysteria_linux_amd64.tar.gz 
cd hysteria_linux_amd64
(此时,先返回客户机器,把yourdomain.com解析到你vps的ip.)
然后回到vps里面,用acme.sh替yourdomain.com申请证书:
证书文件的路径是/root/.acme.sh/yourdomain.com/fullchain.cer
key文件的路径是/root/.acme.sh/yourdomain.com/yourdomain.com.key 
然后运行:
./cmd proxy server -listen :36710 -cert /root/.acme.sh/yourdomain.com/fullchain.cer -key /root/.acme.sh/yourdomain.com/yourdomain.com.key 
不过此命令是运行在前台的,我们可以利用systemd把它运行为service:
nano /etc/systemd/system/hysteria.service
cat /etc/systemd/system/hysteria.service
[Unit]
After=network.target

[Service]
ExecStart=/root/hysteria_linux_amd64/hysteria_linux_amd64/cmd proxy server -listen :36710 -cert /root/.acme.sh/yourdomain.com/fullchain.cer -key /root/.acme.sh/yourdomain.com/yourdomain.com.key  
Restart=always

[Install]
WantedBy=multi-user.target

然后,运行:
systemctl start hysteria
systemctl enable hysteria
服务器端搭建完成。

在客户机器mac上。
wget https://github.com/tobyxdd/hysteria/releases/download/v0.2.0/hysteria_darwin_amd64.zip
mkdir hysteria_darwin_amd64
mv hysteria_darwin_amd64.zip hysteria_darwin_amd64
cd hysteria_darwin_amd64
unzip hysteria_darwin_amd64.zip
cd hysteria_darwin_amd64
./cmd proxy client -server yourdomain.com:36710 -socks5-addr localhost:1082 -up-mbps 10 -down-mbps 50  
显示:
2020/05/03 20:25:38 Configuration loaded: {SOCKS5Addr:localhost:1082 SOCKS5Timeout:0 ACLFile: ServerAddr:yourdomain.com:36710 Username: Password: Insecure:false CustomCAFile: UpMbps:10 DownMbps:50}
2020/05/03 20:25:39 Connected to yourdomain.com:36710
2020/05/03 20:25:39 SOCKS5 server up and running on localhost:1082

不要关闭此terminal窗口,设置浏览器的socks5代理服务器地址为127.0.0.1,端口为1082,浏览器即可翻墙。


https://github.com/HyNetwork/hysteria/issues/10

不建议下载新版,下载这个v0.2.0版即可。
---------------
 
Hello World!非钟国优化线路使用不佳?不想中转?hysteria一键搞定。  
 

Hi_Hysteria

一·简介

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

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

在魔法咏唱时最难的不是搭建维护,而是在晚高峰时期的交付质量。当三大运营商晚高变成了:奠信、连不通、移不动时,你我都有感触。 虽然是走的udp但是提供obfs,暂时不会被运营商针对性的QoS(不开obfs也不会被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,您的⭐是我维护的动力。

适配ubuntu/debian, centos/rhel操作系统,misple/arm/x86/s390x架构。

windows使用请仔细阅读v2rayN For hysteria其他平台看这里

(2022/05/14) 0.3.7:
1. 兼容hysteria 1.0.4,同时屏蔽udp/443 output(由于hysteria目前对udp无加速效果,防止网页走http/3减速)
2. 增加修改当前协议功能,无需重复安装
3. 兼容v2rayN,不再对cmd客户端优化

历史改进

二·使用

第一次使用?

1. 防火墙问题

2. 自签证书

3. 限制UDP的服务商排雷列表【2022/03/21更新】

4. hysteria各个协议介绍

5. cmd客户端(伪)介绍

6. 部分其他平台?

7. 如何设置我的延迟、上行/下行速度?

8. 图形UI,v2rayN

拉取安装

su - root #Change to root
bash <(curl -fsSL https://git.io/hysteria.sh)

配置过程

首次安装后: hihy命令调出菜单,如更新了hihy脚本,请执行选项9或者12,获得最新的配置

 -------------------------------------------
|**********      Hi Hysteria       **********|
|**********    Author: emptysuns ************|
|**********     Version: 0.3.7     **********|
 -------------------------------------------
Tips:hihy 命令再次运行本脚本.
............................................. 
############################### 

..................... 
1)  安装 hysteria 
2)  卸载 hysteria 
..................... 
3)  启动 hysteria 
4)  暂停 hysteria 
5)  重新启动 hysteria 
6)  运行状态 
..................... 
7)  更新hysteria core 
8)  查看当前配置 
9)  重新配置hysteria 
10) 切换ipv4/ipv6优先级 
11) 更新hihy 
12) 完全重置所有配置 
13) 修改当前协议类型 

############################### 

0)退出 
............................................. 
请选择:1

脚本每次更新都可能会发生改变,请一定要展开并仔细参考演示过程,避免发生不必要的错误!

演示较长,点我查看
 
请选择:1
Ready to install.

Update.wait... Hit:1 https://pkg.cloudflareclient.com bionic InRelease Hit:2 http://archive.ubuntu.com/ubuntu bionic InRelease Hit:3 http://archive.ubuntu.com/ubuntu bionic-updates InRelease Hit:5 http://security.ubuntu.com/ubuntu bionic-security InRelease Hit:6 http://archive.ubuntu.com/ubuntu bionic-backports InRelease Hit:4 https://packagecloud.io/ookla/speedtest-cli/ubuntu bionic InRelease Reading package lists... Done Building dependency tree Reading state information... Done 78 packages can be upgraded. Run 'apt list --upgradable' to see them. N: Skipping acquire of configured file 'main/binary-i386/Packages' as repository 'http://pkg.cloudflareclient.com bionic InRelease' doesn't support architecture 'i386'

Done. Install wget curl lsof *wget Installed.Ignore. *curl Installed.Ignore. *lsof Installed.Ignore.

Done. The Latest hysteria version:v1.0.4 Download...

Download completed. 开始配置: 请选择证书申请方式:

1、使用ACME申请(推荐,需打开tcp 80/443) 2、使用本地证书文件 3、自签证书

输入序号: 3 请输入自签证书的域名(默认:wechat.com): www.whitehouse.gov

您已选择自签www.whitehouse.gov证书加密.公网ip:1.2.3.4 请输入你想要开启的端口,此端口是server端口,建议10000-65535.(默认随机)

随机端口:37575

选择协议类型:

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

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

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

期望速度,这是客户端的峰值速度,服务端默认不受限。Tips:脚本会自动*1.25做冗余,您期望过低或者过高会影响转发效率,请如实填写! 请输入客户端期望的下行速度:(默认50,单位:mbps): 100 请输入客户端期望的上行速度(默认10,单位:mbps): 20 请输入认证口令: pekopeko

配置录入完成!

执行配置... IPTABLES OPEN: udp/37575 SIGN...

SUCCESS.

Wait,test config...

Test success. net.core.rmem_max = 8000000 hysteria.sh: line 630: 22019 Killed /etc/hihy/bin/appS -c /etc/hihy/conf/hihyServer.json server > /tmp/hihy_debug.info 2>&1 Created symlink /etc/systemd/system/multi-user.target.wants/hihy.service -> /etc/systemd/system/hihy.service. 配置文件输出如下且已经在本目录生成(直接下载本目录生成的config.json[推荐]/自行复制粘贴到本地)

Tips:客户端默认只开启http(8888)、socks5(8889)代理!其他方式请参照hysteria文档自行修改客户端config.json ↓↓↓copy↓↓↓*******************************↓ { "server": "1.2.3.4:37575", "protocol": "udp", "up_mbps": 25, "down_mbps": 125, "http": { "listen": "127.0.0.1:10809", "timeout" : 300, "disable_udp": false }, "socks5": { "listen": "127.0.0.1:10808", "timeout": 300, "disable_udp": false }, "alpn": "h3", "acl": "acl/routes.acl", "mmdb": "acl/Country.mmdb", "auth_str": "pekopeko", "server_name": "www.whitehouse.gov", "insecure": true, "recv_window_conn": 3932160, "recv_window": 15728640, "disable_mtu_discovery": true, "resolver": "119.29.29.29:53", "retry": 3, "retry_interval": 3 } ↑↑↑↑copy↑↑↑*******************************↑

Shadowrocket/Sagernet/Passwall一键链接: hysteria://1.2.3.4:37575?protocol=udp&auth=pekopeko&peer=www.whitehouse.gov&insecure=1&upmbps=25&downmbps=125&alpn=h3#Hys-1.2.3.4

安装完毕

三·高级玩法(伪

1. 借用其他支持Socks5的GUI,来获得一个图形界面

四·Todo

如果您有好的功能建议,请不要忘记开个issue提出来欧~~~欢迎PR来完成Todo或者给我纠正我的渣代码

我的爱好是写bug ( ̄▽ ̄)~

  • 检测端口是否被占用
  • 利用xray s5 inbound来支持按域名分流(warp)
  • 生成分享链接
  • hihy替换掉hysteria
  • 规范化脚本代码
  • 利用docker安装?(不知道是否有必要)
  • 多密码支持
  • 利用base64加密替换原来的auth_str
  • 兼容v2rayN,放弃cmd的更新

五·结语

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

六·鸣谢

@HyNetwork/hysteria

from https://github.com/emptysuns/Hi_Hysteria 

(https://blog.imoeq.com/hi_hysteria/)

------------

支持hysteria的各种客户端


1. Clash.Meta[推荐]

clash.meta 继承了clash的所有特点,所以clash能用的GUI,它全部可以使用,包括openclash、clash verge等等。

推荐使用Alpha分支,同步最新代码。

更多支持clash.meta的客户端参考这里,hihy提供打包好的clash.verge 请在release查看, android端查看。


优点

它有许多hysteria core无法完成但是必要的功能。比如:
1. type: url-test可以自动根据httping选择节点
2. 而且得益于rule-providers这个clash配置项,用户不需要手动更新分流规则,每次连接都会自动更新,能做到完全无感。
3. 使用doh dot增加安全性,也能单独为dns配置节点
4. fallback 测试节点可用性并自动切换、负载均衡
5. GUI全平台都有很好的支持
6. 流媒体分流
7. .....

hihy不支持生成clash.meta url导入远程配置文件,主要是考虑到安全问题,防止节点信息泄露,需要用户复制粘贴到客户端自己本地文件,导入配置.

这里用clash_verge 为例,随意创建一个文件夹用来保存metaHys.yaml:


clash.meta可以同时配置支持vless、ss2022、trojan等等多配置,不过hihy目前不支持,没好的想法,更多配置请参考DOC。

目前许多优秀的特点hihy输出的配置文件没有支持,尽情期待.
 
2. v2rayN
 
 v2rayN已经在添加自定义配置时支持hysteria并能自动识别config的类型,hihy在0.3.7版本之后兼容v2rayN,hihy_cmd已经需要退出舞台了,不会再对它进行维护。
 
配置过程
点我:https://github.com/2dust/v2rayN/releases/latest/download/v2rayN.zip,下载最新的v2rayN,并解压。

点我:https://github.com/HyNetwork/hysteria/releases/latest/download/hysteria-tun-windows-6.0-amd64.exe,下载hysteria最新版本的Core,修改名称为hysteria.exe,将它放到v2rayN的根目录里。
 
开始使用时需要得到hihy生成的config.json配置文件,v2rayN选择这个文件,双击选择此节点。

从服务器下载的config.json可以删掉,v2rayN会自动在目录创建文件夹用来保存这些自定义配置文件。
--------------------------------------------------------------------------------------------------

Hysteria多功能一键脚本,支持范围端口及多端口复用、四模式IP优先级切换

支持纯IPV4、纯IPV6的VPS直接安装,主流linux系统均支持

相关说明及注意点请查看博客说明

一键脚本:

wget -N https://gitlab.com/rwkgyg/hysteria-yg/raw/main/hysteria.sh && bash hysteria.sh

8c67d5610edfe5085b9675e29c1e448

脚本源码备份Gitlab地址

参考项目Hi_Hysteria

from https://github.com/yonggekkk/Hysteria-yg 

-------------------------------------------------------------------------------------

A rule-based tunnel in Go.

wiki.metacubex.one 

Meta Kernel

Another Clash Kernel.

Features

  • Local HTTP/HTTPS/SOCKS server with authentication support
  • VMess, Shadowsocks, Trojan, Snell protocol support for remote connections
  • Built-in DNS server that aims to minimize DNS pollution attack impact, supports DoH/DoT upstream and fake IP.
  • Rules based off domains, GEOIP, IPCIDR or Process to forward packets to different nodes
  • Remote groups allow users to implement powerful rules. Supports automatic fallback, load balancing or auto select node based off latency
  • Remote providers, allowing users to get node lists remotely instead of hardcoding in config
  • Netfilter TCP redirecting. Deploy Clash on your Internet gateway with iptables.
  • Comprehensive HTTP RESTful API controller

Wiki

Configuration examples can be found at /docs/config.yaml, while documentation can be found Clash.Meta Wiki.

Build

You should install golang first.

Then get the source code of Clash.Meta:

git clone https://github.com/MetaCubeX/Clash.Meta.git
cd Clash.Meta && go mod download

If you can't visit github,you should set proxy first:

go env -w GOPROXY=https://goproxy.io,direct

Now you can build it:

go build

If you need gvisor for tun stack, build with:

go build -tags with_gvisor

IPTABLES configuration:

Work on Linux OS which supported iptables

# Enable the TPROXY listener
tproxy-port: 9898

iptables:
  enable: true # default is false
  inbound-interface: eth0 # detect the inbound interface, default is 'lo'

General installation guide for Linux

  • Create user given name clash-meta

  • Download and decompress pre-built binaries from releases

  • Rename executable file to Clash-Meta and move to /usr/local/bin/

  • Create folder /etc/Clash-Meta/ as working directory

Run Meta Kernel by user clash-meta as a daemon.

Create the systemd configuration file at /etc/systemd/system/Clash-Meta.service:

[Unit]
Description=Clash-Meta Daemon, Another Clash Kernel.
After=network.target NetworkManager.service systemd-networkd.service iwd.service

[Service]
Type=simple
User=clash-meta
Group=clash-meta
LimitNPROC=500
LimitNOFILE=1000000
CapabilityBoundingSet=CAP_NET_ADMIN CAP_NET_RAW CAP_NET_BIND_SERVICE
AmbientCapabilities=CAP_NET_ADMIN CAP_NET_RAW CAP_NET_BIND_SERVICE
Restart=always
ExecStartPre=/usr/bin/sleep 1s
ExecStart=/usr/local/bin/Clash-Meta -d /etc/Clash-Meta

[Install]
WantedBy=multi-user.target

Launch clashd on system startup with:

$ systemctl enable Clash-Meta

Launch clashd immediately with:

$ systemctl start Clash-Meta

Display Process name

Clash add field Process to Metadata and prepare to get process name for Restful API GET /connections.

To display process name in GUI please use Razord-meta.

Dashboard

We also made a custom fork of yacd provide better support for this project, check it out at Yacd-meta

Development

If you want to build an application that uses clash as a library, check out the the GitHub Wiki

Debugging

Check wiki to get an instruction on using debug API.

Credits

from https://github.com/MetaCubeX/Clash.Meta 

----------------------------------------------------------------------------------------------------

Hysteria 2 安装指南

github.com/apernet/hysteria
 

Hysteria 2 安装指南

服务端

安装

  1. 下载程序(linux-amd64)或 编译程序
curl -Lo hysteria https://github.com/apernet/hysteria/releases/latest/download/hysteria-linux-amd64 && chmod +x hysteria && mv -f hysteria /usr/local/bin/
  1. 下载配置
curl -Lo /root/hysteria_config.yaml https://raw.githubusercontent.com/chika0801/hysteria-install/main/config_server.yaml
  1. 下载systemctl配置
curl -Lo /etc/systemd/system/hysteria.service https://raw.githubusercontent.com/chika0801/hysteria-install/main/hysteria.service && systemctl daemon-reload
  1. 上传证书和私钥
  • 将证书文件改名为 fullchain.cer,将私钥文件改名为 private.key,将它们上传到 /root 目录
  1. 启动程序
systemctl enable --now hysteria
项目
程序 /usr/local/bin/hysteria
配置 /root/hysteria_config.yaml
重启 systemctl restart hysteria
状态 systemctl status hysteria
查看日志 journalctl -u hysteria -o cat -e
实时日志 journalctl -u hysteria -o cat -f

卸载

systemctl disable --now hysteria && rm -f /usr/local/bin/hysteria /root/hysteria_config.yaml /etc/systemd/system/hysteria.service

客户端

由 v2rayN 提供 HTTP SOCKS5 代理,由 v2rayN 提供路由规则

  1. 下载Windows客户端程序hysteria-windows-amd64.exe,重命名为hysteria.exe,复制到v2rayN\bin\hysteria文件夹。

  2. 下载客户端配置config_client.yaml,修改chika.example.com为证书中包含的域名,修改10.0.0.1为VPS的IP。

  3. v2rayN:服务器 ——> 添加自定义配置服务器 ——> 浏览 ——> 选择客户端配置 ——> Core类型 hysteria ——> Socks端口 50000

由 sing-box 提供 Tun 模式(透明代理),由 sing-box 提供路由规则

  1. sing-box:参考Windows 使用方法,将客户端配置进行如下修改。

原内容

        {
            "tag": "proxy",
            // 粘贴你的客户端配置,需要保留 "tag": "proxy",
        },

替换为

        {
            "type": "socks",
            "tag": "proxy",
            "server": "127.0.0.1",
            "server_port": 50000
        },

检查此处有 hysteria.exe

            {
                "process_name": [ // 直连的 Windows 可执行程序
                    "xray.exe",
                    "hysteria.exe",
                    "tuic.exe",
                    "tuic-client.exe",
                    "juicity.exe",
                    "juicity-client.exe"
                ],
                "outbound": "direct"
            },
  1. v2rayN:服务器 ——> 添加自定义配置服务器 ——> 浏览 ——> 选择客户端配置 ——> Core类型 hysteria ——> Socks端口 0。

from https://github.com/chika0801/hysteria-install 

-------------------------------------------------------------------------------------------------------

Hysteria 节点纯手动安装教程

Hysteria 是一个功能丰富的,专为恶劣网络环境进行优化的网络工具(双边加速),比如卫星网络、拥挤的公共 Wi-Fi、在中国连接国外服务器等。基于修改版的 QUIC 协议。由 go 编写的非常优秀的“轻量”代理程序,它很好的解决了在搭建科学上网服务器时的痛点——线路一般、高峰时期慢。虽然是走的 UDP 但是提供 obfs ,暂时不会被运营商针对性的 QoS ( 不开 obfs 也不会被 QoS )。

经过实际测试, Hysteria 协议在速度上碾压 vmess , vless ,naive 等其他协议,值得推荐给大家。网上有关 Hysteria 的安装教程已经挺多了,也有一键安装脚本。尤其官方的一键安装脚本做的挺好,非常适合零基础的用户使用。但是总有一些技术控的小伙伴,想搞清楚一键安装脚本到底在自己的服务器上安装了什么软件,做了那些操作。或者通过一键安装脚本没有部署成功,自己也不知道什么原因。这篇教程将给大家简单还原一键脚本安装了那些软件,进行了那些配置。大家在了解这些信息后,如果出现没有部署成功时,也可以检查相关配置,排除故障。

一、服务器安装环境

本次教程的测试环境为:Vultr IPv4&IPv6双栈 VPS ,1vCPU ,1GB Memory ,25 GB SSD , CentOS 7 Without SELinux 。

二、服务器安装步骤

1、对于 hax.co.id/woiden.id 等纯 IPv6 主机,打开 DNS64 ,其他主机跳过这一步。

echo -e "nameserver 2a01:4f8:c2c:123f::1" > /etc/resolv.conf

2、升级操作系统内核

建议升级一下系统内核,避免缺失某些依赖包而造成不必要的麻烦。

hostnamectl | grep -i system | cut -d: -f2

使用上述命令查询你的操作系统。

#Debian、Ubuntu等操作系统使用以下命令升级
apt update
apt upgrade -y
apt full-upgrade -y
apt-get install socat
#Redhat、Centos、Fedora等操作系统使用以下命令升级
yum -y update
rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
rpm -Uvh http://www.elrepo.org/elrepo-release-7.0-4.el7.elrepo.noarch.rpm
yum --enablerepo=elrepo-kernel install kernel-ml
grub2-set-default 0
yum -y remove kernel-3.*
yum install -y socat

3、配置防火墙

没有防火墙的服务器相当于裸奔,不管什么时候,建议打开操作系统的防火墙,然后在防火墙规则里放行自己使用的端口。

#查看防火墙状态
systemctl status firewalld
#设置开机启动防火墙
systemctl enable firewalld
#开启防火墙
systemctl start firewalld

为 Hysteria 服务在防火墙上放行相关端口:

# Hysteria 服务在申请域名证书时,需要使用 80/443 端口,我们在 IPv4&IPv6 规则表中放行 80&443 端口。
firewall-cmd --permanent --add-port=80/tcp
firewall-cmd --permanent --add-port=443/tcp
firewall-cmd --permanent --zone=public --add-rich-rule='
  rule family=ipv6
  source address=::/0
  port protocol=tcp port=80
  accept'
firewall-cmd --permanent --zone=public --add-rich-rule='
  rule family=ipv6
  source address=::/0
  port protocol=tcp port=443
  accept'
firewall-cmd --reload
#可以使用下面这行命名查询防火墙的规则表
firewall-cmd --list-all

为 Hysteria 服务放行监听端口及端口跳跃所使用的端口。以下示例中,我们准备使用 10255/udp 为监听端口,30000-35000/udp 为端口跳跃所使用的端口,你可以自行修改。

firewall-cmd --permanent --zone=public --add-port=10255/udp
firewall-cmd --permanent --zone=public --add-port=30000-35000/udp
firewall-cmd --permanent --zone=public --add-rich-rule='
  rule family=ipv6
  source address=::/0
  port protocol=udp port=10255
  accept'
firewall-cmd --permanent --zone=public --add-rich-rule='
  rule family=ipv6
  source address=::/0
  port protocol=udp port=30000-35000
  accept'
firewall-cmd --reload

为 Hysteria 服务设置端口转发,将 30000-35000/udp 端口收到的数据转发到端口 10255/udp:

firewall-cmd --zone=public --add-forward-port=port=30000-35000:proto=udp:toport=10255 --permanent
firewall-cmd --zone=public --add-rich-rule='rule family=ipv6 forward-port port=30000-35000 protocol=udp to-port=10255' --permanent
firewall-cmd --reload

4、创建工作组和用户

#建议尽量不要使用 root 用户运行服务,我们创建一个名为 hysteria 的用户用于运行 hysteria 。 
groupadd --system hysteria
useradd --system \
    --gid hysteria \
    --create-home \
    --home-dir /var/lib/hysteria \
    --shell /usr/sbin/nologin \
    --comment "hysteria server" \
    hysteria

5、安装 Hysteria 服务端

Hysteria 项目在 GitHub 的项目地址为:https://github.com/apernet/hysteria

#下载最新版本的 hysteria
wget -q -O /usr/bin/hysteria https://github.com/apernet/hysteria/releases/download/v1.3.3/hysteria-linux-amd64
chmod a+x /usr/bin/hysteria
#创建 hysteria 配置文件目录
mkdir /etc/hysteria

6、安装域名证书

Hysteria 服务端 必须要 一个 TLS 证书。有两种方式,任选一种即可。

① 使用内置的 ACME 客户端从 Let’s Encrypt 自动获取一个证书。这是最简单的方式,前提是你有解析到服务器的域名和一个有效的邮箱地址。缺点是必须占用一个端口。使用这种方式时, /etc/hysteria/config.json 按照如下示例配置即可:

#示例中 example.ifeng.ml 已解析到服务器,obfs 为混淆密码
cat > /etc/hysteria/config.json <<EOF
{
  "listen": ":10255",
  "acme": {
    "domains": [
      "example.ifeng.ml"
    ],
    "email": "example@ifeng.ml"
  },
  "obfs": "8ZuA2Zpqhuk8yakXvMjDqEXBwY"
}
EOF

② 自定义证书 - 使用 acme.sh 手动申请证书

以下代码演示的是使用 acme.sh 手动申请证书,当然你也可以使用 dnspod 等第三方工具生成证书后,手动上传到对应位置。

curl https://get.acme.sh | sh
ln -s /root/.acme.sh/acme.sh /usr/local/bin/acme.sh
acme.sh --set-default-ca --server letsencrypt
#example.ifeng.ml 请替换为你的真实域名
#注意:hax.co.id/woiden.id 等纯 IPv6 主机,在下面命令中加上--listen-v6参数
acme.sh --issue -d example.ifeng.ml --keylength ec-256 --standalone --insecure
acme.sh --install-cert -d example.ifeng.ml --ecc \
        --key-file       /etc/hysteria/example.ifeng.ml.key  \
        --fullchain-file /etc/hysteria/example.ifeng.ml.pem

③ 自定义证书 - 自签证书

#生成私钥
openssl ecparam -genkey -name prime256v1 -out /etc/hysteria/example.ifeng.ml.key 
#生成证书
openssl req -new -x509 -days 36500 -key /etc/hysteria/example.ifeng.ml.key -out /etc/hysteria/example.ifeng.ml.pem  -subj "/CN=example.ifeng.ml"

使用自定义证书时, /etc/hysteria/config.json 按照如下示例配置即可。

cat > /etc/hysteria/config.json <<EOF
{
  "listen": ":10255",
  "cert": "/etc/hysteria/example.ifeng.ml.pem",
  "key": "/etc/hysteria/example.ifeng.ml.key",
  "obfs": "8ZuA2Zpqhuk8yakXvMjDqEXBwY"
}
EOF

7、将 Hysteria 作为守护进程运行

在 /etc/systemd/system/ 目录创建 hysteria.service

cat > /etc/systemd/system/hysteria.service <<EOF
[Unit]
Description=Hysteria Server Service (config.json)
After=network.target
[Service]
Type=simple
ExecStart=/usr/bin/hysteria -config /etc/hysteria/config.json server
WorkingDirectory=/etc/hysteria
User=hysteria
Group=hysteria
Environment=HYSTERIA_LOG_LEVEL=info
CapabilityBoundingSet=CAP_NET_ADMIN CAP_NET_BIND_SERVICE CAP_NET_RAW
AmbientCapabilities=CAP_NET_ADMIN CAP_NET_BIND_SERVICE CAP_NET_RAW
NoNewPrivileges=true
[Install]
WantedBy=multi-user.target
EOF

8、启动 Hysteria 服务端

chown -R hysteria:hysteria /etc/hysteria/
systemctl daemon-reload
systemctl enable hysteria
systemctl start hysteria
#查看当前状态
systemctl status hysteria
#使用更改的配置文件重新加载 hysteria
systemctl reload hysteria

三、 客户端配置

Hysteria 客户端:https://github.com/apernet/hysteria/releases/latest

1、根据客户端操作系统,下载对应的 Hysteria 客户端,以 64 位 windows 操作系统为例。

在官方网站下载 hysteria-windows-amd64.exe 文件并 copy 到 v2rayN 安装目录(v2rayN V5.39 copy 到安装目录,v2rayN V6.14 copy 到安装目录中的 \bin\hysteria )。用记事本创建一个config.json文件,内容如下:

其中 up_mbps 和 down_mbps 分别指宽带签约的上行速率和下行速率,根据情况自行修改。

{
  "server": "example.ifeng.ml:30000-35000",
  "obfs": "8ZuA2Zpqhuk8yakXvMjDqEXBwY",
  "up_mbps": 30,
  "down_mbps": 200,
  "insecure": true,
  "socks5": {
    "listen": "127.0.0.1:10808"
  },
  "http": {
    "listen": "127.0.0.1:10809"
  }
}
2、v2rayN 客户端配置,点击菜单上“服务器”中的“添加自定义服务器”。

3、导入上一步配置好的 config.json 文件, Core 类型选择 hysteria 后点确定按钮。


4、苹果手机 Shadowrocket 客户端配置,类型选择 Hysteria ,分别填入地址、端口、混淆密码、上行速度、下行速度、协议选择 udp,保存.


四、 其他说明

通过以上简单的配置,相信你已经搭建好了 Hysteria 代理,你也会发现  Hysteria 在速度上碾压其他协议。需要说明一下, Hysteria 不支持 CDN 反代,这点官方文档里已经说的很清楚了。

Hysteria 其他更多的功能,请参考官方文档( https://hysteria.network )自行配置.

------------------------------------------------

一键脚本安装新版Hysteria 2,不需要域名,垃圾小鸡直接起飞


1 前言

Hysteria协议大家可能在很多地方都见过,很多人都说是可以拯救吃灰小鸡的脚本。但是由于他使用的udp协议,并且比较暴力。除去有qos的风险,还有可能会被商家删鸡,所以使用起来见仁见智了。
hysteria的多倍发包比较克制,hostloc论坛反馈像是racknerd和cloudcone等商家并没有对此进行删机。
目前来说只要是你本地和vps商家对于udp协议没有qos的严重,都是可以流畅起飞的。Hysteria 2 与 Hysteria 1.x 完全不兼容
并且,作者还开发了tcp-brutal这个项目,TCP Brutal是Hysteria的拥塞控制算法移植到TCP上,期待以后有人做出可以让reality协议也使用hysteria算法的方法。
在文章末尾有大家关心的一些问题,比如Hysteria 2和Hysteria 1的区别,是否是暴力发包等等。
另外,关于Hysteria 2的稳定性,我和一个用Hysteria 2协议做直连机场的机场主讨论过,他说稳定性还是很不错的,关于自签证书是否会封IP他说没有实际证据,但是如果开了混淆是有概率封端口的,由于这个脚本默认自带混淆大家可以不用考虑,如果后续有封端口的情况发生,大家可以换一个可以决定是否开启混淆的脚本使用来关闭混淆。
hysteria的github项目页:
本次使用的脚本是御坂的脚本,他的github项目页:
并没有使用某人的四合一脚本,实在是不敢用他的脚本,用你的vps挖矿谁受得了。御坂的脚本有点是可以不使用自己的域名,直接使用bing的自签证书,目前这个证书的防墙效果有待考证,我使用是没有问题的。
hy2安装脚本:wget -N --no-check-certificate https://raw.githubusercontent.com/Misaka-blog/hysteria-install/main/hy2/hysteria.sh && bash hysteria.sh
给大家看以下Hysteria 2协议的速度,测试环境是移动晚高峰时间测速,vps是cloudcone的dc1垃圾小鸡,进行油管4K测速。

2 安装

SSH链接上你的vps以后,确定在此vps上你要使用hy2的端口是开放的,这里推荐debian系统,默认端口就是开放的。然后使用此一键脚本,会提示你以下界面。
  1. 安装 Hysteria 2
  2. 卸载 Hysteria 2

  1. 关闭、开启、重启 Hysteria 2
  2. 修改 Hysteria 2 配置
  3. 显示 Hysteria 2 配置文件

  1. 更新 Hysteria 2 内核

  1. 退出脚本
请输入选项 [0-5]:
这里我们输入 1 ,然后等待程序反应。
后续提示
Hysteria 2 安装成功!
Hysteria 2 协议证书申请方式如下:
  1. 必应自签证书 (默认)
  2. Acme 脚本自动申请
  3. 自定义证书路径
请输入选项 [1-3]:
这里我们需要选择证书,如果使用自己的域名申请证书,可以选择2,如果觉得麻烦,可以直接输入1使用bing的自签证书。默认回车也是bing的自签证书。
然后会提示你选择端口,443最好。默认回车是随机,随机也可以。
然后会提示你Hysteria 2 端口使用模式,这里有单端口和端口跳跃。Hysteria作者有说明:中国用户有时报告运营商会阻断或限速 UDP 连接。不过,这些限制往往仅限单个端口。端口跳跃可用作此情况的解决方法。客户端将随机选择一个端口进行初始连接,并定期随机跳跃到另一个端口。用于控制时间间隔的选项是 transport 部分中的 hopInterval。一句话来说就是定期换连接端口来防止某些qos。
所以我们默认选择单端口即可,如果后续有使用一段时间后限速。排除vps商家qos以后,可以使用端口跳跃。
然后会提示你设置 Hysteria 2 密码,这里默认回车使用随机密码即可。
然后会提示你Hysteria 2 的伪装网站地址,如果有喜欢的可以自己选择,默认回车是使用世嘉maimai日本网站。
一路畅快淋漓的回车下来,你的Hysteria 2就搭建完成了。
后续会给你客户端 配置文件Hysteria 2 节点分享链接。某些软件比如v2rayn不支持用节点链接一键导入,就需要配置文件。配置文件可以直接复制脚本给出的客户端配置文件,或者从服务器的/root/hy/路径里面寻找也是可以的。
如果需要json配置文件,找到你刚刚安装脚本的ssh界面。在桌面新创建一个txt文件,里面脚本返回给你的客户端 JSON 配置文件内容。比如我的服务器的内容就是下面的内容:
{
  "server": "74.18.114.19:9168",
  "auth": "081e248c",
  "tls": {
    "sni": "www.bing.com",
    "insecure": true
  },
  "quic": {
    "initStreamReceiveWindow": 16777216,
    "maxStreamReceiveWindow": 16777216,
    "initConnReceiveWindow": 33554432,
    "maxConnReceiveWindow": 33554432
  },
  "fastOpen": true,
  "socks5": {
    "listen": "127.0.0.1:5080"
  },
  "transport": {
    "udp": {
      "hopInterval": "30s"
    }
  }
}1234567891011121314151617181920212223
然后我们将该txt的文件名改成hy-client.json重点是后面的文件格式一定要是.json结尾。

3 导入软件

3.1 windows的V2rayn

V2rayn的项目页:
v2rayn的github项目下载页面:
https://github.com/2dust/v2rayN/releases
推荐下载新版本的v2rayN-With-Core.zip,解压后得到的文件夹。点击v2rayN即可打开软件使用。
然后我们需要替换Hysteria 2内核,截止到写文章时,v2rayn的sing-box内核并无法使用Hysteria 2协议,这不是sing-box内核的问题,最新版内核是支持的,可能是内核和软件之间没有协作好,所以我们仍然使用Hysteria内核,需要自己下载替换。
Hysteria内核下载页,
进去以后下载名字为hysteria-windows-amd64-avx.exe的版本。然后进入你解压的V2rayn文件夹里面的bin/hysteria目录中,将我们下载的hysteria-windows-amd64-avx.exe改名为hysteria-windows-amd64.exe后替换掉原本目录里面改的hysteria-windows-amd64.exe文件。
然后我们打开v2rayn软件,点击右上角的 服务器,点击 添加自定义服务器
然后添加服务器。注意内核选择Hysteria,然后配置文件点击右边的浏览选择刚刚保存在桌面的json文件。端口是你在用脚本搭建服务器时候选择的脚本,选择回车使用随机脚本的用户去ssh界面找一下默认的是哪个端口。
然后这个节点就导入成功了,可以使用了。具体的v2rayn设置系统代理和分流去谷歌搜以下v2rayn的使用教程。

3.3 windows的Nekoray / 安卓的Nekobox

新版的nekoray和nekobox可以直接导入节点链接,并且使用sing-box进行代理。
Nekoray的GitHub下载地址:
我写的nekoray使用教程:https://duangks.com/archives/153/
nekobox的github项目下载页:
我写的nekobox使用教程:https://duangks.com/archives/146/
首先复制你的节点链接,比如我搭建好的链接就是hysteria2://081e248c@71.48.11.19:9368/?insecure=1&sni=www.bing.com#Misaka-Hysteria2
在nekoray界面点击程序然后点击从剪切板导入即可。
在nekobox界面点击右上角第二个图标,一个文档中间带有加号的图标,然后点击从剪切板导入。

4 常见问题

4.1 Hysteria 2 与 Hysteria 1 的比较

Hysteria 2 继承了 Hysteria 1.x 的几乎所有功能,同时引入了各种新的修复和增强。但值得注意的是,由于协议和代码经过了重大更改,Hysteria 2 与 Hysteria 1.x 完全不兼容。 用户必须在客户端和服务器上使用一致的版本。
主要改进
最值得注意的几点包括:
  • 新协议 :重新设计的协议,伪装成 HTTP/3,增加对抗审查的能力。
  • 0-RTT UDP 会话建立 :每个新 UDP 会话的第一个包没有额外延迟。
  • 新的 ACL 和出站系统 :根据不同的请求使用不同的出口。
  • 流量统计 API :便于监控和管理。
  • 性能改进 :各种底层优化,提高了性能和稳定性。
缺失的功能
Hysteria 2 尚未实现 Hysteria 1.x 中的一些功能:
  • 客户端 ACL :目前 ACL 只在服务器端可用。
  • FakeTCP 协议 :FakeTCP 一直是相对小众的功能,我们还在评估是否要重新引入。
  • TUN 模式 :目前暂无,但很可能在未来重写、重新引入。

4.2 Hysteria 是多倍发包吗?

不是。Hysteria 不会在任何情况下主动对一份数据进行多次发送 ,只有在检测到丢包时才会对丢失的部分进行重传(丢包重传是任何可靠协议都必须有的)。而检测丢包和重传的策略和原版 QUIC 完全一致,QUIC 的策略本身也源自 TCP 没有太大区别。
在丢包率低的情况下,Hysteria 传输一份数据所消耗的流量和数据本身大小没有太大差异,并且能跑满带宽。假如是多倍发包,即使只多一倍,流量消耗也会是原来的两倍,并且最大有效传输速度只是线路的一半。因此所谓多倍发包是一个非常容易证伪的错误说法。
from https://archive.is/vEqty#selection-1415.0-1454.0

 

 

 

 

 

 

 

  
 


 

 

No comments:

Post a Comment