linux - 配置防火墙及开放端口

本文详细介绍了在CentOs7系统中如何配置iptables防火墙,包括安装、配置、启动和管理iptables服务的过程,以及如何开放指定端口,如3000端口,确保服务正常运行。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

这里以 3000 端口为例

由于本人系统为 CentOs 7 ,在修改防火墙配置时找不到【iptable】文件,解决方法如下:

# 系统默认使用 firewall 作为防火墙,把他停止和屏蔽,并且装一个iptable
systemctl stop firewalld
systemctl mask firewalld

yum install -y iptables
yum install iptables-services

# 配置 /etc/sysconfig 下的 iptables 文件
# 在其中添加你想要开放的端口,这里以3000为例
vim /etc/sysconfig/iptables

# 向其中加入代码(复制 端口为22 那行的代码,粘贴到它的下一行,改下端口号即可),然后 :wq 保存即可
-A INPUT -p tcp -m state --state NEW -m tcp --dport 3000 -j ACCEPT

# 开启服务
systemctl start iptables.service

# 重启防火墙使配置生效
systemctl restart iptables.service

# 设置防火墙为开机启动
systemctl enable iptabls.service

其他命令

# 检查是否安装了 iptables
service iptables status

# 升级iptables
yum update iptables

# 开启/暂停服务
systemctl start iptables
systemctl stop iptables

# 禁止/解除禁止 iptables 服务
systemctl disable iptables
systemctl enable iptables
### 配置 Linux 防火墙开放指定端口Linux 系统中,开放指定端口通常涉及使用 `firewalld` 或 `iptables` 工具。以下分别介绍这两种方式的具体操作步骤。 #### 使用 `firewalld` 开放端口 `firewalld` 是一种动态管理防火墙的工具,支持运行时配置和永久配置开放指定端口时,可以通过以下命令实现: - 添加指定端口(如 8080)到防火墙规则中: ```bash sudo firewall-cmd --zone=public --add-port=8080/tcp --permanent ``` 该命令将端口 8080 添加到 `public` 区域,并设置为 TCP 协议,`--permanent` 表示该规则在系统重启后依然有效。 - 重新加载防火墙规则以应用更改: ```bash sudo firewall-cmd --reload ``` - 验证端口是否已成功开放: ```bash sudo firewall-cmd --query-port=8080/tcp ``` 如果返回 `yes`,则表示端口已成功开放;如果返回 `no`,则表示未开放- 查看当前开放的所有端口: ```bash sudo firewall-cmd --zone=public --list-ports ``` 该命令会列出当前区域中已开放的所有端口和协议组合。 - 移除指定端口: ```bash sudo firewall-cmd --permanent --remove-port=8080/tcp ``` 此命令用于删除之前添加的端口规则,同样需要重新加载防火墙规则才能生效。 #### 使用 `iptables` 开放端口 `iptables` 是一种更传统的防火墙管理工具,适用于大多数 Linux 发行版。开放指定端口时,可以通过以下命令实现: - 添加规则以允许指定端口(如 8080)的流量: ```bash sudo iptables -A INPUT -p tcp --dport 8080 -j ACCEPT ``` 该命令将允许所有目标端口为 8080 的 TCP 流量通过防火墙- 保存规则以确保系统重启后规则依然有效: ```bash sudo iptables-save > /etc/iptables/rules.v4 ``` 对于 Debian/Ubuntu 系统,保存规则到 `/etc/iptables/rules.v4`;对于 CentOS 系统,可以使用以下命令: ```bash sudo service iptables save ``` - 查看当前的防火墙规则: ```bash sudo iptables -L -n | grep 8080 ``` 该命令会列出与端口 8080 相关的规则,确保规则已正确添加。 #### 其他防火墙管理工具 对于 Ubuntu 系统,默认使用 `ufw`(Uncomplicated Firewall)作为防火墙管理工具。开放指定端口时,可以通过以下命令实现: - 允许指定端口(如 8080)的流量: ```bash sudo ufw allow 8080/tcp ``` 该命令将允许所有目标端口为 8080 的 TCP 流量通过防火墙- 重新加载防火墙规则以应用更改: ```bash sudo ufw reload ``` #### 确保服务正在监听端口 开放端口后,还需要确保服务正在监听该端口。可以通过以下命令检查端口状态: - 使用 `netstat` 检查端口状态: ```bash sudo netstat -tulnp | grep 8080 ``` 该命令会列出与端口 8080 相关的监听状态。 - 使用 `ss` 检查端口状态: ```bash sudo ss -tulnp | grep 8080 ``` 该命令的功能与 `netstat` 类似,但性能更优。 如果服务未在监听指定端口,可能需要检查应用程序的配置文件,确保其绑定到正确的 IP 地址和端口上。 #### 防火墙相关命令 - 查看防火墙状态: ```bash sudo systemctl status firewalld ``` 该命令会显示防火墙服务的当前状态,包括是否启用开机启动以及最近的运行状态信息。 - 启动防火墙: ```bash sudo systemctl start firewalld ``` 该命令会立即启动防火墙服务。 - 停止防火墙: ```bash sudo systemctl stop firewalld ``` 该命令会立即停止防火墙服务。 - 禁用防火墙开机自启: ```bash sudo systemctl disable firewalld ``` 该命令会禁用防火墙服务的开机自启动功能。 - 启用防火墙开机自启: ```bash sudo systemctl enable firewalld ``` 该命令会设置防火墙服务开机自启。 #### 示例:开放端口并验证状态 ```bash # 添加指定端口防火墙规则中 sudo firewall-cmd --zone=public --add-port=8080/tcp --permanent # 重新加载防火墙规则 sudo firewall-cmd --reload # 验证端口是否已开放 sudo firewall-cmd --query-port=8080/tcp ``` 上述命令将指定端口添加到防火墙规则中,并通过重新加载规则应用更改,最后验证端口是否已成功开放[^1]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值