You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

无法访问已暴露端口的Docker容器内Node服务问题求助

解决Synology NAS上Docker容器Web服务无法局域网访问的问题

我在Synology NAS上运行了一个Docker容器化的Web服务器,容器已正常启动,应用也完成初始化,但无法通过http://<NAS局域网IP>:8057访问服务。尝试直接访问容器内网IP http://172.20.0.2:8057 时,浏览器仅挂起无响应。

相关配置信息

Dockerfile

# syntax=docker/dockerfile:1

FROM node:18
ENV NODE_ENV=production
ENV SECRET_KEY=${SECRET_KEY}

WORKDIR /app

COPY ["package.json", "package-lock.json*", "./"]

RUN npm install --production

COPY . .

# public port
EXPOSE 8057

CMD [ "npm", "run", "start" ]

docker-compose.yml 配置片段

my-application:
    image: myname/myapplication:latest
    container_name: my-application
    environment:
      - SECRET_KEY=${SECRET_KEY} #defined in .env
    ports:
      - 8057:8057
    restart: unless-stopped

容器状态与网络信息

  • 启动命令:docker compose up -d
  • docker ps 输出:
CONTAINER ID   IMAGE                              COMMAND                  CREATED          STATUS                  PORTS                                                                NAMES
44866d03deaa   myname/myapplication:latest      "docker-entrypoint.s…"   10 minutes ago   Up 10 minutes           0.0.0.0:8057->8057/tcp                                               my-application
  • netstat 输出:
sudo netstat -tnulp | grep 8057
tcp        0      0 0.0.0.0:8057            0.0.0.0:*               LISTEN      17942/docker-proxy

排查步骤与解决方案

  • 确认容器内应用的监听地址:容器内网IP无法访问,通常是应用仅监听127.0.0.1而非0.0.0.0。进入容器执行netstat -tnulp | grep 8057,若显示监听127.0.0.1,需修改Node.js应用代码,将监听地址设为0.0.0.0,例如:
    app.listen(8057, '0.0.0.0', () => {
      console.log('Server running on port 8057');
    });
    
  • 检查Synology防火墙规则:打开DSM控制面板→安全性→防火墙,添加允许TCP 8057端口的入站规则,确保局域网流量能通过该端口。
  • 验证局域网连通性:在客户端设备上ping NAS的局域网IP,确认网络可达;若不通,检查设备与NAS是否在同一子网。
  • 本地测试端口可用性:在NAS主机上执行curl http://localhost:8057,若有响应说明端口映射正常,问题出在局域网网络或防火墙;若无响应,重新检查容器内应用状态。
  • 容器内网IP访问说明:Docker内部网桥IP(如172.20.0.2)仅NAS主机可访问,局域网其他设备必须通过NAS的局域网IP+映射端口访问服务。

内容的提问来源于stack exchange,提问作者tdc

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.12 19:40:32