Go to file
2025-11-20 19:20:47 +08:00
bin update 2025-11-20 19:19:48 +08:00
config_template fix bug 2025-11-20 12:19:02 +08:00
key 修改整数文件路径 2024-05-15 19:51:10 +08:00
.editorconfig update 2024-05-16 00:38:29 +08:00
.gitignore 取消跟踪config.json文件 2025-11-20 19:20:47 +08:00
docker-compose.yml update 2025-01-11 13:14:03 +08:00
install.sh udpate 2025-11-20 18:34:01 +08:00
README.md update 2025-01-11 14:25:41 +08:00

使用说明

项目使用自有证书搭建, 无需要准备域名. 默认使用bing.com域名作为伪装.

快速开始

远程服务器, 部署服务器端

确认安装好下列软件

  • docker
  • docker-compose
  • git
  • jq
  • curl

下载项目代码

git clone https://gitea.9001001.xyz/William/hysteria_docker.git

进入项目目录

cd hysteria_docker

执行命令初始化配置并启动容器

bash ./bin/run.sh

查看日志 检查服务端是否启动成功

docker-compose logs | head -n 50

查看分享链接

服务器端启动成功后, 进入项目目录, 执行以下命令

bash ./bin/print_share_link.sh

电脑配置客户端

客户端软件(选择其中一种)

客户端配置

  • (方法 1)把分享链接直接粘贴到客户端 分享链接获取, 参考"查看分享链接"

  • (方法 2)手工输入配置 无域名,使用 IP 搭建download-bandwidth 根据实际填写

    地址: 服务器ip
    端口: 8443    # 服务器端端口
    密码: RhCLi%T&MFe5&de # 服务器端密码
    传输安全层: tls
    SNI: bing.com  # 伪装域名
    跳过证书验证: true
    download-bandwidth=200
    

服务器端,修改域名

如果需要修改其他伪装域名, 进入项目目录, 执行以下命令

bash ./bin/set_domain.sh expedia.com

服务器端,修改端口

修改config.json配置文件

{
  "listen": ":9999" // 改为其他端口
  // 省略其他代码...
}

服务器端, 升级镜像

bash ./bin/update_docker_images.sh

文件解析

文件set_domain.sh

用来生成自签证书和设置伪装域名

# 生成自签名的 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.crtserver.key是证书文件

文件config.json是服务器端配置文件

参考