mirror of
https://github.com/okxlin/appstore.git
synced 2025-07-14 13:22:18 +08:00
365 lines
6.7 KiB
Markdown
365 lines
6.7 KiB
Markdown
# wgcf-docker
|
|
|
|
CloudFlare warp in docker
|
|
|
|
fork from: https://github.com/Neilpang/wgcf-docker
|
|
|
|
#### What improvements did I make:
|
|
|
|
1. Limit the alpine version to 3.17 to avoid errors caused by version issues.
|
|
2. Added socks5 proxy service
|
|
|
|
Run example:
|
|
|
|
```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
|
|
```
|
|
|
|
Now you can use the socks proxy on the host machine:
|
|
|
|
```shell
|
|
curl --socks5 127.0.0.1:7889 -6 ip.p3terx.com
|
|
```
|
|
|
|
## Configurable SOCKS5 Proxy with Environment Variables
|
|
|
|
This SOCKS5 proxy supports configuration through environment variables. You can customize the proxy settings using the following variables: USER, PASSWORD, PORT, and HOST. Authentication (auth) will only be enabled if both the USER and PASSWORD variables are provided.
|
|
|
|
### Usage
|
|
|
|
To configure the SOCKS5 proxy, follow these steps:
|
|
|
|
1. Set the following environment variables:
|
|
|
|
- USER: The username for authentication (optional).
|
|
- PASSWORD: The password for authentication (optional).
|
|
- PORT: The port number for the proxy server (default: 1080).
|
|
- HOST: The host address for the proxy server (default: 0.0.0.0).
|
|
|
|
Note: Authentication will be enabled only if both the USER and PASSWORD variables are provided. If either one is missing, authentication will not be enabled.
|
|
|
|
2. Start the SOCKS5 proxy using your preferred method, passing the environment variables as arguments.
|
|
|
|
Example:
|
|
|
|
```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
|
|
```
|
|
|
|
This command will start the SOCKS5 proxy with the specified configuration.
|
|
|
|
3. The SOCKS5 proxy will be accessible on the specified host and port. Authentication will be enforced only if both the USER and PASSWORD variables are provided.
|
|
|
|
That's it! You can now configure the SOCKS5 proxy using environment variables, with the option to enable authentication by providing both the USER and PASSWORD variables.
|
|
|
|
|
|
## The following is the readme of the original project
|
|
|
|
1. Run a single container:
|
|
|
|
```
|
|
|
|
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
|
|
|
|
|
|
|
|
```
|
|
|
|
or:
|
|
|
|
```
|
|
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
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
2. If aonther container needs to use the wgcf network, run it like:
|
|
|
|
```
|
|
|
|
docker run --rm -it --network container:wgcf curlimages/curl curl ipinfo.io
|
|
|
|
```
|
|
|
|
3. Docker-compose example:
|
|
|
|
```
|
|
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
|
|
|
|
|
|
|
|
```
|
|
|
|
or:
|
|
|
|
```
|
|
|
|
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
|
|
|
|
|
|
|
|
|
|
|
|
```
|