使用 firewall-cmd 在 Linux-6 主机上自定 skills-xy 的服务,端口为 222/ucp,描述为:skills-222,在 dmz 区域放行 skills-xy 服务, 从xml文件中来创建
时间: 2024-02-20 13:01:49 浏览: 184
您可以按照以下步骤在 Linux-6 主机上使用 firewall-cmd 自定义 skills-xy 服务并在 dmz 区域放行:
1. 创建一个名为 skills-xy.xml 的 XML 文件,内容如下:
```xml
<?xml version="1.0" encoding="utf-8"?>
<service>
<short>skills-222</short>
<description>skills-xy service on port 222/ucp</description>
<port protocol="tcp" port="222"/>
</service>
```
2. 使用以下命令将服务添加到防火墙:
```bash
firewall-cmd --permanent --new-service-from-file=/path/to/skills-xy.xml --zone=dmz
```
其中,`/path/to/skills-xy.xml` 是您刚刚创建的 XML 文件的路径,`--zone=dmz` 表示放行到 dmz 区域。
3. 重新加载防火墙以使更改生效:
```bash
firewall-cmd --reload
```
现在,您的 skills-xy 服务已经成功添加到防火墙,并在 dmz 区域放行。
相关问题
firewall-cmd自定 skills-nis 的服务,端口为 1020/tcp,描述为:Nis-1020,在 dmz 区域放行 skills-nis 服务。
`firewall-cmd` 是 Linux 系统中用于管理网络防火墙(如iptables或systemd firewalld)的命令行工具。如果你想自定义一个名为 `skills-nis` 的服务,并将其端口设置为1020/tcp,描述为 "Nis-1020",并且允许它在 DMZ (Demilitarized Zone) 区域开放,你可以按照以下步骤操作:
1. 首先,确认你正在使用的是 systemd firewalld,因为它通常更方便地处理动态规则。如果是iptables,过程会有所不同。
2. 使用 `firewall-cmd` 添加一个新的端口转发规则:
```bash
sudo firewall-cmd --permanent --add-service=skills-nis --port=1020/tcp --description="Nis-1020"
```
这将告诉firewalld,你想要为 `skills-nis` 服务打开1020/tcp端口,并给它一个描述。
3. 设置服务区域为 DMZ。在firewalld中,你可以使用 `--zone` 参数指定网络区域:
```bash
sudo firewall-cmd --permanent --change-zone=dmz --permanent
```
4. 应用新的规则并让它们生效:
```bash
sudo firewall-cmd --reload
```
现在,`skills-nis` 服务的1020/tcp端口应该已经在 DMZ 区域对外开放了,并且有相应的描述 "Nis-1020"。
出现firewall-cmd: error: unrecognized arguments: --port=1020/tcp --description=Nis-1020报错
如果当你尝试使用 `firewall-cmd --permanent --add-service=skills-nis --port=1020/tcp --description=Nis-1020` 这样的命令时遇到 `error: unrecognized arguments` 报错,这通常意味着你在使用firewalld时遇到了一些语法错误或者是过时的版本问题。以下是几种可能的情况及解决方案:
1. **语法错误**:检查一下是否漏掉了 `--permanent` 或者 `-c`(表示永久性的改变)选项。对于添加服务和端口描述,正确的命令可能是:
```bash
sudo firewall-cmd --permanent --add-service=skills-nis --permanent --port=1020/tcp --description=Nis-1020
```
或者
```bash
sudo firewall-cmd -c --add-service=skills-nis --add-port=1020/tcp --service-description=Nis-1020
```
2. **版本兼容性**:检查firewalld的版本,因为有些功能可能在旧版本中不可用。确保你运行的是较新版本,可以通过 `firewall-cmd --version` 查看。某些特性可能需要在更新到最新版后才能正常工作。
3. **权限问题**:确保你以管理员 (`sudo`) 权限运行 `firewall-cmd`,因为更改防火墙策略通常是系统级的操作。
4. **服务名错误**:确认 `skills-nis` 是否是一个已知的服务名字。如果不是内置服务,需要先通过 `systemctl enable skills-nis` 或手动创建一个服务文件。
如果以上都不是问题,你可以尝试重启firewalld服务看看是否能解决问题:
```bash
sudo systemctl restart firewalld
```
阅读全文