A lightweight Docker image, designed for easy connection to CloudFlare WARP, exposing
socks5
proxy all together.
Multi-platform: linux/amd64
, linux/arm64
, linux/arm
, and linux/s390x
;
- Automatically install and config CloudFlare WARP Client in Docker
- Enable the access of WARP network from Docker Container's SOCKS5 port
- Extend accessibility and avoid potential restrictions by using proxy services
- Avoid looping verification in the Midjourney Discord Channel
- Prevent being banned by proxying API calls
- Successfully pre-process the AI WaitList
- Develop apps with warp embedded
- Bypass the New Bing wait-list
- ...
The official warp-cli
only support amd64 machines, and its guide 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.
With any existed running proxy service, it acts just like a plugin that helps unlock public content such as ChatGPT
,GPT-4
, Claude
, Google Bard
, Google PaLM2 API
, Google Scholar
, and Netflix
. No necessary to have any knowledge of CloudFlare
, Warp
, WireGuard
, and WGCF
before using this image.
The docker image is built based on ubuntu:22.04
aka ubuntu:focal
. It's designed to be robust enough to avoid reboot and platform issues. Please follow the EXAMPLES 1.1
and 2.1
To Get Start !
# in case, you have no docker-ce installed;
curl -fsSL https://get.docker.com | sudo bash
# to avoid `sudo` calling
sudo usermod -aG docker ${USER}
# or check https://docs.docker.com/engine/security/rootless
# if required a rootless install with `dockerd-rootless-setuptool.sh install`
Run the following commands in your terminal:
docker run --privileged --restart=always -itd \
--name warp_socks \
--cap-add NET_ADMIN \
--cap-add SYS_MODULE \
--sysctl net.ipv6.conf.all.disable_ipv6=0 \
--sysctl net.ipv4.conf.all.src_valid_mark=1 \
-v /lib/modules:/lib/modules \
-p 9091:9091 \
monius/docker-warp-socks
The 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.
To use your prepared config:
docker run --privileged --restart=always -itd \
--name warp_socks \
--cap-add NET_ADMIN \
--cap-add SYS_MODULE \
--sysctl net.ipv6.conf.all.disable_ipv6=0 \
--sysctl net.ipv4.conf.all.src_valid_mark=1 \
-p 127.0.0.1:9091:9091 \
-v /lib/modules:/lib/modules \
-v ~/wireguard/:/opt/wireguard/:ro \
monius/docker-warp-socks
It will also recognize the prepared wgcf-profile.conf
and danted.conf
if they are located in ~/wireguard/
.
Use -v ~/wireguard/:/opt/wireguard/:ro
to map the directory.
And, -p 127.0.0.1:9091:9091
will create a localhost(127.0.0.1
) access-only 9091
port to secure the connection.
To output the network test log:
# Host
curl --proxy socks5h://127.0.0.1:9091 https://www.cloudflare.com/cdn-cgi/trace
# See`warp=on` means success.
docker-compose.yml
could replace some args in a file to run a container.
If you don't have Docker-Compose installed, following this:
sudo curl -fsSL <https://github.com/docker/compose/releases/download/v2.17.2/docker-compose->`uname -s`-`uname -m` > /usr/bin/docker-compose
sudo chmod +x /usr/bin/docker-compose
#start
curl -fsSL https://bit.ly/docker-warp-socks-compose | docker-compose -f - up -d --wait && curl --proxy socks5h://127.0.0.1:9091 https://www.cloudflare.com/cdn-cgi/trace
#stop
curl -fsSL https://bit.ly/docker-warp-socks-compose | docker-compose -f - down
Click the CLOSE button, Replace the $IP with the given one on the top side, then run:
curl --proxy socks5h://$IP:9091 "https://www.cloudflare.com/cdn-cgi/trace"
To use Docker Stack
, first perform the Swarm Initialized by:
# create
docker swarm init
# leave
docker swarm leave --force
# create
curl -fsSL https://bit.ly/docker-warp-socks-compose | docker stack deploy -c - TEST
# remove
docker stack rm TEST
docker info
docker node ls
docker network ls
docker stack ps TEST
docker stack services TEST
docker service ls
docker service logs TEST_warp-socks
docker service inspect TEST_warp-socks
# in swarm mode, the ip addr is random
TID=`docker ps -aqf "name=^TEST_warp-socks"`
IF=`docker exec $TID sh -c "ip route show default" | awk '{print $5}'`
TIP=`docker exec $TID sh -c "ifconfig $IF" | awk '/inet /{print $2}' | cut -d' ' -f2`
curl --proxy socks5h://$TIP:9091 "https://www.cloudflare.com/cdn-cgi/trace"
For those who has amd64
remote machine and don't need to use docker
to secure network connection, I suggest to use the official warp-cli
as following:
curl -fsSL https://pkg.cloudflareclient.com/pubkey.gpg \
| sudo gpg --yes --dearmor --output /etc/apt/trusted.gpg.d/cloudflare-warp.gpg
echo "deb https://pkg.cloudflareclient.com $(lsb_release -cs) main" \
| sudo tee /etc/apt/sources.list.d/cloudflare-warp.list > /dev/null
sudo apt-get -qq update && sudo apt-get -qq install cloudflare-warp
echo y | warp-cli register
warp-cli set-mode proxy
warp-cli set-proxy-port 9091
warp-cli connect
# test
curl --proxy socks5h://127.0.0.1:9091 "https://www.cloudflare.com/cdn-cgi/trace"
# See`warp=on` means success.
Debug commands for quick troubleshooting
docker rm -f $(docker ps -a -q) && docker rmi -f $(docker images -a -q)
docker run --privileged --restart=always -itd \
--name warp_debug \
--sysctl net.ipv6.conf.all.disable_ipv6=0 \
--sysctl net.ipv4.conf.all.src_valid_mark=1 \
--cap-add NET_ADMIN --cap-add SYS_MODULE \
-p 9091:9091 \
-v /lib/modules:/lib/modules \
monius/docker-warp-socks:meta
docker exec -it warp_debug /bin/bash
IFACE=$(ip route show default | grep default | awk '{print $5}')
IPv4=$(ifconfig "$IFACE" | awk '/inet /{print $2}' | cut -d' ' -f2)
IPv6=$(ifconfig "$IFACE" | awk '/inet6 /{print $2}' | cut -d' ' -f2)
TAR="https://api.github.com/repos/ViRb3/wgcf/releases/latest"
ARCH=$(dpkg --print-architecture)
URL=$(curl -fsSL ${TAR} | grep 'browser_download_url' | cut -d'"' -f4 | grep linux | grep "${ARCH}")
curl -LSs "${URL}" -o ./wgcf && chmod +x ./wgcf && mv ./wgcf /usr/bin
wgcf register --accept-tos && wgcf generate && mv wgcf-profile.conf /etc/wireguard/warp.conf
sed -i "/\[Interface\]/a PostDown = ip -6 rule delete from ${IPv6} lookup main" /etc/wireguard/warp.conf
sed -i "/\[Interface\]/a PostUp = ip -6 rule add from ${IPv6} lookup main" /etc/wireguard/warp.conf
sed -i "/\[Interface\]/a PostDown = ip -4 rule delete from ${IPv4} lookup main" /etc/wireguard/warp.conf
sed -i "/\[Interface\]/a PostUp = ip -4 rule add from ${IPv4} lookup main" /etc/wireguard/warp.conf
wg-quick up warp
curl https://www.cloudflare.com/cdn-cgi/trace
curl --interface eth0 https://www.cloudflare.com/cdn-cgi/trace
curl --interface warp https://www.cloudflare.com/cdn-cgi/trace
We 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 https://www.cloudflare.com.