@zkung/portcli
v0.1.0
Published
CLI for querying and managing local firewall port access on the LAN
Readme
portcli
一个轻量 Node CLI,用来查询、打开、关闭本机端口的防火墙访问规则,并尽量把范围限制在当前局域网,方便同一网络下的另一台机器访问你的服务。
功能
- 查询某个端口当前是否有进程在监听
- 查询该端口是否已经被系统防火墙放行
- 默认按本机局域网网段放行,而不是直接暴露给所有来源
- 提示当前局域网地址,方便另一台机器直接访问
适用平台
- Linux: 优先支持
ufw,其次支持firewalld、iptables - Windows: 支持
netsh advfirewall - macOS: 仅支持查询监听状态;端口级防火墙自动管理暂未实现
安装
在当前仓库里直接使用:
npm link然后即可执行:
portcli query 3000也可以不全局安装,直接用:
node bin/portcli.js query 3000用法
portcli query <port> [--protocol tcp|udp] [--json]
portcli open <port> [--protocol tcp|udp] [--scope localnet|any] [--source <CIDR/IP>] [--json]
portcli close <port> [--protocol tcp|udp] [--scope localnet|any] [--source <CIDR/IP>] [--json]
portcli localnet [--json]示例
查询端口:
portcli query 3000仅对当前局域网放行端口:
sudo portcli open 3000只允许指定网段访问:
sudo portcli open 3000 --source 192.168.1.0/24对所有来源放行:
sudo portcli open 3000 --scope any关闭之前放行的规则:
sudo portcli close 3000
sudo portcli close 3000 --scope any重要说明
放行防火墙端口不等于服务一定能从局域网访问。如果你的服务只监听在 127.0.0.1,另一台机器依旧无法连上。你需要确保应用监听在:
0.0.0.0例如:
- Node/Express:
app.listen(3000, '0.0.0.0') - Vite:
vite --host 0.0.0.0 - Python:
python -m http.server 3000 --bind 0.0.0.0
备注
iptables模式下新增的规则通常不会自动持久化到重启后- 某些云主机或路由器还会有额外安全组/ACL,需要单独放行
