diff options
author | Reinhard Tartler <siretart@tauware.de> | 2019-03-30 10:53:01 -0400 |
---|---|---|
committer | Reinhard Tartler <siretart@tauware.de> | 2019-03-30 10:53:01 -0400 |
commit | 3925631f27136b690f806464227497af42cb529d (patch) | |
tree | c9d6d8eaba72f372ef68fee2d999eda9328e0a41 /README.md | |
parent | 2495596df437ed78585cb469e63bec16318c3645 (diff) |
New upstream version 0.3.0
Diffstat (limited to 'README.md')
-rw-r--r-- | README.md | 66 |
1 files changed, 53 insertions, 13 deletions
@@ -2,6 +2,8 @@ slirp4netns provides user-mode networking ("slirp") for unprivileged network namespaces. +Latest stable release: [v0.3.X](https://github.com/rootless-containers/slirp4netns/releases) + ## Motivation Starting with Linux 3.8, unprivileged users can create [`network_namespaces(7)`](http://man7.org/linux/man-pages/man7/network_namespaces.7.html) along with [`user_namespaces(7)`](http://man7.org/linux/man-pages/man7/user_namespaces.7.html). @@ -15,6 +17,7 @@ slirp4netns allows connecting a network namespace to the Internet in a completel * [Podman](https://github.com/containers/libpod) * [Buildah](https://github.com/containers/buildah) * [ctnr](https://github.com/mgoltzsche/ctnr) (via slirp-cni-plugin) +* [Docker & Moby](https://get.docker.com/rootless) (optionally, via RootlessKit) * [RootlessKit](https://github.com/rootless-containers/rootlesskit) * [become-root](https://github.com/giuseppe/become-root) @@ -24,6 +27,8 @@ slirp4netns allows connecting a network namespace to the Internet in a completel ### Install from source +Build dependency: `glib2-devel` (`libglib2.0-dev`) + ```console $ ./autogen.sh $ ./configure --prefix=/usr @@ -42,18 +47,29 @@ $ sudo make install $ sudo dnf install slirp4netns ``` -#### [Arch Linux](https://aur.archlinux.org/packages/slirp4netns/): +#### [RHEL/CentOS 7.6](https://copr.fedorainfracloud.org/coprs/vbatts/shadow-utils-newxidmap/) + +```console +$ sudo curl -o /etc/yum.repos.d/vbatts-shadow-utils-newxidmap-epel-7.repo https://copr.fedorainfracloud.org/coprs/vbatts/shadow-utils-newxidmap/repo/epel-7/vbatts-shadow-utils-newxidmap-epel-7.repo +$ sudo yum install slirp4netns +``` + +You might need to enable user namespaces manually: +```console +$ sudo sh -c 'echo "user.max_user_namespaces=28633" > /etc/sysctl.d/userns.conf' +$ sudo sysctl -p /etc/sysctl.d/userns.conf +``` -If you're running Arch Linux you can install `slirp4netns` (or [`slirp4netns-git`](https://aur.archlinux.org/packages/slirp4netns-git/)) from AUR. When you're using an AUR helper ([yay](https://github.com/Jguer/yay), for example) simply use: +#### [Arch Linux](https://www.archlinux.org/packages/community/x86_64/slirp4netns/): - yay -S slirp4netns - -Otherwise make sure you have [base-devel](https://www.archlinux.org/groups/x86_64/base-devel/) installed and build a package manually: +```console +$ sudo pacman -S slirp4netns +``` - cd $(mktemp -d) - curl -Lo PKGBUILD "https://aur.archlinux.org/cgit/aur.git/plain/PKGBUILD?h=slirp4netns" - makepkg - sudo pacman -U slirp4netns-*.pkg.tar.* +You might need to enable user namespaces manually: +```console +$ sudo sh -c "echo 1 > /proc/sys/kernel/unprivileged_userns_clone" +``` #### [openSUSE Tumbleweed](https://build.opensuse.org/package/show/openSUSE%3AFactory/slirp4netns) @@ -75,12 +91,36 @@ $ sudo zypper addrepo --refresh http://download.opensuse.org/repositories/devel: $ sudo zypper install slirp4netns ``` -#### [Debian GNU/Linux Sid](https://packages.debian.org/sid/slirp4netns) +#### [Debian GNU/Linux (10 or later)](https://packages.debian.org/buster/slirp4netns) & [Ubuntu (19.04 or later)](https://packages.ubuntu.com/disco/slirp4netns) ```console $ sudo apt install slirp4netns ``` +#### [NixOS](https://github.com/NixOS/nixpkgs/tree/master/pkgs/tools/networking/slirp4netns) + +```console +$ nix-env -i slirp4netns +``` + +#### [Gentoo Linux](https://packages.gentoo.org/packages/app-emulation/slirp4netns) + +```console +$ sudo emerge app-emulation/slirp4netns +``` + +#### [Slackware](https://git.slackbuilds.org/slackbuilds/tree/network/slirp4netns) + +```console +$ sudo sbopkg -i slirp4netns +``` + +#### [Void Linux](https://github.com/void-linux/void-packages/tree/master/srcpkgs/slirp4netns) + +```console +$ sudo xbps-install slirp4netns +``` + ### Usage Terminal 1: Create user/network/mount namespaces @@ -91,7 +131,7 @@ unshared$ echo $$ > /tmp/pid Terminal 2: Start slirp4netns ```console -$ slirp4netns --configure --mtu=65520 $(cat /tmp/pid) tap0 +$ slirp4netns --configure --mtu=65520 --disable-host-loopback $(cat /tmp/pid) tap0 starting slirp, MTU=65520 ... ``` @@ -132,5 +172,5 @@ The latest revision of slirp4netns is regularly benchmarked (`make benchmark`) o ## Acknowledgement -* The files under [`qemu`](./qemu) directory were forked from [QEMU](https://github.com/qemu/qemu/commit/c447afd5783b9237fa51b7a85777007d8d568bfc). -* The files under [`rd235_libslirp`](./rd235_libslirp) directory were forked from [rd235/libslirp](https://github.com/rd235/libslirp/commit/37fd650ad7fba7eb0360b1e1d0abf69cac6eb403). +* The files under [`qemu`](./qemu) directory were forked from [QEMU](https://github.com/qemu/qemu) with the patches under [`qemu_patches`](./qemu_patches) directory. +* The files under [`parson`](./parson) directory were copied from [kgabis/parson](https://github.com/kgabis/parson/commit/0a1896939faff5f69e179637fc49f678ff0128ba) without any modification. |