Update docker-compose.yml to use "${COMPOSE_PROJECT_NAME}" for the hysteria service container name, making it dynamic based on the project folder name for easier identification and to avoid naming conflicts in multi-project Docker deployments.
|
||
|---|---|---|
| bin | ||
| config_template | ||
| key | ||
| .editorconfig | ||
| .gitignore | ||
| docker-compose.yml | ||
| install.sh | ||
| README.md | ||
使用说明
项目描述
项目使用自签名证书搭建 Hysteria 代理服务器,无需准备域名。
默认使用 bing.com 域名作为伪装。
快速开始
方法一:使用交互脚本(推荐新手)
确认安装好下列软件
- git
- curl
下载项目代码
git clone https://gitea.9001001.xyz/William/hysteria_docker.git
进入项目目录
cd hysteria_docker
运行安装脚本,选择选项1(安装并启动)
bash ./install.sh
脚本会自动检测并安装必要的软件(Docker、Docker Compose、jq),然后初始化配置并启动容器。
方法二:手动部署服务器端
如果您更喜欢手动控制,或需要在不同环境下进行自定义,请按以下步骤操作。
确认安装好下列软件
- docker
- docker-compose
- git
- jq
- curl
下载项目代码
git clone https://gitea.9001001.xyz/William/hysteria_docker.git
进入项目目录
cd hysteria_docker
执行命令初始化配置并启动容器
bash ./bin/run.sh
其他说明
install.sh 脚本说明
项目提供了 install.sh 交互脚本,可以帮助您轻松管理 Hysteria 服务。运行脚本后,根据提示选择数字编号来执行相应操作:
- 安装并启动 - 自动检测并安装所需软件(Docker、Docker Compose、jq),然后初始化配置并启动服务。
- 生成配置/重置配置 - 重新生成 Hysteria 配置文件。
- 启动容器 - 仅启动 Hysteria 容器(假设配置已存在)。
- 查看分享链接 - 显示客户端可用的配置链接。
- 停止容器 - 停止并移除运行中的容器。
- 更新镜像 - 下载最新的 Hysteria docker镜像。
- 更新端口 - 修改服务监听端口。
使用方法:进入项目目录后,运行 bash ./install.sh 并根据菜单选择。
查看日志
检查服务端是否启动成功
docker-compose logs | head -n 50
查看分享链接
服务器端启动成功后, 进入项目目录, 执行以下命令
bash ./bin/print_share_link.sh
电脑配置客户端
客户端软件(选择其中一种)
客户端配置 把分享链接直接粘贴到客户端 分享链接获取, 参考"查看分享链接"
文件解析
文件bin/gen_self_tls.sh
用来生成自签证书和设置伪装域名。该脚本实际执行的 OpenSSL 命令:
# 生成自签名的 ECDSA 证书并设置有效期为 100 年
openssl req \
-x509 \ # 生成自签名的X.509证书
-nodes \ # 不使用加密算法保护私钥
-newkey ec:<(openssl ecparam -name prime256v1) \ # 使用 bash process substitution 生成 ECDSA 私钥
-keyout ./key/server.key \ # 将生成的私钥保存到项目 key 目录
-out ./key/server.crt \ # 将生成的自签名证书保存到项目 key 目录
-subj "/CN=yourdomain.com" \ # 设置证书主题的 CN(Common Name)
-days 36500 # 设置证书有效期为 36500 天(约100年)
-
openssl是一个开源的加密工具包,提供了一系列用于处理安全通信的命令和库。它支持多种加密算法、数字证书和相关的功能,包括生成和签名证书、创建和验证数字签名、加解密数据等。常见用途包括创建和管理 SSL/TLS 证书、进行加密通信以及执行与加密相关的各种操作。 -
-subj参数用于在 OpenSSL 命令中设置证书主题字段,其中 "/CN=example.com" 指定了通用名称 (Common Name, CN),表示证书关联的主机名。