{"id":27160378,"url":"https://github.com/mon-ius/docker-warp-socks","last_synced_at":"2025-05-16T05:05:33.136Z","repository":{"id":130310419,"uuid":"605376490","full_name":"Mon-ius/Docker-Warp-Socks","owner":"Mon-ius","description":"Connet to CloudFlare WARP, exposing `socks5` proxy all together.","archived":false,"fork":false,"pushed_at":"2025-03-19T16:16:00.000Z","size":233,"stargazers_count":424,"open_issues_count":1,"forks_count":50,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-04-05T20:35:38.942Z","etag":null,"topics":["chatgpt","cloudflare","docker","warp-plus","wireguard"],"latest_commit_sha":null,"homepage":"https://hub.docker.com/r/monius/docker-warp-socks","language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Mon-ius.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-02-23T02:46:05.000Z","updated_at":"2025-04-04T06:43:32.000Z","dependencies_parsed_at":"2023-03-24T10:35:23.899Z","dependency_job_id":"74cb7865-45e1-49ac-a285-f65473020be7","html_url":"https://github.com/Mon-ius/Docker-Warp-Socks","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Mon-ius%2FDocker-Warp-Socks","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Mon-ius%2FDocker-Warp-Socks/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Mon-ius%2FDocker-Warp-Socks/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Mon-ius%2FDocker-Warp-Socks/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Mon-ius","download_url":"https://codeload.github.com/Mon-ius/Docker-Warp-Socks/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254471061,"owners_count":22076585,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["chatgpt","cloudflare","docker","warp-plus","wireguard"],"created_at":"2025-04-08T23:45:01.316Z","updated_at":"2025-05-16T05:05:28.118Z","avatar_url":"https://github.com/Mon-ius.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Docker-Warp-Socks\n\n[![CI Status](https://github.com/Mon-ius/Docker-Warp-Socks/workflows/build/badge.svg)](https://github.com/Mon-ius/Docker-Warp-Socks/actions?query=workflow:build)\n[![CI Status](https://github.com/Mon-ius/Docker-Warp-Socks/workflows/verify/badge.svg)](https://github.com/Mon-ius/Docker-Warp-Socks/actions?query=workflow:verify)\n[![Docker Pulls](https://flat.badgen.net/docker/pulls/monius/docker-warp-socks?icon=docker)](https://hub.docker.com/r/monius/docker-warp-socks)\n[![Code Size](https://img.shields.io/github/languages/code-size/Mon-ius/Docker-Warp-Socks)](https://github.com/Mon-ius/Docker-Warp-Socks)\n[![License: GPL v3](https://img.shields.io/badge/License-GPLv3-blue.svg)](https://www.gnu.org/licenses/gpl-3.0)\n[![Open Issues](https://img.shields.io/github/issues/Mon-ius/Docker-Warp-Socks)](https://github.com/Mon-ius/Docker-Warp-Socks/issues)\n[![Visitors](https://api.visitorbadge.io/api/visitors?path=https://github.com/Mon-ius/Docker-Warp-Socks\u0026label=Visitors%20Totay\u0026labelColor=%23808080\u0026countColor=%23ffa31a\u0026style=flat\u0026labelStyle=upper)](https://visitorbadge.io/status?path=https://github.com/Mon-ius/Docker-Warp-Socks)\n\n\u003e A lightweight Docker image, designed for easy connection to CloudFlare WARP, exposing `socks5` proxy all together.\n\nMulti-platform: `linux/amd64`, `linux/arm64`, `linux/arm`, `linux/ppc64le`, `linux/s390x` and `linux/riscv64`;\n\n## V4 Features\n- Rich support for most linux family systems, including `arm`, `ppc64le`, `s390x` and `riscv64`, etc.\n- Light start without `NET_ADMIN`, `SYS_MODULE`, `/lib/modules`, and extra `net` deps.\n- More secure Bootstrap without `privileged` acquisition in docker container.\n- Support lastest `SagerNet/sing-box` v1.11.x version with `action` feature enabled.\n- Support for mixed `http`, `https`, and `socks` protocols on the default port `9091`\n- Light core with alpine linux `3.21`.\n- Easy networking between containers.\n- Used call ~~`Gemini-2.0-flash-thinking-exp-0121`~~, `Google Gemini 2.0 Flash Thinking`, `Google Gemini 2.0 Pro Exp0205` API.\n- Used call `OpenAI-o3`, `OpenAI-o3-mini`, `OpenAI-o1-pro` and `OpenAI-Sora` API.\n- Used call ~~`Claude 3.5 Sonnet`~~, `Claude 3.7 Sonnet`, `Claude 3.7 Sonnet(extend)` API.\n- Used call `DeepSeek V3` and `DeepSeek R1` API.\n- Support `GHCR` for more Security and Flexibility.\n\n## Migrate to v4\n- The `v2` version will be kept and available at `monius/docker-warp-socks:v2`.\n- The `v3` version will be kept and available at `monius/docker-warp-socks:v3`.\n- The `v4` version is now available at `monius/docker-warp-socks` and `ghcr.io/mon-ius/docker-warp-socks`.\n- The `Referral` programme has been closed, there is no `Plus` flag anymore.\n\nQuick start from:\n```sh\ndocker run --restart=always -itd \\\n    --name warp_socks_v4 \\\n    -p 9091:9091 \\\n    ghcr.io/mon-ius/docker-warp-socks\n```\n\nThen, verify on host with:\n\n```sh\ncurl -x \"socks5h://127.0.0.1:9091\" -fsSL \"https://www.cloudflare.com/cdn-cgi/trace\"\ncurl -x \"http://127.0.0.1:9091\" -fsSL \"https://www.cloudflare.com/cdn-cgi/trace\"\n```\n\n\u003e [!TIP]\n\u003e - To use `plus` license, now called `siliver`, add `-e WARP_LICENSE=$WARP_LICENSE`.\n\u003e - To use customized `port`, set `-e NET_PORT=$NET_PORT`.\n\u003e - To use Tunnel Encryption with `user` and `passwd`, set `-e SOCK_USER=$USER` and `-e SOCK_PWD=$PASSWD`.\n\n```sh\ndocker run --restart=always -itd \\\n    --name warp_socks_plus \\\n    -e WARP_LICENSE=$WARP_LICENSE \\\n    -e NET_PORT=9091 \\\n    -p 9091:9091 \\\n    monius/docker-warp-socks:v4\n```\n\nCheck if both `siliver=xxx-xxx` and `warp=on` shown from:\n\n```sh\ncurl -x \"socks5h://127.0.0.1:9091\" -fsSL \"https://www.cloudflare.com/cdn-cgi/trace\"\ncurl -x \"http://127.0.0.1:9091\" -fsSL \"https://www.cloudflare.com/cdn-cgi/trace\"\n```\n\n## Why to use\n\nThe official `warp-cli` only support amd64 machines, and its [guide](https://github.com/cloudflare/cloudflare-docs/pull/7644) is prone to causing potential connection loss risks on remote machines. It is recommended to experiment with fresh installations within a docker container, or you have to reboot it via the panel.\n\nWith any existed running proxy service, it acts just like a plugin that helps unlock public content such as `OpenAI Sora`, `OpenAI GPT-3.5`,`OpenAI GPT-4`, `OpenAI GPT-4V`, `OpenAI GPT-4o`, `OpenAI GPT-4o-mini`, ~~`Claude`~~, ~~`Claude 2`~~, ~~`Claude 3 Opus`~~, ~~`Claude 3.5 Sonnet`~~, `Claude 3.7 Sonnet`, `Claude 3.7 Sonnet(extend)`, ~~`Google Bard`~~, ~~`Google Gemini`~~, ~~`Google Gemini Pro Vision`~~, `Google Gemini Advanced`, ~~`Google Gemini 1.5 PRO`~~, ~~`Google Gemini 1.5 Flash`~~, `Google Gemini 2.0 Flash Thinking`, `Google Gemini 2.0 Pro Exp0205`, ~~`Google PaLM2 API`~~, `Google Vertex API`, `Google Scholar`, and `Netflix`. No necessary to have any knowledge of `CloudFlare`, `Warp`, `WireGuard`, and `WGCF` before using this image.\n\n## Usage\n\nThe `v1` image is built on `debian:bookworm` aka `debian:12`, we recently migrate from `v1` to `v2`, which based on a more lighter container `alpine:3.19`. The main line will transition within a month, with minimal impact on the user side. As a contingency plan, users can revert to `monius/docker-warp-socks:v1` if needed.\n\n***Please follow the EXAMPLES `1.1` and `2.1` To Get Start !***\n\n### 💾 Prerequisites\n\n```bash\n# in case, you have no docker-ce installed;\ncurl -fsSL \"https://get.docker.com\" | sudo bash\n\n# to avoid `sudo` calling\nsudo usermod -aG docker ${USER}\n# sudo chmod 666 /var/run/docker.sock\nsudo chown root:docker /var/run/docker.sock\n# or check https://docs.docker.com/engine/security/rootless \n# if required a rootless install with `dockerd-rootless-setuptool.sh install`\n\n# in case, using Centos/RedHatEL\nsudo systemctl enable docker \u0026\u0026 sudo systemctl start docker\n```\n\n### 1. Docker CLI\n\n#### 1.1 🎉 Quick Start\n\nRun the following commands in your terminal:\n\n```bash\ndocker run --privileged --restart=always -itd \\\n    --name warp_socks \\\n    --cap-add NET_ADMIN \\\n    --cap-add SYS_MODULE \\\n    --sysctl net.ipv6.conf.all.disable_ipv6=0 \\\n    --sysctl net.ipv4.conf.all.src_valid_mark=1 \\\n    -v /lib/modules:/lib/modules \\\n    -p 9091:9091 \\\n    monius/docker-warp-socks\n```\n\nThe above command will create a background service that allows the entire container network to join the dual-stack cloudflare network pool without disconnecting from the host.\n\n#### 1.2 ⭐ WARP Plus Account(Advanced)\n\n```bash\ndocker run --privileged --restart=always -itd \\\n    --name warp_socks_plus \\\n    -e WGCF_LICENSE_KEY=yourpluslicense \\\n    --cap-add NET_ADMIN \\\n    --cap-add SYS_MODULE \\\n    --sysctl net.ipv6.conf.all.disable_ipv6=0 \\\n    --sysctl net.ipv4.conf.all.src_valid_mark=1 \\\n    -v /lib/modules:/lib/modules \\\n    -p 9091:9091 \\\n    monius/docker-warp-socks\n```\n\nRun, `curl -x \"socks5h://127.0.0.1:9091\" -fsSL \"https://www.cloudflare.com/cdn-cgi/trace\"`;\nSee `plus` means ***WARP Plus License Key*** applied success.\n\nUpdates: Since the policy changes, there will be no such `plus` flag when check with `https://www.cloudflare.com/cdn-cgi/trace`.\nSee `sliver=xxx-tier1` means sucess for now.\n\n#### 1.3 🔒 Tunnel Encryption(Advanced)\n\nRun the following commands in your terminal:\n\n```bash\ndocker run --privileged --restart=always -itd \\\n    --name warp_socks_passwd \\\n    -e SOCK_USER=monius \\\n    -e SOCK_PWD=passwd \\\n    --cap-add NET_ADMIN \\\n    --cap-add SYS_MODULE \\\n    --sysctl net.ipv6.conf.all.disable_ipv6=0 \\\n    --sysctl net.ipv4.conf.all.src_valid_mark=1 \\\n    -v /lib/modules:/lib/modules \\\n    -p 9091:9091 \\\n    monius/docker-warp-socks\n```\n\nThe above command will add a little encryption to the existed socks connection, just a little~\n\nRun, `curl -U \"monius:passwd\" -x \"socks5h://127.0.0.1:9091\" -fsSL \"https://www.cloudflare.com/cdn-cgi/trace\"` to go 🤗\n\n#### 1.4 🪡 Custom Port(Advanced)\n\nRun the following commands in your terminal:\n\n```bash\ndocker run --privileged --restart=always -itd \\\n    --name warp_socks_passwd \\\n    -e NET_PORT=8091 \\\n    --cap-add NET_ADMIN \\\n    --cap-add SYS_MODULE \\\n    --sysctl net.ipv6.conf.all.disable_ipv6=0 \\\n    --sysctl net.ipv4.conf.all.src_valid_mark=1 \\\n    -v /lib/modules:/lib/modules \\\n    -p 8091:8091 \\\n    monius/docker-warp-socks\n```\n\nRun, `curl -x \"socks5h://127.0.0.1:8091\" -fsSL \"https://www.cloudflare.com/cdn-cgi/trace\"` to go 🤗\n\n#### 1.5 🔧 Pre-Configuration Start (advanced)\n\nTo use your prepared config:\n\n``` bash\ndocker run --privileged --restart=always -itd \\\n    --name warp_socks \\\n    -e SOCK_USER=monius \\\n    -e SOCK_PWD=cool \\\n    --cap-add NET_ADMIN \\\n    --cap-add NET_RAW \\\n    --cap-add SYS_MODULE \\\n    --device=/dev/net/tun \\\n    --sysctl net.ipv6.conf.all.disable_ipv6=0 \\\n    --sysctl net.ipv4.conf.all.src_valid_mark=1 \\\n    -p 127.0.0.1:9091:9091 \\\n    -v /lib/modules:/lib/modules \\\n    -v ~/wireguard/:/opt/wireguard/:ro \\\n    monius/docker-warp-socks\n```\n\nIt will also recognize the prepared `wgcf-profile.conf` and `danted.conf` if they are located in `~/wireguard/`.\nUse **-v** `~/wireguard/:/opt/wireguard/:ro` to map the directory.\n\nAnd, `-p 127.0.0.1:9091:9091` will create a localhost(`127.0.0.1`) access-only `9091` port to secure the connection.\n\n#### 1.3 Test and Verify\n\nTo output the network test log:\n\n``` bash\n\n# Host\ncurl -x \"socks5h://127.0.0.1:9091\" -fsSL \"https://www.cloudflare.com/cdn-cgi/trace\"\n# See`warp=on` means success. \n```\n\n### 2. Docker Compose\n\n`docker-compose.yml` could replace some args in a file to run a container.\n\n#### 💾 Download Standalone Docker-Compose V2 Binary\n\nIf you don't have Docker-Compose installed, following this:\n\n```bash\nsudo curl -fsSL \u003chttps://github.com/docker/compose/releases/download/v2.17.2/docker-compose-\u003e`uname -s`-`uname -m` \u003e /usr/bin/docker-compose\n\nsudo chmod +x /usr/bin/docker-compose\n```\n\n#### 2.1 🎉 Compose up the container\n\n```bash\n#start\ncurl -fsSL https://bit.ly/docker-warp-socks-compose | docker-compose -f - up -d --wait \u0026\u0026 curl --proxy socks5h://127.0.0.1:9091 \"https://www.cloudflare.com/cdn-cgi/trace\"\n\n#stop\ncurl -fsSL https://bit.ly/docker-warp-socks-compose | docker-compose -f - down \n```\n\n### 3. Docker Stack Deploy\n\n[![Try in PWD](https://github.com/play-with-docker/stacks/raw/cff22438cb4195ace27f9b15784bbb497047afa7/assets/images/button.png)](http://play-with-docker.com?stack=https://raw.githubusercontent.com/Mon-ius/Docker-Warp-Socks/main/dev/warp-socks.yml)\n\u003e Click the *CLOSE* button, Replace the $IP with the given one on the top side, then run:\n\u003e `curl -x \"socks5h://$IP:9091\" -fsSL \"https://www.cloudflare.com/cdn-cgi/trace\"`\n\n#### 3.1 Enable Swarm Mode\n\nTo use `Docker Stack`, first perform the *Swarm Initialized* by:\n\n```bash\n# create\ndocker swarm init\n\n# leave\ndocker swarm leave --force\n```\n\n#### 3.2 Service Creation\n\n```bash\n# create\ncurl -fsSL https://bit.ly/docker-warp-socks-compose | docker stack deploy -c - TEST\n\n# remove\ndocker stack rm TEST\n```\n\n#### 3.3 Check and Test\n\n- `docker info`\n- `docker node ls`\n- `docker network ls`\n- `docker stack ps TEST`\n- `docker stack services TEST`\n- `docker service ls`\n- `docker service logs TEST_warp-socks`\n- `docker service inspect TEST_warp-socks`\n\n```bash\n# in swarm mode, the ip addr is random\n\nTID=`docker ps -aqf \"name=^TEST_warp-socks\"`\nIF=`docker exec $TID sh -c \"ip route show default\" | awk '{print $5}'`\nTIP=`docker exec $TID sh -c \"ifconfig $IF\" | awk '/inet /{print $2}' | cut -d' ' -f2`\n\ncurl -x \"socks5h://127.0.0.1:9091\" -fsSL \"https://www.cloudflare.com/cdn-cgi/trace\"\n\n```\n\n### 4. Official Implement\n\n#### 4.1 For `warp-cli 2024.6` and later\n\n```sh\necho y | warp-cli registration new\nwarp-cli registration license \"$LICENSE_KEY\"\nwarp-cli mode proxy\nwarp-cli proxy port 9091\nwarp-cli connect\n\ncurl -x \"socks5h://127.0.0.1:9091\" -fsSL \"https://www.cloudflare.com/cdn-cgi/trace\"\n```\n\n#### 4.1.1 `Proxy` Mode for newbie\n\nFor those who has `amd64` remote machine and don't need to use `docker` to secure network connection, I [suggest](https://github.com/cloudflare/cloudflare-docs/pull/7644) to use the official `warp-cli` as following:\n\n```bash\ncurl -fsSL https://pkg.cloudflareclient.com/pubkey.gpg \\\n    | sudo gpg --yes --dearmor --output /etc/apt/trusted.gpg.d/cloudflare-warp.gpg\n\necho \"deb https://pkg.cloudflareclient.com $(lsb_release -cs) main\" \\\n    | sudo tee /etc/apt/sources.list.d/cloudflare-warp.list  \u003e /dev/null\n\nsudo apt-get -qq update \u0026\u0026 sudo apt-get -qq install cloudflare-warp\n\necho y | warp-cli register\nwarp-cli set-mode proxy\nwarp-cli set-proxy-port 9091\nwarp-cli connect\n\n# test\ncurl -x \"socks5h://127.0.0.1:9091\" -fsSL \"https://www.cloudflare.com/cdn-cgi/trace\"\n# See`warp=on` means success. \n```\n\n#### 4.1.2 `Proxy` Mode with `Plus`\n\nPrepare `WGCF_LICENSE_KEY=\"xxxxxxx\"`\n\n```bash\ncurl -fsSL https://pkg.cloudflareclient.com/pubkey.gpg \\\n    | sudo gpg --yes --dearmor --output /etc/apt/trusted.gpg.d/cloudflare-warp.gpg\n\necho \"deb https://pkg.cloudflareclient.com $(lsb_release -cs) main\" \\\n    | sudo tee /etc/apt/sources.list.d/cloudflare-warp.list  \u003e /dev/null\n\nsudo apt-get -qq update \u0026\u0026 sudo apt-get -qq install cloudflare-warp\n\necho y | warp-cli registration new \u0026\u0026 warp-cli registration license \"$WGCF_LICENSE_KEY\"\nwarp-cli mode proxy\nwarp-cli proxy port 9091\nwarp-cli connect\n\n# test\ncurl -x \"socks5h://127.0.0.1:9091\" -fsSL \"https://www.cloudflare.com/cdn-cgi/trace\"\n# Instead of `warp=plus`, see `sliver=005-tier1` means success.\n```\n\n\n#### 4.2 `Default` Global Mode for old man\n\nFor those who are **ooold** enough for Linux network management, try it for a global proxy mode, keep in mind that you have already back up or have second way or third way to save your remote VM's network!!! \n\n```bash\nCF_WARP=\"https://pkg.cloudflareclient.com/pubkey.gpg\"\n_WARP=\"deb https://pkg.cloudflareclient.com $(lsb_release -cs) main\"\necho \"$_WARP\" | sudo tee /etc/apt/sources.list.d/cloudflare-warp.list  \u003e /dev/null\ncurl -fsSL \"$CF_WARP\" | sudo gpg --yes --dearmor --output /etc/apt/trusted.gpg.d/cloudflare-warp.gpg\nsudo apt-get -qq update \u0026\u0026 sudo apt-get -qq install cloudflare-warp\n\nGATEWAY=$(ip route show default | awk '/default/ {print $3}')\nIFACE=$(ip route get 8.8.8.8 | sed -n 's/.*dev \\([^\\ ]*\\).*/\\1/p' | head -n 1)\n_IPv4=$(ip addr show dev \"$IFACE\" | awk '/inet /{print $2}' | cut -d' ' -f2)\n_IPv6=$(ip addr show dev \"$IFACE\" | awk '/inet6 /{print $2}' | cut -d' ' -f2)\n# Setting for VPC ip structure\n_VPC=$(curl -fsSL https://www.cloudflare.com/cdn-cgi/trace | grep 'ip' | sed 's/ip=//') \n\necho y | warp-cli registration new\n\n# Setting for VPC internal\nwarp-cli add-excluded-route \"$_IPv4\"\nwarp-cli add-excluded-route \"$_IPv6\"\nwarp-cli add-excluded-route \"$_VPC\"\n# Setting for external ssh\necho \"$SSH_CONNECTION\" | sed 's/ .*//' | sed 's/[0-9]*$/0\\/24/' | xargs warp-cli add-excluded-route\n\nwarp-cli connect\n# Whole network in WARP proxy, `warp=on` means success. \n\n# Check `/var/log/cloudflare-warp/cfwarp_service_log.txt` for logs details\n```\n**Plz be aware that the VMs still has possibility to be lost due to the `IP` can still be changed after `reboot`!!!**\n\n**DONT USE** `warp-cli tunnel ip add` to exclude ip for now!!!\n```bash\nGATEWAY=$(ip route show default | awk '/default/ {print $3}')\nIFACE=$(ip route get 8.8.8.8 | sed -n 's/.*dev \\([^\\ ]*\\).*/\\1/p' | head -n 1)\n_IPv4=$(ip addr show dev \"$IFACE\" | awk '/inet /{print $2}' | cut -d' ' -f2 | sed 's/\\([0-9.]*\\)\\/.*/\\1/')\n_IPv6=$(ip addr show dev \"$IFACE\" | awk '/inet6 /{print $2}' | cut -d' ' -f2 | sed 's/\\([0-9.]*\\)\\/.*/\\1/')\nwarp-cli tunnel ip add \"$_IPv4\"\nwarp-cli tunnel ip add \"$_IPv6\"\nwarp-cli tunnel ip add \"$_VPC\"\necho \"$SSH_CONNECTION\" | sed 's/ .*//' | sed 's/[0-9]*$/0\\/24/' | sed 's/\\([0-9.]*\\)\\/.*/\\1/' | xargs warp-cli tunnel ip add\n```\n\n#### 4.3 `Zero-Trust` official implement\n\n1. Go to `https://$TEAM.cloudflareaccess.com/warp` and authenticate.\n2. On the ‘Success’ page in the browser, right click and ‘Inspect’ the blue ‘Open Cloudflare WARP’ button. Copy the long url start with `com.cloudflare.warp://` that’s shown linked to the button.\n3. Assume you store it inside `$TOKEN_URL`\n4. Go to `one.dash.cloudflare.com` \n5. Find -\u003e Setting -\u003e WARP Client -\u003e Device settings\n6. Click Default -\u003e Configure -\u003e Split Tunnels -\u003e Manage, then add exclude IPs which is same as `warp-cli add-excluded-route` \n\n```bash\ncurl -fsSL https://pkg.cloudflareclient.com/pubkey.gpg \\\n    | sudo gpg --yes --dearmor --output /etc/apt/trusted.gpg.d/cloudflare-warp.gpg\n\necho \"deb https://pkg.cloudflareclient.com $(lsb_release -cs) main\" \\\n    | sudo tee /etc/apt/sources.list.d/cloudflare-warp.list  \u003e /dev/null\n\nsudo apt-get -qq update \u0026\u0026 sudo apt-get -qq install cloudflare-warp\n\nTOKEN_URL=\"com.cloudflare.warp://xxx.cloudflareaccess.com/auth?token=xxxxx\"\n\necho y | warp-cli registration token $TOKEN_URL\n\nwarp-cli connect\n\ncurl -fsSL \"https://www.cloudflare.com/cdn-cgi/trace\"\ncurl --proxy socks5h://127.0.0.1:9011 https://www.cloudflare.com/cdn-cgi/trace\ncurl -x \"socks5h://127.0.0.1:9091\" -fsSL \"https://www.cloudflare.com/cdn-cgi/trace\"\n```\n\n### 5. Debug Information\n\nDebug commands for quick troubleshooting\n\n```bash\ndocker rm -f $(docker ps -a -q) \u0026\u0026 docker rmi -f $(docker images -a -q)\n\ndocker run --privileged --restart=always -itd \\\n    --name warp_debug \\\n    --sysctl net.ipv6.conf.all.disable_ipv6=0 \\\n    --sysctl net.ipv4.conf.all.src_valid_mark=1 \\\n    --cap-add NET_ADMIN --cap-add SYS_MODULE \\\n    -p 9091:9091 \\\n    -v /lib/modules:/lib/modules \\\n    monius/docker-warp-socks:meta\n\ndocker exec -it warp_debug /bin/bash\n\nIFACE=$(ip route show default | grep default | awk '{print $5}')\nIPv4=$(ifconfig \"$IFACE\" | awk '/inet /{print $2}' | cut -d' ' -f2)\nIPv6=$(ifconfig \"$IFACE\" | awk '/inet6 /{print $2}' | cut -d' ' -f2)\nTAR=\"https://api.github.com/repos/Mon-ius/Docker-Warp-Socks/releases/latest\"\nARCH=$(dpkg --print-architecture)\nURL=$(curl -fsSL ${TAR} | grep 'browser_download_url' | cut -d'\"' -f4 | grep linux | grep \"${ARCH}\")\ncurl -LSs \"${URL}\" -o ./wgcf \u0026\u0026 chmod +x ./wgcf \u0026\u0026 mv ./wgcf /usr/bin\nwgcf register --accept-tos \u0026\u0026 wgcf generate \u0026\u0026 mv wgcf-profile.conf /etc/wireguard/warp.conf\nsed -i \"/\\[Interface\\]/a PostDown = ip -6 rule delete from ${IPv6}  lookup main\" /etc/wireguard/warp.conf\nsed -i \"/\\[Interface\\]/a PostUp = ip -6 rule add from ${IPv6} lookup main\" /etc/wireguard/warp.conf\nsed -i \"/\\[Interface\\]/a PostDown = ip -4 rule delete from ${IPv4} lookup main\" /etc/wireguard/warp.conf\nsed -i \"/\\[Interface\\]/a PostUp = ip -4 rule add from ${IPv4} lookup main\" /etc/wireguard/warp.conf\n\nwg-quick up warp\n\ncurl \"https://www.cloudflare.com/cdn-cgi/trace\"\ncurl --interface eth0 \"https://www.cloudflare.com/cdn-cgi/trace\"\ncurl --interface warp \"https://www.cloudflare.com/cdn-cgi/trace\"\n\n```\n### Known issues\n\n- CentOS/RedHat/Rocky Linux as Host, see https://github.com/uzairali001/docker-wireguard-rhel\n\n### Source\n[Docker-Warp-Socks](https://github.com/Mon-ius/Docker-Warp-Socks)\n\n### Credits\n- [WireGuard](https://www.wireguard.com/)\n- [Mon-ius/Docker-Warp-Socks](https://github.com/Mon-ius/Docker-Warp-Socks)\n- [Cloudflare WARP](https://developers.cloudflare.com/warp-client/get-started/linux/)\n- [SagerNet/sing-box](https://github.com/SagerNet/sing-box)\n- [ViRb3/wgcf](https://github.com/ViRb3/wgcf)\n- [Neilpang/wgcf-docker](https://github.com/Neilpang/wgcf-docker)\n- [Wireguard-Socks-Proxy](https://github.com/ispmarin/wireguard-socks-proxy)\n- [WARP exlude config](https://github.com/crzidea/confbook/blob/fe6e583dff223fc9d461cd8350adc24eff5b1925/apt/cloudflare-warp#L16)\n\n## Notice of Non-Affiliation and Disclaimer\n\nWe are not affiliated, associated, authorized, endorsed by, or in any way officially connected with Cloudflare, or any of its subsidiaries or its affiliates. The official Cloudflare website can be found at \u003chttps://www.cloudflare.com\u003e.\n\n![visitor](https://count.getloli.com/get/@warp-socks?theme=asoul)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmon-ius%2Fdocker-warp-socks","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmon-ius%2Fdocker-warp-socks","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmon-ius%2Fdocker-warp-socks/lists"}