无法在 debian vps 上打开端口

无法在 debian vps 上打开端口

尝试打开 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

nmapUDP命令默认不扫描端口。您需要使用此选项: -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

相关内容