精简提交历史记录
This commit is contained in:
364
apps/wgcf-socks5-proxy/README.md
Normal file
364
apps/wgcf-socks5-proxy/README.md
Normal file
@@ -0,0 +1,364 @@
|
||||
# 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
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
```
|
||||
Reference in New Issue
Block a user