CentOS防火墙开放和关闭端口(iptables)

本文详细介绍如何在Linux系统中通过iptables命令管理防火墙端口,包括端口的开放、关闭、规则删除及常用操作命令。

本文内容转载自 http://www.awaimai.com/1650.html#comments

1 打开端口

以7777端口为例,命令如下:

$ /sbin/iptables -I INPUT -p tcp --dport 7777 -j ACCEPT
$ /etc/init.d/iptables save      # 保存
$ /etc/init.d/iptables status    # 查看端口状态

或者打开配置文件/etc/sysconfig/iptables,加入如下语句,然后重启防火墙:

-A INPUT -p tcp -m state --state NEW -m tcp --dport 7777 -j ACCEPT

然后重启防火墙:

$ /etc/init.d/iptables restart 

修改完成。其中,参数:

  • –A:参数就看成是添加一条规则,排序会放在最后
  • –I:新增加一条规则,排序会放在最前
  • –p:指定协议,我们常用的tcp 协议。当然也有udp,例如53端口的DNS
  • –dport:就是目标端口,当数据从外部进入服务器为目标端口
  • –sport:数据从服务器出去,则为数据源端口使用
  • –j:就是指定是 ACCEPT接收,或者 DROP 拒绝
  • –s:指定IP

所有参数请输入命令查看:

$ /sbin/iptables -h

2 关闭端口

关闭端口

$ iptables -A  INPUT -p tcp --dport 7777 -j DROP
$ /etc/init.d/iptables save                         # 保存

关闭IP访问:

$ iptables -A INPUT -p tcp -s 192.168.1.2 -j DROP

或者,打开配置文件/etc/sysconfig/iptables,加入如下语句:

-A INPUT -p tcp -m state --state NEW -m tcp --dport 7777 -j DROP

再重启防火墙。

3 删除规则

查看端口状态

$ /etc/init.d/iptables status    # 查看端口状态

可以看到端口num编号,然后按编号删除:

$ iptables -D INPUT 2

4 常用命令

$ /etc/init.d/iptables start     # 开启防火墙,或者service iptables start,以下同理
$ /etc/init.d/iptables stop      # 停止防火墙
$ /etc/init.d/iptables restart   # 重启防火墙
$ /etc/init.d/iptables status    # 查看端口状态
$ /etc/init.d/iptables save      # 保存配置
$ chkconfig iptables off         # 永久关闭防火墙
$ chkconfig iptables on          # 永久关闭后启用
### 如何在 CentOS 7 中使用 iptables 开放指定端口CentOS 7 上,默认情况下可能安装并启用了 `firewalld` 而不是传统的 `iptables`。如果需要使用 `iptables` 来开放特定端口,则需先确认其已启用并运行。 #### 确认 iptables 是否启动 可以通过以下命令检查 `iptables` 的状态: ```bash sudo systemctl status iptables ``` 如果没有启动,可以使用以下命令来启动设置开机自启: ```bash sudo systemctl start iptables sudo systemctl enable iptables ``` #### 添加规则以开放特定端口 要通过 `iptables` 打开端口,可按照如下方式操作: 1. **打开 TCP 端口** 如果需要开放某个具体的 TCP 端口(例如 80),则执行以下命令[^1]: ```bash sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT ``` 2. **打开 UDP 端口** 若要开放一个 UDP 端口(例如 53),则应使用此命令: ```bash sudo iptables -A INPUT -p udp --dport 53 -j ACCEPT ``` 3. **保存更改** 修改后的规则不会自动保存,在重启后会丢失。因此需要手动保存当前的 `iptables` 规则集: ```bash sudo service iptables save ``` 4. **验证规则是否生效** 可以查看现有的 `iptables` 规则列表以确保新添加的规则存在: ```bash sudo iptables -L -n ``` #### 停用 firewalld (如有必要) 由于默认情况下 CentOS 7 启动了 `firewalld` 并禁用了 `iptables`,所以为了防止冲突,建议停用 `firewalld` 或者仅选择其中一个工具进行管理。停止并禁用 `firewalld` 的方法如下: ```bash sudo systemctl stop firewalld sudo systemctl disable firewalld ``` 完成上述步骤之后即可成功利用 `iptables` 实现对所需端口开放。 ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值