cmj2002 / warp-docker

Run Cloudflare WARP in Docker.
GNU General Public License v3.0
256 stars 84 forks source link

Request for ARM64 Image Support in Docker Container #8

Closed Aocro closed 4 months ago

Aocro commented 11 months ago

Hello,

I am writing to kindly request your support in adding an ARM64 image for the caomingjun/warp container. Currently, the container does not have support for this platform. If you have the time, I kindly request your consideration in incorporating it.

Thanks!

cmj2002 commented 11 months ago

duplicate of #6.

In case you don't read Chinese, this issue indicates that the Cloudflare WARP client does not have a arm64 version. The community has discussed this topic, and Cloudflare team members have mentioned that they have an internal ticket tracking this problem. But it is not finished yet (I think they just forgot it).

hexclann commented 4 months ago

@cmj2002 Any update for the ARM container support? CF warp now supports arm devices, I was able to install it using the instructions from CF.

https://github.com/cmj2002/warp-docker/issues/6

Screenshot 2024-05-21 at 5 07 03 PM

Output of dpkg -l command:

Screenshot 2024-05-21 at 5 13 05 PM
cmj2002 commented 4 months ago

CF warp now supports arm devices

@hexclann Thank you for bringing the message to my attention. I just checked https://pkg.cloudflareclient.com/dists/jammy/InRelease and and confirmed that WARP has supported arm64 since April 12th (but only ARM64, not including other ARM branches). I will start working on it immediately.

cmj2002 commented 4 months ago

@hexclann ARM64 (ARMv8) image is pushed. You can try it, I currently do not have an ARM device for testing. If there are no problems, I will close this issue.

hexclann commented 4 months ago

@cmj2002 Thank you so much for your work. I was able to run the container successfully in one of the Oracle Cloud ARM VM

hexclann commented 4 months ago

Hello @cmj2002, sorry for this unrelated question, I have a wireguard container running in the same machine, how can I route all the wireguard container traffic through warp-docker container? So that all my wireguard client traffic is routed through cloudflare warp

cmj2002 commented 4 months ago

Hello @cmj2002, sorry for this unrelated question, I have a wireguard container running in the same machine, how can I route all the wireguard container traffic through warp-docker container? So that all my wireguard client traffic is routed through cloudflare warp

In warp-docker, I use the environment variable GOST_ARGS to pass parameters to GOST, a very powerful proxy software. By default, GOST_ARGS=-L :1080 to open a socks5 proxy on port 1080.

You can achieve what you want by changing GOST to local UDP port forwarding mode. Assuming your wireguard container is connected to the server address 1.2.3.4:12345, setting GOST_ARGS=-L=udp://:12345/1.2.3.4:12345?ttl=60s will forward all UDP traffic entering warp-docker:12345 through WARP to 1.2.3.4:12345.

You need to set warp-docker as a static IP (assuming it is 172.20.0.4), place it in the same docker network as the wireguard container, and change the server address of the wireguard container to 172.20.4:12345.

hexclann commented 4 months ago

Some more info about my setup:

I have a docker network called vpn-network with the subnet 10.69.0.0/16. Both wireguard (10.69.0.2) and cloudflare-warp (10.69.0.3) are on the same network. The wireguard UDP port is 51820 which is exposed to port as 26000. How can I apply the GOST_ARGS to route all the wireguard container traffic through warp-docker container?

cmj2002 commented 4 months ago

Some more info about my setup:

I have a docker network called vpn-network with the subnet 10.69.0.0/16. Both wireguard (10.69.0.2) and cloudflare-warp (10.69.0.3) are on the same network. The wireguard UDP port is 51820 which is exposed to port as 26000. How can I apply the GOST_ARGS to route all the wireguard container traffic through warp-docker container?

Is this wireguard container a server or a client?

hexclann commented 4 months ago

It's a server

cmj2002 commented 4 months ago

In this case, you can set up (on the client side) 10.69.0.3 to be routed through wireguard, and then directly connect to socks 10.69.0.3:1080 as proxy on the client side. It's much easier than redirecting all traffic of a wireguard server.