尝试打开 51820 UDP
iptables -A INPUT -p udp --dport 51820 -j ACCEPT
然后iptables -L
我可以看到
ACCEPT udp -- anywhere anywhere udp dpt:51820
然后我就 这么做/sbin/iptables-save > /etc/iptables/rules.v4
了
/sbin/iptables-save
/etc/init.d/networking restart
现在如果我这样做,nmap –sT –p-65535 localhost
我看不到 51820
如果我这样做,ss -lntp
我看不到 51820
如果我使用端口检查器网站检查开放端口它也显示已关闭
我的进程正在运行
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
626a571479e7 linuxserver/wireguard:latest "/init" About an hour ago Up 9 minutes 0.0.0.0:51820->51820/udp, :::51820->51820/udp wireguard
这是我的docker compose,如果有任何帮助
services:
wireguard:
image: linuxserver/wireguard:latest
container_name: wireguard
volumes:
- ./config:/config
ports:
- "51820:51820/udp"
在我的配置中
[Interface]
ListenPort = 51820
答案1
nmap
UDP
命令默认不扫描端口。您需要使用此选项: -sU
。如果nmap
没有发现51820
打开的端口,则意味着没有进程正在监听此端口(在localhost
)。
命令应该是:
nmap –sU –p 51820 localhost
要允许外部(即您所说的“portchecker 网站”)进行连接和端口扫描,您需要51820
在路由器上为运行 的机器创建一个端口 NAT Wireguard
。此外,您必须确保您的“portchecker 网站”可以扫描UDP
端口。
我认为51820
你的容器上的端口已经打开了,不在主机上。容器应该有一个 IP 地址(不同于主机 IP 地址)。如果您nmap
在容器的 IP 而不是主机 IP 上运行,您应该会看到您打开的端口。
下面是检查 Docker 容器 IP 的命令:
docker container inspect wireguard
更新
在与 @jotyhista 详细讨论后,问题似乎来自 Docker 映像本身。Wireguard
服务已停止,并且没有任何内容在监听端口51820
。该命令wg
未返回任何内容。因此,nmap
命令会显示端口closed
。
需要对服务中断的原因进行更深入的调查Wireguard
(检查日志?配置错误?)。这将修复初始问题,并且端口将open
。