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

【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 代理工作正常。

相关文章:

  • 深入了解Linux内核:task_struct结构详解
  • WinForm真入门-简介
  • react如何引用(按需加载)百度地图,并结合and组件化封装
  • 【leetcode】拆解与整合:分治并归的算法逻辑
  • ​​​​​​Spring Boot热部署插件
  • 【第33节】windows原理:初探PE文件
  • 用 pytorch 从零开始创建大语言模型(三):编码注意力机制
  • 详解CountDownLatch底层源码
  • SQL:CASE WHEN使用详解
  • 二层网络综合实验
  • 从 JDK 11 到 JDK 17:OpenRewrite 实战 Spring Boot 升级指南
  • 项目-苍穹外卖(十七) Apache POI+导出数据
  • 路由器DHCP地址池冲突
  • 【网络协议详解】—— STP 、RSTP、MSTP技术(学习笔记)
  • 15 网络编程:三要素(IP地址、端口、协议)、UDP通信实现和TCP通信实现 (黑马Java视频笔记)
  • C语言复习笔记--操作符详解(下)
  • 蓝桥杯 之 LCA算法
  • 搜广推校招面经六十一
  • 多线程案例-单例模式
  • Tcp套接字编程
  • 陈文清:推进扫黑除恶常态化走深走实,有力回应人民群众对安居乐业的新期待
  • 浙江官宣:五一假期,没电、没气、没油车辆全部免费拖离高速
  • 一周人物|卡鲁等入围英国特纳奖,李学明新展中国美术馆
  • 金科服务:大股东博裕资本提出无条件强制性现金要约收购,总代价约17.86亿港元
  • 河北:开展领导干部任性用权等形式主义官僚主义问题专项整治
  • 国家发改委:我国能源进口来源多元,企业减少甚至停止自美能源进口对国内能源供应没有影响