From 4ae83db75c859d403fbb8e7df133234965dc0f6f Mon Sep 17 00:00:00 2001 From: GuanM <30427262+sxhoio@users.noreply.github.com.> Date: Fri, 6 Sep 2024 12:53:20 +0800 Subject: [PATCH 1/2] =?UTF-8?q?Docker=20=E6=94=AF=E6=8C=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Dockerfile | 12 ++++++++++++ 1 file changed, 12 insertions(+) create mode 100644 Dockerfile diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..8a3195e --- /dev/null +++ b/Dockerfile @@ -0,0 +1,12 @@ +# 构建阶段 +FROM golang:1.20-alpine AS builder +WORKDIR /app +COPY main.go . +RUN go mod init SecureTCPRelay +RUN go mod tidy +RUN CGO_ENABLED=0 GOOS=linux go build -a -installsuffix cgo -o SecureTCPRelay . +# 运行阶段 +FROM scratch +COPY --from=builder /app/SecureTCPRelay /SecureTCPRelay +ENTRYPOINT ["/SecureTCPRelay"] +CMD ["-h"] \ No newline at end of file From be492d721872f7d76f966b3ff33f6180e537b37e Mon Sep 17 00:00:00 2001 From: GuanM <30427262+sxhoio@users.noreply.github.com.> Date: Fri, 6 Sep 2024 13:15:39 +0800 Subject: [PATCH 2/2] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E6=96=87=E6=A1=A3?= =?UTF-8?q?=E7=9A=84Docker=E6=94=AF=E6=8C=81=E9=83=A8=E5=88=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 7e2640f..c84e556 100644 --- a/README.md +++ b/README.md @@ -22,25 +22,34 @@ go build ``` ## 使用 - 启动代理服务器并配置监听地址、转发目标地址、允许的 IP 范围和域名列表: +> 直接使用 ```bash ./SecureTCPRelay -src -dst -cidr -domain ``` +> 使用Docker +```bash +docker run --name -host -d sxhoio/securetcprelay -src -dst -cidr -domain +``` - `-src`: 本地监听的 IP 和端口(默认 `0.0.0.0:1234`)。 - `-dst`: 转发的目标 IP 和端口,多个目标用逗号分隔。若为 非TLS 和 TLS 地址,第一个为 非TLS,第二个为 TLS。若为 TCP 模式,随机选择一个目标进行转发。 - `-cidr`: 允许的来源 IP 范围 (CIDR),多个范围用逗号分隔(默认 `0.0.0.0/0,::/0`)。 - `-domain`: 允许的域名列表,支持通配符,多个域名用逗号分隔(默认 `*` 表示 TCP 转发模式)。 -### 示例 +#### 示例 要在 `0.0.0.0:8080` 上监听并将流量转发到 `192.168.1.100:80` 和 `192.168.1.100:443`,同时允许来自 `192.168.1.0/24` 的 IP 并允许访问 `abc.com` 和 `*.example.org` 的域名,你可以使用以下命令: +> 直接运行 ```bash ./SecureTCPRelay -src 0.0.0.0:8080 -dst 192.168.1.100:80,192.168.1.100:443 -cidr 192.168.1.0/24 -domain abc.com,*.example.org ``` +> 使用Docker +```bash +docker run --name securetcprelay -host -d sxhoio/securetcprelay -src 0.0.0.0:8080 -dst 192.168.1.100:80,192.168.1.100:443 -cidr 192.168.1.0/24 -domain abc.com,*.example.org +``` 非TLS(HTTP & WS)的请求将被转发到 `192.168.1.100:80` ,TLS(HTTPS & WSS)的请求将被转发到 `192.168.1.100:443` ## 配置说明