# Install miniupnpc with Homebrew, apk, apt, dnf, MacPorts, Nix, pacman, zypper

UPnP IGD client library and daemon. Version 2.3.3 via Homebrew; verified 2026-06-26. Also installable with debian: sudo apt install libminiupnpc-dev.

## Install

```sh
sudo av install brew:miniupnpc
```

Additional install commands:

### macOS

- Homebrew (100%):

```sh
brew install miniupnpc
```

  Evidence: local Homebrew formula metadata

- MacPorts (94%):

```sh
sudo port install miniupnpc
```

  Evidence: MacPorts ports tree: net/miniupnpc/Portfile from https://api.github.com/repos/macports/macports-ports/git/trees/master?recursive=1

### Linux

- apk (92%):

```sh
sudo apk add miniupnpc
```

  Evidence: Alpine Linux edge package indexes: miniupnpc from https://dl-cdn.alpinelinux.org/alpine/edge/community/x86_64/APKINDEX.tar.gz

- Debian apt (92%):

```sh
sudo apt install miniupnpc
```

  Evidence: Debian stable package indexes: miniupnpc from https://deb.debian.org/debian/dists/stable/main/binary-amd64/Packages.xz

- dnf (92%):

```sh
sudo dnf install miniupnpc
```

  Evidence: Fedora Rawhide package metadata: miniupnpc from https://dl.fedoraproject.org/pub/fedora/linux/development/rawhide/Everything/x86_64/os/repodata/07190dc5ae9f35ae73866675fed6d95fe6e8d9fe22c9d7cdf85862cb2ed24a4c-primary.xml.zst

- Nix (92%):

```sh
nix profile install nixpkgs#miniupnpc
```

  Evidence: nixpkgs package indexes: pkgs/by-name/mi/miniupnpc/package.nix from https://api.github.com/repos/NixOS/nixpkgs/git/trees/master?recursive=1

- pacman (92%):

```sh
sudo pacman -S miniupnpc
```

  Evidence: Arch Linux sync databases: miniupnpc from https://geo.mirror.pkgbuild.com/extra/os/x86_64/extra.db.tar.gz

- zypper (92%):

```sh
sudo zypper install miniupnpc
```

  Evidence: openSUSE Tumbleweed package metadata: miniupnpc from https://download.opensuse.org/tumbleweed/repo/oss/repodata/50b07339cb64c8ed4091bdbabddadc1ff5737b090e478818a195b40d8a3292861a879139b4a3987c31109699fde9fbf4a716367ddf4eef77da75f96e3193d6ed-primary.xml.zst

## Package facts

- **Package key:** brew:miniupnpc
- **Package manager:** Homebrew
- **Version:** 2.3.3
- **Source summary:** UPnP IGD client library and daemon
- **Homepage:** <http://miniupnp.free.fr/>
- **Repository:** <https://github.com/miniupnp/miniupnp>
- **Last updated:** 2026-06-26T19:31:35-04:00
- **Generated:** 2026-08-03T19:37:03+00:00

## Executables

- external-ip (alias)
- upnp-listdevices (alias)
- upnpc (alias)

## Install behavior

- Bottle: not available

## Freshness

- Page generated: 2026-08-03
- Package-manager version: 2.3.3
## Project history and usage

miniupnpc is the client-library side of Thomas Bernard's MiniUPnP project, a compact C implementation for UPnP Internet Gateway Device control. The MiniUPnP homepage explains that the project was created to provide a free-software implementation of the IGD part of UPnP, with MiniUPnPc acting as the control point library and MiniUPnPd acting as the gateway daemon. Its design goal was smallness: the author explicitly contrasted it with heavier UPnP SDKs and emphasized ANSI C, a tiny footprint, and no dependency on external XML parsers or HTTP implementations.

### Project history

The project grew around practical NAT traversal. MiniUPnPd first targeted OpenBSD with pf, later gained portability across BSDs, Solaris, macOS, and Linux firewall stacks, while MiniUPnPc remained the portable client component for POSIX, Windows, and AmigaOS. NAT-PMP and PCP support were added on the daemon side, while libnatpmp handles client-side NAT-PMP. The GitHub repository groups miniupnpc, miniupnpd, minissdpd, and experimental async/libevent clients together, reflecting a small suite rather than a single binary.

### How it is used

In practice miniupnpc is embedded by applications that need incoming connections through consumer NAT routers: peer-to-peer clients, active-mode FTP clients, IRC DCC, games, and server-like desktop software. The MiniUPnP site cites Transmission as a BitTorrent client using miniupnpc and libnatpmp, and notes XChat patch work as an example of application integration. In package managers it appears both as command-line tools such as upnpc and as development libraries such as Debian and Ubuntu's libminiupnpc-dev, which is why the Homebrew formula describes it as a UPnP IGD client library and daemon.

### Sources

- <https://formulae.brew.sh/formula/miniupnpc>
- <https://github.com/miniupnp/miniupnp>
- <https://miniupnp.tuxfamily.org/>
- <https://miniupnp.tuxfamily.org/doc/>


## Security Notes

broad file, network, media, or database tool signal.

- **Geiger risk:** blue / medium
- broad file, network, media, or database tool signal

## Other Package-Manager Records

