Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 12 additions & 0 deletions Dockerfile
Original file line number Diff line number Diff line change
@@ -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"]
13 changes: 11 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -22,25 +22,34 @@ go build
```

## 使用

启动代理服务器并配置监听地址、转发目标地址、允许的 IP 范围和域名列表:

> 直接使用
```bash
./SecureTCPRelay -src <local-address> -dst <forward-addresses> -cidr <allowed-cidrs> -domain <allowed-domains>
```
> 使用Docker
```bash
docker run --name <container-name> -host -d sxhoio/securetcprelay -src <local-address> -dst <forward-addresses> -cidr <allowed-cidrs> -domain <allowed-domains>
```

- `-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`

## 配置说明
Expand Down