FROM debian:bookworm-slim
ARG MINIUPNPD_VER=2.3.1-1
ENV MINIUPNPD_VER=${MINIUPNPD_VER}
RUN set -x \
&& DEBIAN_FRONTEND=noninteractive apt-get update \
&& DEBIAN_FRONTEND=noninteractive apt-get install -y \
--no-install-recommends nftables miniupnpd=${MINIUPNPD_VER} \
&& rm -rf /var/lib/apt/lists/*
VOLUME ["/etc/miniupnpd/"]
CMD ["miniupnpd", "-d", "-f", "/etc/miniupnpd/miniupnpd.conf"]
compose
version: "3.9"
services:
miniupnpd:
container_name: miniupnpd
image: shilazi/miniupnpd:v2.3.1-1
pull_policy: missing
network_mode: host
cap_add:
- NET_ADMIN
volumes:
- ./config/:/etc/miniupnpd/
# foreground runs in debug mode, will produce more and more log
logging:
options:
max-file: 5
max-size: 20m
cache-max-file: 5
cache-max-size: 20m
restart: unless-stopped
miniupnpd.conf
# 这三行配置的作用是检测路由器是否有公网 IP 或者在不受限制的 NAT 类型下面
# 如果检测不通过 UPnP 就不会起作用
#ext_perform_stun=yes
#ext_stun_host=stun.stunprotocol.org
#ext_stun_port=3478
# 使用系统时间而不是 miniupnpd 的运行时间
system_uptime=yes
# 这里的 UUID 请自己生成
uuid=793616a0-835d-4ef6-a9a6-c8136f2999e9
# WAN 口的接口名称
ext_ifname=ppp0
# 可以随便写,多重 NAT 不写会报错
# 不参与实际的 nftables 配置,仅用于检测
ext_ip=1.1.1.1
# 是否禁用 ipv6
ipv6_disable=yes
# 是否启用 UPnP
enable_upnp=yes
# 是否启用 NAT-PMP
enable_natpmp=yes
# LAN 口的接口名称
listening_ip=br0
# 自定义 chain 信息
# https://github.com/miniupnp/miniupnp/tree/master/miniupnpd/netfilter_nft#custom-chains
upnp_table_name=filter
upnp_forward_chain=miniupnpd
upnp_nat_table_name=nat
upnp_nat_chain=prerouting_miniupnpd
upnp_nat_postrouting_chain=postrouting_miniupnpd
# 这两行的配置的意思是只允许将路由器 WAN 口的 1024-65535 的端口映射到内网 192.168.2.0/24 段的 1024-65535 端口
allow 1024-65535 192.168.2.0/24 1024-65535
deny 0-65535 0.0.0.0/0 0-65535
Content type
Image
Digest
sha256:e62f31ba0…
Size
28.8 MB
Last updated
almost 3 years ago
docker pull shilazi/miniupnpd:v2.3.1-1