hysteria_docker/README.md
2025-01-11 14:25:41 +08:00

135 lines
3.4 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 使用说明
项目使用自有证书搭建, 无需要准备域名.
默认使用`bing.com`域名作为伪装.
## 快速开始
### 远程服务器, 部署服务器端
确认安装好下列软件
- docker
- docker-compose
- git
- jq
- curl
下载项目代码
```bash
git clone https://gitea.9001001.xyz/William/hysteria_docker.git
```
进入项目目录
```bash
cd hysteria_docker
```
执行命令初始化配置并启动容器
```bash
bash ./bin/run.sh
```
查看日志
检查服务端是否启动成功
```bash
docker-compose logs | head -n 50
```
### 查看分享链接
服务器端启动成功后, 进入项目目录, 执行以下命令
```bash
bash ./bin/print_share_link.sh
```
### 电脑配置客户端
客户端软件(选择其中一种)
- [V2rayN](https://github.com/2dust/v2rayN/releases)
- [Nekoray](https://github.com/MatsuriDayo/nekoray/releases)
- [Hyteria 官方提及的第三方客户端](https://v2.hysteria.network/zh/docs/getting-started/3rd-party-apps/)
客户端配置
- (方法 1)把分享链接直接粘贴到客户端
分享链接获取, 参考"查看分享链接"
- (方法 2)手工输入配置
无域名,使用 IP 搭建download-bandwidth 根据实际填写
```yaml
地址: 服务器ip
端口: 8443 # 服务器端端口
密码: RhCLi%T&MFe5&de # 服务器端密码
传输安全层: tls
SNI: bing.com # 伪装域名
跳过证书验证: true
download-bandwidth=200
```
## 服务器端,修改域名
如果需要修改其他伪装域名, 进入项目目录, 执行以下命令
```bash
bash ./bin/set_domain.sh expedia.com
```
## 服务器端,修改端口
修改`config.json`配置文件
```json
{
"listen": ":9999" // 改为其他端口
// 省略其他代码...
}
```
## 服务器端, 升级镜像
```bash
bash ./bin/update_docker_images.sh
```
## 文件解析
### 文件`set_domain.sh`
用来生成自签证书和设置伪装域名
```bash
# 生成自签名的 ECDSA 证书并设置有效期为 100 年
# 使用 OpenSSL 的证书请求工具
openssl req \
-x509 \ # 生成自签名的X.509证书
-nodes \ # 不使用加密算法保护私钥
-newkey ec:<(openssl ecparam -name prime256v1) \ # 生成 ECDSA 私钥和公钥,使用 prime256v1 曲线
-keyout /etc/hysteria/server.key \ # 将生成的私钥保存到指定路径
-out /etc/hysteria/server.crt \ # 将生成的自签名证书保存到指定路径
-subj "/CN=bing.com" \ # 设置证书的主题字段CN是 Common Name (CN)
-days 36500 \ # 设置证书的有效期为 36500 天约100年
```
- `openssl`是一个开源的加密工具包,提供了一系列用于处理安全通信的命令和库。它支持多种加密算法、数字证书和相关的功能,包括生成和签名证书、创建和验证数字签名、加解密数据等。常见用途包括创建和管理 SSL/TLS 证书、进行加密通信以及执行与加密相关的各种操作。
- `-subj `参数用于在 OpenSSL 命令中设置证书主题字段,其中 "/CN=example.com" 指定了通用名称 (Common Name, CN),表示证书关联的主机名。
### 文件`server.crt`和`server.key`是证书文件
### 文件`config.json`是服务器端配置文件
## 参考
- https://v2.hysteria.network/zh/docs/getting-started/Server/
- https://v2rayssr.com/hysteria2.html
- https://www.iiiam.in/articles/server/deploy-hysteria2