当前位置: 首页 > article >正文

【Hysteria】部署+测试

  1. 准备服务端代码和配置文件
    必要文件:
    服务端代码:确保项目代码完整,包含 main.go 和其他依赖文件。
    配置文件:server-config.yaml,示例内容如下:
tls:
  cert: /etc/hysteria/cert.pem
  key: /etc/hysteria/key.pem

auth:
  type: password
  password: Se7RAuFZ8Lzg

masquerade:
  type: proxy
  proxy:
    url: https://news.ycombinator.com/
    rewriteHost: true

自签名证书,使用 OpenSSL 生成证书:openssl req -x509 -newkey rsa:4096 -keyout key.pem -out cert.pem -days 365 -nodes
将生成的 cert.pem 和 key.pem 文件放在项目根目录。

  1. 编写 Dockerfile
    以下是完整的 Dockerfile:
# 使用 Go 官方镜像作为构建阶段
FROM golang:1.24.1-bookworm AS builder

# 设置 Go 模块代理(可选)
ARG GOPROXY="https://goproxy.cn,direct"
ENV GOPROXY=${GOPROXY}

# 安装 CA 根证书
RUN apt-get update && apt-get install -y ca-certificates && rm -rf /var/lib/apt/lists/*

# 将项目代码复制到容器中
COPY . /go/src/github.com/apernet/hysteria

# 将配置文件复制到容器中
COPY ./app/server-config.yaml /etc/hysteria/server-config.yaml

# 设置工作目录
WORKDIR /go/src/github.com/apernet/hysteria/app

# 在容器中编译可执行文件
RUN go build -o hysteria-server main.go

# 使用更小的基础镜像运行程序
FROM debian:bookworm-slim

# 安装 CA 根证书
RUN apt-get update && apt-get install -y ca-certificates && rm -rf /var/lib/apt/lists/*

# 将编译好的可执行文件从构建阶段复制到运行阶段
COPY --from=builder /go/src/github.com/apernet/hysteria/app/hysteria-server /usr/local/bin/hysteria-server

# 将自签名证书复制到容器中
COPY ./cert.pem /etc/hysteria/cert.pem
COPY ./key.pem /etc/hysteria/key.pem

# 设置容器启动时运行的命令
CMD ["hysteria-server", "server", "--config", "/etc/hysteria/server-config.yaml"]
  1. 构建和运行 Docker 容器
    构建镜像
    在项目根目录运行以下命令:
docker build -t hysteria-server .

运行容器
运行以下命令启动服务端容器,并映射 443 端口:

docker run -d --name hysteria-server -p 443:443/udp hysteria-server

如果报配置有问题 运行以下命令(使用 -v 参数挂载配置文件)

docker run -d --name hysteria-server -p 443:443/udp \
  -v $(pwd)/app/server-config.yaml:/etc/hysteria/server-config.yaml \
  hysteria-server

验证容器是否运行
运行以下命令查看容器状态:

docker ps

确保 PORTS 列显示 0.0.0.0:443->443/udp。

  1. 测试服务端代理协议
    配置客户端
    创建 client-config.yaml 文件,示例如下:
server: 127.0.0.1:443

auth: Se7RAuFZ8Lzg

bandwidth: 
  up: 20 mbps
  down: 100 mbps

socks5:
  listen: 127.0.0.1:1080

http:
  listen: 127.0.0.1:8080

tls:
  insecure: true

在项目根目录运行以下命令:

go build -o hysteria-client ./app/main.go

编译完成后,你会在当前目录下看到 hysteria-client.exe 文件

运行客户端,在客户端主机上运行以下命令:

.\hysteria-client.exe --config c:\Users\xxx(用户名)\Desktop\hysteria\app\client-config.yaml

测试代理协议
测试 HTTP 代理:

curl -x http://127.0.0.1:8080 http://example.com

如果返回正常的 HTML 内容,说明 HTTP 代理工作正常。

测试 SOCKS5 代理:

curl --socks5 127.0.0.1:1080 http://example.com

如果返回正常的 HTML 内容,说明 SOCKS5 代理工作正常。


http://www.kler.cn/a/614301.html

相关文章:

  • 虚拟机docker配置ES
  • Docker:ERROR [internal] load metadata for docker.io/library/java:8-alpine问题解决
  • UDS故障码(DTC)SAE格式和HEX相互转换公式
  • B3647 【模板】Floyd
  • ubuntu 安装mysql
  • 【计算机网络】网络原理
  • 智能路由系统-信息泄露漏洞挖掘
  • 第30周Java分布式入门 ThreadLocal
  • Tomcat深度解析:Java Web服务的核心引擎
  • Qwen-0.5b linux部署
  • sql注入语句学习
  • Scala总结(二)
  • 【leetcode】拆解与整合:分治并归的算法逻辑
  • 基于 IEC 61499 标准的开放自动化技术发展现状与展望
  • pycharm与python版本
  • Redis 实现分布式锁详解
  • 网络安全(一):常见的网络威胁及防范
  • 求解AX=XB 方法
  • STM32学习笔记之系统异常和中断(原理篇)
  • 如何在阿里云linux主机上部署Node.Js