diff --git a/app-list.png b/app-list.png index 5aca050c..3f98c6ab 100644 Binary files a/app-list.png and b/app-list.png differ diff --git a/apps/wgcf-socks5-proxy/README.md b/apps/wgcf-socks5-proxy/README.md new file mode 100644 index 00000000..cab0306c --- /dev/null +++ b/apps/wgcf-socks5-proxy/README.md @@ -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 + + + + + +``` diff --git a/apps/wgcf-socks5-proxy/data.yml b/apps/wgcf-socks5-proxy/data.yml new file mode 100644 index 00000000..6b76d565 --- /dev/null +++ b/apps/wgcf-socks5-proxy/data.yml @@ -0,0 +1,20 @@ +name: wgcf-socks5-proxy +tags: + - 工具 +title: docker里的CloudFlare warp socks5 +type: 工具 +description: docker里的CloudFlare warp socks5 +additionalProperties: + key: wgcf-socks5-proxy + name: wgcf-socks5-proxy + tags: + - Tool + shortDescZh: docker里的CloudFlare warp socks5 + shortDescEn: CloudFlare warp socks5 in docker + type: tool + crossVersionUpdate: false + limit: 0 + recommend: 0 + website: https://github.com/activeliang/wgcf-socks5-proxy + github: https://github.com/activeliang/wgcf-socks5-proxy + document: https://github.com/activeliang/wgcf-socks5-proxy \ No newline at end of file diff --git a/apps/wgcf-socks5-proxy/latest/.env.sample b/apps/wgcf-socks5-proxy/latest/.env.sample new file mode 100644 index 00000000..0125f287 --- /dev/null +++ b/apps/wgcf-socks5-proxy/latest/.env.sample @@ -0,0 +1,4 @@ +CONTAINER_NAME="wgcf-socks5-proxy" +PANEL_APP_PORT_HTTP="40055" +DATA_PATH="./data" +IP_COMMAND="" \ No newline at end of file diff --git a/apps/wgcf-socks5-proxy/latest/data.yml b/apps/wgcf-socks5-proxy/latest/data.yml new file mode 100644 index 00000000..5e3a4e58 --- /dev/null +++ b/apps/wgcf-socks5-proxy/latest/data.yml @@ -0,0 +1,24 @@ +additionalProperties: + formFields: + - default: 40055 + edit: true + envKey: PANEL_APP_PORT_HTTP + labelEn: Port + labelZh: 端口 + required: true + rule: paramPort + type: number + - default: ./data + edit: true + envKey: DATA_PATH + labelEn: Data folder path + labelZh: 数据文件夹路径 + required: true + type: text + - default: "" + edit: true + envKey: IP_COMMAND + labelEn: IPV4/IPV6 ONLY (FILL IN "-4"; "-6") + labelZh: 仅IPV4/IPV6(填"-4";"-6") + required: false + type: text diff --git a/apps/wgcf-socks5-proxy/latest/docker-compose.yml b/apps/wgcf-socks5-proxy/latest/docker-compose.yml new file mode 100644 index 00000000..d6e678cf --- /dev/null +++ b/apps/wgcf-socks5-proxy/latest/docker-compose.yml @@ -0,0 +1,25 @@ +version: '3' +services: + wgcfd: + container_name: ${CONTAINER_NAME} + restart: always + networks: + - 1panel-network + ports: + - "${PANEL_APP_PORT_HTTP}:1080" + volumes: + - "${DATA_PATH}:/wgcf" + - /lib/modules:/lib/modules + privileged: true + cap_add: + - net_admin + sysctls: + - net.ipv6.conf.all.disable_ipv6=0 + command: ${IP_COMMAND} + image: activeliang/wgcf-socks5-proxy:latest + labels: + createdBy: "Apps" + +networks: + 1panel-network: + external: true diff --git a/apps/wgcf-socks5-proxy/logo.png b/apps/wgcf-socks5-proxy/logo.png new file mode 100644 index 00000000..023fe72d Binary files /dev/null and b/apps/wgcf-socks5-proxy/logo.png differ