slirp4netns - User-mode networking for unprivileged network namespaces
slirp4netns [-c] [-e FD] PID TAPNAME
slirp4netns provides a user-mode networking ("slirp") for unprivileged network namespaces.
Default configuration:
- Gateway: 10.0.2.2
- DNS: 10.0.2.3
- Host: 10.0.2.2, 10.0.2.3
-c bring up the interface. IP will be set to 10.0.2.100.
-e FD specify FD for terminating slirp4netns.
Terminal 1:
$ unshare -r -n -m
unshared$ echo $$ > /tmp/pid
unshared$ ip tuntap add name tap0 mode tap
unshared$ ip link set tap0 up
unshared$ ip addr add 10.0.2.100/24 dev tap0
unshared$ ip route add default via 10.0.2.2 dev tap0
unshared$ echo "nameserver 10.0.2.3" > /tmp/resolv.conf
unshared$ mount --bind /tmp/resolv.conf /etc/resolv.conf
Terminal 2:
$ slirp4netns $(cat /tmp/pid) tap0
Terminal 1:
unshared$ ping 10.0.2.2
unshared$ curl https://example.com
network_namespaces(7), user_namespaces(7)
The slirp4netns command is available from https://github.com/rootless-containers/slirp4netns under GNU GENERAL PUBLIC LICENSE Version 2.