This commit is contained in:
vincent 2024-01-30 14:40:48 +08:00
commit 3ad49d2f42
6 changed files with 118 additions and 0 deletions

71
README.md Normal file
View File

@ -0,0 +1,71 @@
# 使用说明
项目使用自有证书搭建, 无需要准备域名.
默认使用`bing.com`域名作为伪装.
## 快速开始
启动项目
```bash
docker-compose up -d
```
查看日志
```bash
docker-compose logs | head -n 50
```
## 客户端配置
无域名使用IP搭建download-bandwidth 根据实际填写
```yaml
地址: 服务器ip
端口: 8443
密码: RhCLi%T&MFe5&de # 服务器端密码
传输安全层: tls
SNI: bing.com # 伪装域名
跳过证书验证: true
download-bandwidth=200
```
## 修改域名
如果需要修改伪装域名
1. 根据新域名生成证书文件
- 修改gen_cent.sh文件, 把`-subj "/CN=bing.com"`改为其他域名, 例如`-subj "/CN=abc.com" `
- 然后执行`bash gen_cert.sh`重新生成证书文件`server.crt`和`server.key`
2. 修改hysteria.yaml文件
修改masquerade.proxy.url
```yml
masquerade:
type: proxy
proxy:
url: https://改为其他tls1.3的域名
rewriteHost: true
```
## 文件解析
- 文件`gen_cert.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" \ # 设置证书的主题字段,这里是 Common Name (CN)
-days 36500 \ # 设置证书的有效期为 36500 天约100年
```
- `-subj `参数用于在 OpenSSL 命令中设置证书主题字段,其中 "/CN=example.com" 指定了通用名称 (Common Name, CN),表示证书关联的主机名。
- `openssl`是一个开源的加密工具包提供了一系列用于处理安全通信的命令和库。它支持多种加密算法、数字证书和相关的功能包括生成和签名证书、创建和验证数字签名、加解密数据等。常见用途包括创建和管理SSL/TLS证书、进行加密通信以及执行与加密相关的各种操作。
-`server.crt`和`server.key`是证书文件
- 文件`hysteria.yaml`
hysteria服务器端配置文件

15
docker-compose.yml Normal file
View File

@ -0,0 +1,15 @@
version: "3.9"
services:
hysteria:
image: tobyxdd/hysteria
container_name: hysteria
restart: always
network_mode: "host"
volumes:
- acme:/acme
- ./hysteria.yaml:/etc/hysteria.yaml
- ./server.crt:/etc/hysteria/server.crt
- ./server.key:/etc/hysteria/server.key
command: ["server", "-c", "/etc/hysteria.yaml"]
volumes:
acme:

1
gen_cert.sh Normal file
View File

@ -0,0 +1 @@
openssl req -x509 -nodes -newkey ec:<(openssl ecparam -name prime256v1) -keyout ./server.key -out ./server.crt -subj "/CN=bing.com" -days 36500

15
hysteria.yaml Normal file
View File

@ -0,0 +1,15 @@
listen: :8443
tls:
cert: /etc/hysteria/server.crt
key: /etc/hysteria/server.key
auth:
type: password
password: "UuYAsK^3hwB8H9%"
masquerade:
type: proxy
proxy:
url: https://bing.com
rewriteHost: true

11
server.crt Normal file
View File

@ -0,0 +1,11 @@
-----BEGIN CERTIFICATE-----
MIIBfTCCASOgAwIBAgIUR65F9ix0BBWiw284NXIW5RoGvgwwCgYIKoZIzj0EAwIw
EzERMA8GA1UEAwwIYmluZy5jb20wIBcNMjQwMTMwMDQwNTIwWhgPMjEyNDAxMDYw
NDA1MjBaMBMxETAPBgNVBAMMCGJpbmcuY29tMFkwEwYHKoZIzj0CAQYIKoZIzj0D
AQcDQgAEwRtxXqEGibaVkK5eVWjzag7UaCG4z48wRb6Kg8N/HQo2hxU/EivPmCB3
+hcj2dlZNFSGojOdr21mhI6Oqe/s0aNTMFEwHQYDVR0OBBYEFCkfq4KFllbH2zEO
GeCeBXOOJccXMB8GA1UdIwQYMBaAFCkfq4KFllbH2zEOGeCeBXOOJccXMA8GA1Ud
EwEB/wQFMAMBAf8wCgYIKoZIzj0EAwIDSAAwRQIgbQoaD89WuimuPuVZJDX17kJc
br9bR0nl91eLuTrWfAYCIQC2OyHg4BWcw6W+lvRw/wH1OpIqqC7+Mk8zOgor4d0C
tg==
-----END CERTIFICATE-----

5
server.key Normal file
View File

@ -0,0 +1,5 @@
-----BEGIN PRIVATE KEY-----
MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgukBlJTuRZPhgqQA9
ruBWkS9onZJCJ/NzyMDARwXOC8ShRANCAATBG3FeoQaJtpWQrl5VaPNqDtRoIbjP
jzBFvoqDw38dCjaHFT8SK8+YIHf6FyPZ2Vk0VIaiM52vbWaEjo6p7+zR
-----END PRIVATE KEY-----