Hysteria2代理:原生服务端及客户端搭建
# Hysteria2代理:服务端及客户端搭建 ## 简介 **Hysteria** 是一个新兴的强
渲染中...
# Hysteria2代理:服务端及客户端搭建
## 简介
**Hysteria** 是一个新兴的强大、快速、安全的网络代理工具。且完全开源!
Hysteria2的首个版本:`Hysteria 2.0.0`在2023年9月2日首次发布。*这是 Hysteria 2 的第一个稳定版本。几乎完全重写了 Hysteria 原有的代码,包括新的协议、新的功能和各种改进。*
- Github仓库地址:https://github.com/apernet/hysteria
- 中文官网:https://v2.hysteria.network/zh/
本文用于记录服务器搭建和使用方式:
1. 使用官方发布的应用运行服务端和客户端。
2. 参照官方文档中的配置文件示例配置服务端和客户端。
**提示:私人搭建服务端需要一个拥有公网IP的服务器、一个映射到该IP的域名!建议有相关经验的人员选择自建。**
> 截止本文编写时,官方最新版本是【[app/v2.0.3](https://github.com/apernet/hysteria/releases/tag/app%2Fv2.0.3)】
<!-- more -->
## 准备工作
### 1. 应用下载
本文使用的应用如下:
- 服务端:服务器系统是Linux,系统架构是`x86_64`,所以选择应用包`hysteria-linux-amd64`,将其下载到本地备用。
- 客户端:客户端是Windows10,系统架构是`x86_64`,所以选择应用包`hysteria-windows-amd64.exe`,将其下载到本地备用。
> **提示:官方发布的每个应用都是服务端和客户端通用的,如`hysteria-linux-amd64`既可以进行服务端部署,也可以作为客户端连接服务端。**
关于发布版选择的更多信息,请阅读官网文档或本站搬运的内容:[Hysteria2官方服务版本选择 | 对照表](https://oldmoon.top/post/193)
### 2. 域名DNS配置
简介中提到 **`私人搭建服务端需要一个拥有公网IP的服务器、一个映射到该IP的域名!`** 。所以你应该在服务端搭建前准备好服务器、域名,并将域名正确解析到服务器对应的IP上。这里就不多说了,如果要独立搭建服务器,需要自行去学习这部分,包含`购买服务器`、`购买域名`、`DNS解析`等相关知识。
> PS:购买海外服务器,本站整理了一些常见大厂商信息可供参考:[海外常见云服务器VPS](https://oldmoon.top/post/vps)
## 服务端搭建
### 一键安装
官方提供了一个 `bash` 脚本,可以在常见的 `Linux` 发行版上自动下载最新版本的 `Hysteria` 并配置 `systemd` 服务,请选择使用以下脚本:
- 安装或升级到最新版本:
```sh
bash <(curl -fsSL https://get.hy2.sh/)
```
- 安装或升级为指定版本(跳过版本检查):
```sh
bash <(curl -fsSL https://get.hy2.sh/) --version v2.2.3
```
安装成功后,会出现配置文件地址及下一步的相关提示,按照提示执行操作即可。
- 卸载 Hysteria:
```sh
bash <(curl -fsSL https://get.hy2.sh/) --remove
```
### 手动安装
本文服务端使用的是`Centos`系统的Linux服务器,服务端搭建可以分为以下几步:
1. 创建hysteria文件夹,用于存储相关应用及文件,如`/root/hysteria`;
2. 进入`/root/hysteria`文件夹,将上面提到的`hysteria-linux-amd64`上传到`/root/hysteria`文件夹中;
3. 创建并编辑`config.yaml`文件,用于填写hysteria服务端相关配置信息;
4. 将基础配置信息填入`config.yaml`文件并保存,本文的配置信息可查看下方的 [服务端配置](#服务端配置);
5. 将`hysteria-linux-amd64`设置为可执行文件,**Centos** 赋予可执行权限的命令是`chmod -R 777 hysteria-linux-amd64`,其他系统请自行设置;
6. 运行程序启动服务端,我使用的运行命令(`Centos系统`)如下:
```bash
# 服务端模式后台运行程序,并将输出信息(日志)保存到logs.log文件中
nohup ./hysteria-linux-amd64 server > logs.log 2>&1 &
```
7. 查看`logs.log`文件内容,若有`server up and running`,说明服务运行成功
### 服务端配置
- 提示:hysteria服务端需要HTTPS证书支持,官方应用有自动申请证书功能,但由于我测试的次数过多,好像超过了自动申请证书的限制,所以我的配置中有`域名证书手动配置`相关配置信息,如果你不会手动申请证书,请将手动配置删除,并放开自动配置的注释
```yaml
listen: :24443 # 你的服务端口,默认是443,可以自行修改,本文修改为24443
#acme: # 域名证书自动配置
#domains:
# - www.baidu.com # 你的域名
#email: [email protected] # 你的邮箱
tls: # 域名证书手动配置
cert: /root/hysteria/www.baidu.com_bundle.crt # 你的域名证书
key: /root/hysteria/www.baidu.com.key # 你的域名证书
auth:
type: password
password: 123456 # 将123456改为你的密码
masquerade:
type: proxy
proxy:
url: https://www.baidu.com/ # 伪装网址,自行修改
rewriteHost: true
```
> 更多配置信息可参考本站文章:[Hysteria2 服务器配置整理](https://oldmoon.top/post/143)
## 客户端搭建
> **如果觉得原生客户端用起来不舒服,可以选择第三方客户端,移至本文最下方查看三方客户端相关文章。**
本文客户端使用的是Windows10系统,客户端配置步骤如下:
1. 创建文件夹用于存放hysteria相关文件,如`D:/hysteria`;
2. 进入`D:/hysteria`文件夹,将`hysteria-windows-amd64.exe`拷贝到当前文件夹;
3. 创建`config.yaml`文件,并编辑;
4. 将客户端配置信息填入`config.yaml`文件并保存,配置信息可参考 [客户端配置](#客户端配置);
5. 在本文件夹中打开cmd窗口,运行`hysteria-windows-amd64.exe`,如果输出如下信息,说明服务端连接成功:
```
client mode
connected to server {"count": 1}
use this URI to share your server {"uri": "hysteria2://[email protected]:24443/"}
HTTP proxy server listening {"addr": "127.0.0.1:8080"}
SOCKS5 server listening {"addr": "127.0.0.1:1080"}
```
### 客户端配置
```yaml
server: www.baidu.com:24443 # 你的服务端域名和端口
auth: 123456 # 你的服务端密码
bandwidth: # 带宽限制,本文未修改,更多信息请查看官方文档
up: 20 mbps
down: 100 mbps
socks5: # socks5代理,本文未修改,更多信息请查看官方文档
listen: 127.0.0.1:1080
http: # http代理,本文未修改,更多信息请查看官方文档
listen: 127.0.0.1:8080
```
### Windows10代理配置
经过以上操作,你已经将客户端及服务端全部运行完毕,但可能你会发现网络代理并未生效。
这是因为Windows10网络代理还需要在系统设置中进行相关设置,本文使用的设置信息如下图:

通过上图的配置后,我已经可以正常访问Google、YouTube等网站了。
## 总结
通过以上信息,你已经可以独自搭建Hysteria2的网络代理了,希望大家科学上网,汲取有用的信息!
## 拓展
### docker
可能对于习惯使用Docker的朋友,上面服务端搭建方式有点不适应,没问题,官方也提供了相应的Docker镜像,官方给出的`docker-compose.yml`示例如下:
```yaml
version: "3.9"
services:
hysteria:
image: tobyxdd/hysteria
container_name: hysteria
restart: always
network_mode: "host"
volumes:
- acme:/acme
- ./hysteria.yaml:/etc/hysteria.yaml
command: ["server", "-c", "/etc/hysteria.yaml"]
volumes:
acme:
```
其中`hysteria.yaml`内容就是本文中服务端搭建时用到的 [服务端配置](#服务端配置),即服务端的`config.yaml`。
当然域名相关的需求和配置还是一样需要的。
### 故障排除
在本人搭建hysteria2服务时,遇到一个问题:服务端运行成功,客户端一直连接不上服务端。
遇到这种情况可以从以下几个方面排查:
1. 域名是否正确映射到服务器;
2. 服务器端口是否正常开放?如本文中的`24443`;
3. 服务器的公网IP是否是其独立的IP?
本人的问题就是第三个原因导致的。当时使用的服务器是通过Google云赠送的`$100`购买的一个实例,通过命令行查看服务器IP发现并没有其提供的公网IP,换了一个其他厂商的服务器(命令行查看IP可以看到其公网IP的服务器)部署服务端,然后发现客户端可以正常连接了。
> PS:看来Google白嫖的东西还是不太行啊!
更多官方故障排除请查看:https://v2.hysteria.network/zh/docs/advanced/Troubleshooting/
## 第三方客户端
### 本站教程
- 【[Furious客户端连接Hysteria2](https://oldmoon.top/post/152)】
- 【[v2rayN客户端连接hysteria2](https://oldmoon.top/post/169)】
截止2023年11月9日,Hysteria官网贴出的支持的三方客户端有以下几个:
| 名称 | 描述 | 平台 | 模式 |
| ------------------- | ------------------------------------------------------------ | ----------------------------------- | -------------- |
| Clash.Meta | A rule-based tunnel in Go (v1.16.0 后支持 Hysteria 2) | Windows, Linux, macOS, Android, iOS | 客户端 |
| Furious | A PySide6-based cross platform GUI client that launches your beloved GFW to outer space. (0.2.6 后支持 Hysteria 2) | Windows, Linux, macOS | 客户端 |
| NekoBox for Android | Universal proxy toolchain for Android (1.2.4 后支持 Hysteria 2) | Android | 客户端 |
| Pharos Pro | MultiProtocol Proxy Client for iPhone/iPad (v1.8.3 后支持 Hysteria 2) | iOS | 客户端 |
| Shadowrocket | Rule based proxy utility client for iPhone/iPad (2.2.35 后支持 Hysteria 2) | iOS | 客户端 |
| sing-box | A universal proxy platform (1.5.0-beta.2 后支持 Hysteria 2) | Windows, Linux, macOS, Android, iOS | 客户端,服务端 |
## 赞助请求
**建站不易,以下是一个广告,还请动动您的小拇指,点击一次以示鼓励,谢谢!**
<!-- 文章内嵌广告位 -->
<div class="article-ads"></div>
> 就目前的访问量,即便每个访客都点一次广告,收入也不足以支付运营成本,`如果看不到广告,可能是网络原因或被拦截了,那就算了吧。祝你生活愉快~~`
<!-- more -->
END
评论
登录后查看和发表评论
前往登录