简介

如标题,在公网服务器上创建tcp/udp 服务器,用于客户端调试.
2025-09-10T13:34:17.png

运行环境

node.js

docker

源代码

  • server.js 服务器程序
  • package.json node.js的依赖库
  • public\index.html UI界面
  • Dockerfile 创建docker 镜像 2025年9月版的node.js

下载

node-net-server.rar

docker使用

## 创建镜像
docker build -t node-net-server .

## 直接启动
docker run -d --name mynode --net=host   -v /opt/share/node:/usr/src/app node-net-server:latest

## 查看是否启动
docker logs mynode
 
 ## 进入容器
docker exec -it  mynode   /bin/bash


## 调试node
docker run -it --rm --name my-node-container -v /opt/share/node:/usr/src/app   node  /bin/bash


## 直接用node.js
docker run -itd --name nodeim --net=host   -v /opt/node/nodeim:/opt/node/nodeim node_lts-alpine:latest

端口防火墙

默认使用 808013000-16000端口,注意打开tcp/udp 防火墙

用户界面

IP:8080

问题

docker 使用 --net=host 不能监听到 tcp4端口时候,可以尝试在所有listen的函数中,指定 '0.0.0.0' 所有interface接口上都监听.

`
// 修改为明确指定绑定到所有接口
server.listen(port, '0.0.0.0',`

centos防火墙设置

既然 firewalld 未运行,可直接启用它并开放 8080 端口(比手动配置 iptables 更简单、易维护):

# 1. 启动 firewalld 服务并设置开机自启
sudo systemctl start firewalld
sudo systemctl enable firewalld

# 2. 开放 8080 端口(TCP 协议,永久生效)
# --permanent:永久规则(重启 firewalld 不失效);--add-port:指定端口和协议
sudo firewall-cmd --add-port=8080/tcp --permanent

# 开放 13000-16000 端口范围(TCP 协议,永久生效)
sudo firewall-cmd --add-port=13000-16000/tcp --permanent

# 如果需要同时开放 UDP 协议(根据实际需求选择)
sudo firewall-cmd --add-port=13000-16000/udp --permanent


# 3. 重新加载 firewalld 规则,使配置生效
sudo firewall-cmd --reload

# 4. 验证 8080 端口是否已开放
sudo firewall-cmd --list-ports | grep 8080
# 若输出 "8080/tcp",说明端口已成功开放