-
Notifications
You must be signed in to change notification settings - Fork 104
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
"open tun" Operation not permitted #41
Comments
Thanks for your investigation. This is an intentional change in runc: I will give a solution ASAP. |
Pass device |
I am on containerd.io version 1.7.22, I updated to caomingjun/warp:latest and warp refused to start w/out the devices: /dev/net/tun in compose. Additionally - after adding device to my compose, nothing would connect through WARP. After rolling back to caomingjun/warp:2024.11.309.0-2.12.0-d9881567a57b23bf435a15ae3738ca2854e8d654, everything works fine. |
Are you using swarm? What's the log of "after adding device to my compose, nothing would connect through WARP"? |
Hi there, |
Ok - so first issue - trying to run WARP compose.yml w/out containerd --version = 1.7.12 add in devices variable and WARP runs - no problem. This is w/out trying to run any traffic through WARP. Just simply trying to get WARP:latest to run w/out devices variable on containerd version 1.7.12 |
That's an existing compatibility issue of swarm and containerd. I can't solve it in image or container level. |
But why there is no traffic through WARP when device is passed? There must be something wrong and it must be displayed in the log. I need to see the log to solve your problem. |
For everyone: it seems that containerd's removal of TUN device's rule from default ruleset has cause a hell lot of troubles. I will try to use |
New fix is built and pushed. TUN device is no longer need to be passed, but The new solution should also be effective for Docker Swarm. |
First of all, thank you for putting this together. It's a great piece of software! ❤️
I've been using warp-docker for a while now in
tunnel_only
mode and it's all been great until a couple of days ago when connections relying on this proxy started failing.I started looking into this and the first thing I saw was this error in the warp-docker logs, from warp-svc:
I thought initially this was a permissions issue trying to interact with /dev/net/tun, so I went and had a look:
crw------- 1 root root 10, 200 Dec 7 16:53 /dev/net/tun
Looked fine. The warp user is a sudoer, but for sanity's sake I chown'd /dev/net/tun to warp and even chmod'd it to 666. Same issue.
I tried a bunch of other combinations of settings and docker configurations (including using MASQUE and WG for the tunnel, and different modes too), but I wasn't able to resolve the issue or find a root cause.
For context, here's my warp-docker Docker Compose definition:
I even went back in warp-docker versions, but now the versions that used to work stopped to do so with the same error. Clearly, this was not an issue with any recent updates to this package.
I then went into trying to figure out what had changed on my system recently and the one thing I remembered was that apt had upgraded the
containerd.io
package on my Ubuntu Server 24.10 from 1.7.23-1 to 1.7.24-1.I downgraded this package back to 1.7.23-1 and voila, problem solved.
I did not get to the root cause of this issue - I don't know if it's an incompatibility with warp-docker and this new version of
containerd.io
or with Cloudflare WARP itself.I checked the changes that happened from containerd 1.7.23 to 1.7.24, but I see nothing that would immediately raise any flags. I did notice that runc and a few other dependencies got updated, so maybe more digging
--
I suspect no other issues like this have cropped up here given that this requires an update action for something that was released pretty recently. Perhaps we'll see more people mention this later as they upgrade their servers.
The text was updated successfully, but these errors were encountered: