3 ms·
This is actually much more complicated than just using wireguard-go. That currently just creates an interface, but that is just for raw packets. The kernel is
by georgyo 5y ago
This is actually much more complicated than just using wireguard-go.
That currently just creates an interface, but that is just for raw packets. The kernel is the one that is still handling the IP connections.
To have a process do what you are implying would require an entire userspace TCP/IP stack.
These are pretty rare. Slip4netns is an example of one.
- lunixbochs 5y agoThere's a user space network stack in gvisor, written in Go. And it's already included in wireguard-go. See also https://fly.io/blog/ssh-and-user-mode-ip-wireguard/ https://fly.io/blog/ssh-and-user-mode-ip-wireguard/ which has already done this for SSH through wireguard-go