在日常使用电脑时,有时会遇到程序无法联网或者远程访问被拦截的问题。很多人第一反应是打开图形界面去设置防火墙,但其实用命令行添加防火墙规则更快速,尤其适合远程管理服务器或批量操作场景。
Windows 系统下使用 netsh 命令
在 Windows 中,可以通过 netsh advfirewall 来管理防火墙规则。比如你想让外部设备访问本机运行的测试服务(端口 8080),可以直接添加一条入站规则。
netsh advfirewall firewall add rule name="允许8080端口" dir=in action=allow protocol=TCP localport=8080
这条命令的意思是:添加一条入站规则,名称为“允许8080端口”,允许 TCP 协议通过本地的 8080 端口。执行后,其他设备就可以通过该端口访问你的服务了。
如果之后想删除这条规则,只需替换为 delete 操作:
netsh advfirewall firewall delete rule name="允许8080端口" protocol=TCP localport=8080
Linux 系统中使用 iptables 或 ufw
在大多数 Linux 发行版中,iptables 是底层防火墙工具。比如你部署了一个 Web 应用监听 3000 端口,但发现外网连不上,可能是防火墙挡住了。
添加一条允许 3000 端口通行的规则:
sudo iptables -A INPUT -p tcp --dport 3000 -j ACCEPT
这表示在输入链中追加一条规则,针对目标端口为 3000 的 TCP 数据包,执行接受操作。不过注意,重启后规则可能丢失,需要保存:
sudo iptables-save > /etc/iptables/rules.v4
如果你用的是 Ubuntu 这类系统,推荐使用更友好的 ufw(Uncomplicated Firewall):
sudo ufw allow 3000/tcp
这样就开放了 3000 端口的 TCP 访问,命令简洁明了,适合新手快速上手。
macOS 使用 pfctl 配置规则
macOS 内置的是 PF 防火墙,虽然默认未启用,但在高级网络配置中很有用。假设你需要临时封锁某个 IP 地址频繁连接你的机器,可以手动编辑规则文件。
先创建规则文件 /etc/pf.block,内容如下:
block in from 192.168.1.100 to any
然后加载并启用:
sudo pfctl -f /etc/pf.block
sudo pfctl -e
这样来自 192.168.1.100 的所有入站连接都会被阻止。这种方式比图形界面更灵活,特别适合处理异常流量或调试网络问题。
命令行添加防火墙规则的核心优势在于效率和可脚本化。无论是开发调试、运维部署还是安全响应,掌握这些命令能让你少点几次鼠标,多几分从容。