1
0
1Panel-Appstore/apps/wgcf-socks5-proxy/README.md

364 lines
6.7 KiB
Markdown
Raw Normal View History

2023-11-09 19:15:01 +08:00
# wgcf-docker
2025-06-17 22:14:50 +08:00
CloudFlare warp 的 docker 版
2023-11-09 19:15:01 +08:00
2025-06-17 22:14:50 +08:00
派生自: [https://github.com/Neilpang/wgcf-docker](https://github.com/Neilpang/wgcf-docker)
2023-11-09 19:15:01 +08:00
2025-06-17 22:14:50 +08:00
#### 我做了哪些改进:
2023-11-09 19:15:01 +08:00
2025-06-17 22:14:50 +08:00
1. 限制使用 3.17 版本的 Alpine以避免因版本问题导致的错误。
2. 添加了 socks5 代理服务
2023-11-09 19:15:01 +08:00
2025-06-17 22:14:50 +08:00
运行示例:
2023-11-09 19:15:01 +08:00
```shell
docker run --rm -it \
--name wgcf \
--sysctl net.ipv6.conf.all.disable_ipv6=0 \
--privileged --cap-add net_admin \
-v /lib/modules:/lib/modules \
-v $(pwd)/wgcf:/wgcf \
-p 7889:1080 \
activeliang/wgcf-socks5-proxy -6
```
2025-06-17 22:14:50 +08:00
现在您可以在宿主机上使用 socks 代理:
2023-11-09 19:15:01 +08:00
```shell
curl --socks5 127.0.0.1:7889 -6 ip.p3terx.com
```
2025-06-17 22:14:50 +08:00
## 可配置的 SOCKS5 代理通过环境变量
此 SOCKS5 代理支持通过环境变量进行配置。您可以使用以下变量自定义代理设置USER、PASSWORD、PORT 和 HOST。只有当提供了 USER 和 PASSWORD 变量时认证auth才会被启用。
### 使用方法
要配置 SOCKS5 代理,请按照以下步骤操作:
1. 设置以下环境变量:
* USER认证的用户名可选
* PASSWORD认证的密码可选
* 端口代理服务器的端口号默认1080
* 代理服务器的主机地址默认0.0.0.0)。
注意:只有当 USER 和 PASSWORD 变量都提供时,才会启用身份验证。如果缺少任何一个,身份验证将不会启用。
2. 使用您首选的方法启动 SOCKS5 代理,并将环境变量作为参数传递。
示例:
```bash
PASSWORD=mypassword PORT=1080 HOST=0.0.0.0 start_proxy.sh
docker run --rm -it \
--name wgcf \
--sysctl net.ipv6.conf.all.disable_ipv6=0 \
--privileged --cap-add net_admin \
-v /lib/modules:/lib/modules \
-v $(pwd)/wgcf:/wgcf \
-p 7889:1080 \
-e USER=myuser \
-e PASSWORD=mypassword \
-e PORT=1080 \
-e HOST=0.0.0.0 \
activeliang/wgcf-socks5-proxy -6
```
此命令将使用指定的配置启动 SOCKS5 代理。
3. SOCKS5 代理将在指定的主机和端口上可用。仅当提供了 USER 和 PASSWORD 变量时才会强制执行身份验证。
就这样!你现在可以使用环境变量配置 SOCKS5 代理,并可以通过提供 USER 和 PASSWORD 变量来启用身份验证。
## 以下是原始项目的 README
1. 运行单个容器:
2023-11-09 19:15:01 +08:00
```
docker run --rm -it \
--name wgcf \
--sysctl net.ipv6.conf.all.disable_ipv6=0 \
--privileged --cap-add net_admin \
-v /lib/modules:/lib/modules \
-v $(pwd)/wgcf:/wgcf \
neilpang/wgcf-docker
The above command will enable both ipv4 and ipv6, you can enable ipv4 or ipv6 only like following:
#enable ipv4 only:
docker run --rm -it \
--name wgcf \
--sysctl net.ipv6.conf.all.disable_ipv6=0 \
--privileged --cap-add net_admin \
-v /lib/modules:/lib/modules \
-v $(pwd)/wgcf:/wgcf \
neilpang/wgcf-docker -4
#enable ipv6 only:
docker run --rm -it \
--name wgcf \
--sysctl net.ipv6.conf.all.disable_ipv6=0 \
--privileged --cap-add net_admin \
-v /lib/modules:/lib/modules \
-v $(pwd)/wgcf:/wgcf \
neilpang/wgcf-docker -6
```
2025-06-17 22:14:50 +08:00
或者:
2023-11-09 19:15:01 +08:00
```
docker run --rm -it \
--name wgcf \
--sysctl net.ipv6.conf.all.disable_ipv6=0 \
--privileged --cap-add net_admin \
-v /lib/modules:/lib/modules \
-v $(pwd)/wgcf:/wgcf \
neilpang/wgcf-docker:alpine
The above command will enable both ipv4 and ipv6, you can enable ipv4 or ipv6 only like following:
#enable ipv4 only:
docker run --rm -it \
--name wgcf \
--sysctl net.ipv6.conf.all.disable_ipv6=0 \
--privileged --cap-add net_admin \
-v /lib/modules:/lib/modules \
-v $(pwd)/wgcf:/wgcf \
neilpang/wgcf-docker:alpine -4
#enable ipv6 only:
docker run --rm -it \
--name wgcf \
--sysctl net.ipv6.conf.all.disable_ipv6=0 \
--privileged --cap-add net_admin \
-v /lib/modules:/lib/modules \
-v $(pwd)/wgcf:/wgcf \
neilpang/wgcf-docker:alpine -6
```
2025-06-17 22:14:50 +08:00
2. 如果另一个容器需要使用 wgcf 网络,可以这样运行:
2023-11-09 19:15:01 +08:00
```
docker run --rm -it --network container:wgcf curlimages/curl curl ipinfo.io
```
2025-06-17 22:14:50 +08:00
3. Docker-compose 示例:
2023-11-09 19:15:01 +08:00
```
Enable both ipv4 and ipv6 by default:
version: "2.4"
services:
wgcf:
image: neilpang/wgcf-docker:latest
volumes:
- ./wgcf:/wgcf
- /lib/modules:/lib/modules
privileged: true
sysctls:
net.ipv6.conf.all.disable_ipv6: 0
cap_add:
- NET_ADMIN
test:
image: curlimages/curl
network_mode: "service:wgcf"
depends_on:
- wgcf
command: curl ipinfo.io
Enable ipv6 only:
version: "2.4"
services:
wgcf:
image: neilpang/wgcf-docker:latest
volumes:
- ./wgcf:/wgcf
- /lib/modules:/lib/modules
privileged: true
sysctls:
net.ipv6.conf.all.disable_ipv6: 0
cap_add:
- NET_ADMIN
command: "-6"
test:
image: curlimages/curl
network_mode: "service:wgcf"
depends_on:
- wgcf
command: curl ipv6.ip.sb
Enable ipv4 only:
version: "2.4"
services:
wgcf:
image: neilpang/wgcf-docker:latest
volumes:
- ./wgcf:/wgcf
- /lib/modules:/lib/modules
privileged: true
sysctls:
net.ipv6.conf.all.disable_ipv6: 0
cap_add:
- NET_ADMIN
command: "-4"
test:
image: curlimages/curl
network_mode: "service:wgcf"
depends_on:
- wgcf
command: curl ipinfo.io
```
2025-06-17 22:14:50 +08:00
或者:
2023-11-09 19:15:01 +08:00
```
Enable both ipv4 and ipv6 by default:
version: "2.4"
services:
wgcf:
image: neilpang/wgcf-docker:alpine
volumes:
- ./wgcf:/wgcf
- /lib/modules:/lib/modules
privileged: true
sysctls:
net.ipv6.conf.all.disable_ipv6: 0
cap_add:
- NET_ADMIN
test:
image: curlimages/curl
network_mode: "service:wgcf"
depends_on:
- wgcf
command: curl ipinfo.io
Enable ipv6 only:
version: "2.4"
services:
wgcf:
image: neilpang/wgcf-docker:alpine
volumes:
- ./wgcf:/wgcf
- /lib/modules:/lib/modules
privileged: true
sysctls:
net.ipv6.conf.all.disable_ipv6: 0
cap_add:
- NET_ADMIN
command: "-6"
test:
image: curlimages/curl
network_mode: "service:wgcf"
depends_on:
- wgcf
command: curl ipv6.ip.sb
Enable ipv4 only:
version: "2.4"
services:
wgcf:
image: neilpang/wgcf-docker:alpine
volumes:
- ./wgcf:/wgcf
- /lib/modules:/lib/modules
privileged: true
sysctls:
net.ipv6.conf.all.disable_ipv6: 0
cap_add:
- NET_ADMIN
command: "-4"
test:
image: curlimages/curl
network_mode: "service:wgcf"
depends_on:
- wgcf
command: curl ipinfo.io
2025-06-17 22:14:50 +08:00
```