Debian系统下Node.js防火墙配置指南(以UFW为例)
在Debian系统中,UFW(Uncomplicated Firewall) 是最常用的防火墙管理工具,因其简单易用的特性,非常适合为Node.js应用配置基础防火墙规则。以下是详细配置步骤及注意事项:
若系统未安装UFW,可通过以下命令安装:
sudo apt update
sudo apt install ufw
安装完成后,启用UFW以激活防火墙:
sudo ufw enable
系统会提示“Command may disrupt existing ssh connections”,输入 y
并回车确认(若通过SSH远程连接,需确保已允许SSH端口,见步骤4)。
Node.js应用通常运行在非标准端口(如3000、8080等),需通过UFW允许该端口的TCP流量(HTTP应用用80端口,HTTPS用443端口):
sudo ufw allow 3000/tcp # 替换为你的Node.js应用实际端口
若通过SSH远程管理服务器,需确保SSH端口(默认22)未被防火墙阻断:
sudo ufw allow 22/tcp
为提升安全性,可限制仅特定IP地址访问Node.js应用端口(如公司IP、个人电脑IP):
sudo ufw allow from 192.168.1.100 to any port 3000 # 替换为你的允许IP
此命令仅允许 192.168.1.100
访问3000端口,其他IP将被拒绝。
通过以下命令查看当前UFW规则及状态(确认规则是否生效):
sudo ufw status verbose
输出示例:
Status: active
Logging: on (low)
Default: deny (incoming), allow (outgoing), disabled (routed)
New profiles: skip
To Action From
-- ------ ----
3000/tcp ALLOW Anywhere
22/tcp ALLOW Anywhere
3000/tcp (v6) ALLOW Anywhere (v6)
22/tcp (v6) ALLOW Anywhere (v6)
若修改了防火墙规则(如添加/删除端口),需重新加载UFW使更改生效:
sudo ufw reload
若需完全重启UFW(如解决规则冲突):
sudo ufw restart
若需临时关闭防火墙(不推荐生产环境使用),可使用以下命令:
sudo ufw disable
若需更底层的网络控制,可使用iptables
(UFW底层依赖的工具),但配置更复杂:
# 安装iptables
sudo apt install iptables
# 允许3000端口TCP流量
sudo iptables -A INPUT -p tcp --dport 3000 -j ACCEPT
# 保存规则(需安装iptables-persistent)
sudo apt install iptables-persistent
sudo netfilter-persistent save
注意事项: