在 CentOS 系统中,端口的开放是一个常见的系统管理任务,特别是在配置防火墙时,CentOS 7 和 CentOS 8 使用firewalld
作为默认的防火墙管理工具,而早期版本则使用iptaBLes
,本文将详细介绍如何在 CentOS 中开放端口,包括查看已开放的端口、开放新端口、关闭端口以及检查端口状态等操作。
查看已开放的端口
1、使用firewallcmd
命令:
```bash
firewallcmd listports
```
此命令会列出当前所有已开放的端口及其协议。
2、使用netstat
命令:
```bash
netstat ntlp
```
该命令显示当前所有正在监听的 TCP 端口及其对应的进程信息。
3、使用lsof
命令:
```bash
lsof i :端口号
```
检查 80 端口是否开放:
```bash
lsof i :80
```
如果没有输出,表示该端口未开放。
开放端口
1、使用firewallcmd
开放单个端口:
```bash
sudo firewallcmd zone=public addport=8080/tcp permanent
```
这条命令将在公共区域(public zone)永久开放 8080 端口。
2、使用firewallcmd
开放多个端口:
```bash
sudo firewallcmd zone=public addport=2000029999/tcp permanent
```
该命令将在公共区域永久开放 20000 到 29999 之间的所有端口。
3、重新加载防火墙规则:
```bash
sudo firewallcmd reload
```
重新加载防火墙规则以使更改生效。
4、使用iptables
开放端口(适用于 CentOS 6 及更早版本):
```bash
sudo iptables I INPUT p tcp dport 3306 j ACCEPT
sudo service iptables save
sudo service iptables restart
```
上述命令在 INPUT 链中添加一条规则,允许外部访问 3306 端口的 TCP 流量。
关闭端口
1、使用firewallcmd
关闭单个端口:
```bash
sudo firewallcmd zone=public removeport=8080/tcp permanent
```
这条命令将在公共区域永久移除 8080 端口的开放权限。
2、重新加载防火墙规则:
```bash
sudo firewallcmd reload
```
重新加载防火墙规则以使更改生效。
检查端口状态
1、使用firewallcmd
检查端口是否开放:
```bash
sudo firewallcmd zone=public queryport=8080/tcp
```
如果端口已经开放,该命令会返回yes
。
2、使用netstat
命令:
```bash
netstat ntlp | grep :8080
```
如果看到相应的条目,表示该端口已经开放。
管理防火墙服务
1、启动防火墙服务:
```bash
sudo systemctl start firewalld
```
2、停止防火墙服务:
```bash
sudo systemctl stop firewalld
```
3、设置防火墙开机自启:
```bash
sudo systemctl enable firewalld
```
4、取消防火墙开机自启:
```bash
sudo systemctl disable firewalld
```
5、查看防火墙状态:
```bash
sudo systemctl status firewalld
```
相关问答FAQs
1、如何查看特定端口是否开放?
可以使用以下命令来查看特定端口是否开放:
```bash
sudo firewallcmd zone=public queryport=8080/tcp
```
如果返回yes
,表示该端口已经开放,也可以使用netstat
命令:
```bash
netstat ntlp | grep :8080
```
如果看到相应的条目,表示该端口已经开放。
2、如何永久开放一个端口?
要永久开放一个端口,可以使用firewallcmd
命令并加上permanent
参数:
```bash
sudo firewallcmd zone=public addport=8080/tcp permanent
sudo firewallcmd reload
```
第一条命令将端口添加到防火墙规则中,第二条命令重新加载防火墙规则以使更改生效。