summaryrefslogtreecommitdiff
path: root/README.md
diff options
context:
space:
mode:
authorReinhard Tartler <siretart@tauware.de>2019-03-30 10:53:01 -0400
committerReinhard Tartler <siretart@tauware.de>2019-03-30 10:53:01 -0400
commit3925631f27136b690f806464227497af42cb529d (patch)
treec9d6d8eaba72f372ef68fee2d999eda9328e0a41 /README.md
parent2495596df437ed78585cb469e63bec16318c3645 (diff)
New upstream version 0.3.0
Diffstat (limited to 'README.md')
-rw-r--r--README.md66
1 files changed, 53 insertions, 13 deletions
diff --git a/README.md b/README.md
index d3c674f..1ef8b3b 100644
--- a/README.md
+++ b/README.md
@@ -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.