- Debian apt - libminiupnpc-dev - 2.2.8-2+b2: normalized package name match | Debian stable package indexes: libminiupnpc-dev from https://deb.debian.org/debian/dists/stable/main/binary-amd64/Packages.xz | UPnP IGD client lightweight library development files | https://miniupnp.tuxfamily.org/
- Debian apt - libminiupnpc18 - 2.2.8-2+b2: normalized package name match | Debian stable package indexes: libminiupnpc18 from https://deb.debian.org/debian/dists/stable/main/binary-amd64/Packages.xz | UPnP IGD client lightweight library | https://miniupnp.tuxfamily.org/
- Debian apt - miniupnpc - 2.2.8-2+b2: normalized package name match | Debian stable package indexes: miniupnpc from https://deb.debian.org/debian/dists/stable/main/binary-amd64/Packages.xz | UPnP IGD client lightweight library client | https://miniupnp.tuxfamily.org/
- Debian apt - python3-miniupnpc - 2.2.8-2+b2: normalized package name match | Debian stable package indexes: python3-miniupnpc from https://deb.debian.org/debian/dists/stable/main/binary-amd64/Packages.xz | UPnP IGD client lightweight library Python 3 bindings | https://miniupnp.tuxfamily.org/
- Nix - miniupnpc: normalized package name match | nixpkgs package indexes: pkgs/by-name/mi/miniupnpc/package.nix from https://api.github.com/repos/NixOS/nixpkgs/git/trees/master?recursive=1
- Ubuntu apt - libminiupnpc-dev - 2.2.6-1build2: normalized package name match | Ubuntu 24.04 LTS package indexes: libminiupnpc-dev from https://archive.ubuntu.com/ubuntu/dists/noble/main/binary-amd64/Packages.gz | UPnP IGD client lightweight library development files | http://miniupnp.free.fr/
- Ubuntu apt - libminiupnpc17 - 2.2.6-1build2: normalized package name match | Ubuntu 24.04 LTS package indexes: libminiupnpc17 from https://archive.ubuntu.com/ubuntu/dists/noble/main/binary-amd64/Packages.gz | UPnP IGD client lightweight library | http://miniupnp.free.fr/
- Ubuntu apt - miniupnpc - 2.2.6-1build2: normalized package name match | Ubuntu 24.04 LTS package indexes: miniupnpc from https://archive.ubuntu.com/ubuntu/dists/noble/universe/binary-amd64/Packages.gz | UPnP IGD client lightweight library client | http://miniupnp.free.fr/
- Ubuntu apt - python3-miniupnpc - 2.2.6-1build2: normalized package name match | Ubuntu 24.04 LTS package indexes: python3-miniupnpc from https://archive.ubuntu.com/ubuntu/dists/noble/universe/binary-amd64/Packages.gz | UPnP IGD client lightweight library Python 3 bindings | http://miniupnp.free.fr/
- apk - miniupnpc - 2.3.3-r2: normalized package name match | Alpine Linux edge package indexes: miniupnpc from https://dl-cdn.alpinelinux.org/alpine/edge/community/x86_64/APKINDEX.tar.gz | Library and tool to control NAT in UPnP-enabled routers | http://miniupnp.free.fr
- apk - miniupnpc-dev - 2.3.3-r2: normalized package name match | Alpine Linux edge package indexes: miniupnpc-dev from https://dl-cdn.alpinelinux.org/alpine/edge/community/x86_64/APKINDEX.tar.gz | Library and tool to control NAT in UPnP-enabled routers (development files) | http://miniupnp.free.fr
- apk - miniupnpc-doc - 2.3.3-r2: normalized package name match | Alpine Linux edge package indexes: miniupnpc-doc from https://dl-cdn.alpinelinux.org/alpine/edge/community/x86_64/APKINDEX.tar.gz | Library and tool to control NAT in UPnP-enabled routers (documentation) | http://miniupnp.free.fr
- apk - py3-miniupnpc - 2.3.3-r2: normalized package name match | Alpine Linux edge package indexes: py3-miniupnpc from https://dl-cdn.alpinelinux.org/alpine/edge/community/x86_64/APKINDEX.tar.gz | Python bindings for miniupnpc | http://miniupnp.free.fr
- dnf - miniupnpc - 2.3.3-8.fc45: normalized package name match | Fedora Rawhide package metadata: miniupnpc from https://dl.fedoraproject.org/pub/fedora/linux/development/rawhide/Everything/x86_64/os/repodata/07190dc5ae9f35ae73866675fed6d95fe6e8d9fe22c9d7cdf85862cb2ed24a4c-primary.xml.zst | Library and tool to control NAT in UPnP-enabled routers | http://miniupnp.free.fr/
- dnf - miniupnpc-devel - 2.3.3-8.fc45: normalized package name match | Fedora Rawhide package metadata: miniupnpc-devel from https://dl.fedoraproject.org/pub/fedora/linux/development/rawhide/Everything/x86_64/os/repodata/07190dc5ae9f35ae73866675fed6d95fe6e8d9fe22c9d7cdf85862cb2ed24a4c-primary.xml.zst | Development files for miniupnpc | http://miniupnp.free.fr/
- dnf - python3-miniupnpc - 2.3.3-8.fc45: normalized package name match | Fedora Rawhide package metadata: python3-miniupnpc from https://dl.fedoraproject.org/pub/fedora/linux/development/rawhide/Everything/x86_64/os/repodata/07190dc5ae9f35ae73866675fed6d95fe6e8d9fe22c9d7cdf85862cb2ed24a4c-primary.xml.zst | Python3 interface to miniupnpc | http://miniupnp.free.fr/


## Combined YAML source

View the package source record on GitHub. [combined/miniupnpc.yml](https://github.com/mxcl/pkgdb/blob/main/combined/miniupnpc.yml)


## Sources

- pkg.so package database
- Geiger risk classifier
- curated package history
- pkgdb category and tag curation
- external package-manager database matches
- cross-ecosystem install command graph
