firewall 管理端口有两种常见方式:
- 直接添加单个端口,缺点是端口多了分不清哪个是干嘛的
- 通过服务将端口分组后管理,缺点是步骤稍显繁琐,需要先创建服务
因此写了一个 fws 脚本用来管理服务器多个应用程序的端口开闭。
首先找个地方(不限位置,建议应用数据目录下)建一个配置文件(名称不限,建议 fwservice.json),例如
{
"name": "registry",
"ports": [ 20150 ]
}
ports 项允许的形式及其解析结果:
20150
or"20150"
=>{"port":"20150/tcp"}
"20150/tcp"
=>{"port": "20150/tcp"}
"20150/udp"
=>{"port": "20150/udp"}
{"port": 20150, "desc": "xxx"}
=>{"port": "20150/tcp", "desc": "xxx"}
然后找个地方建一个文件用来收集各个应用的 fwservice.json 路径(默认 ~/.config/fwservice/list),形如
/path/to/my/app/1/fwservice.json
/path/to/my/app/2/fwservice.json
/path/to/my/app/2/fwservice.json
下载 fws.py 脚本到 ~/scripts/(或者其他位置),用 python3 执行即可。
也可以在 .bashrc 中加一个快捷方式:
alias fws="python3 ~/scripts/fws.py"
fws 常用命令:
- 指定服务列表文件路径(默认~/.config/fwservice/list):
-f <fwservice_list_file>
- 查看
- 查看激活的自定义服务:
fws ls
- 查看所有自定义服务:
fws ls -a
- 查看 public 域下的所有服务(包含自定义服务和系统服务):
fws ls -a --public
- 查看指定的自定义服务(名称只要保证能且仅能模糊匹配到一个服务名即可):
fws ls -s <service_like>
- 查看激活的自定义服务:
- 添加自定义服务到 public 域中:
fws add <service_like>
- 从 public 域中删除自定义服务:
fws rm <service_like>
评论区