Linux 防火墙开放/限制端口

文章目录

在Linux中,可以使用 iptablesfirewalld来管理防火墙规则,并开放或关闭端口。

一、使用iptables

  1. 查看当前的防火墙规则
    iptables -L -n -v

  2. 开放端口

    开放端口给所有IP

    iptables -I INPUT -p tcp --dport 8080 -j ACCEPT

    开放端口给指定IP, 如192.168.1.2

    iptables -I INPUT -p tcp -s 192.168.1.2 --dport 8080 -j ACCEPT

    取消开放端口

    iptables -D INPUT -p tcp --dport 8080 -j ACCEPT

-I 代表插入(Insert),用于添加规则。
-D 代表删除(Delete),用于删除规则。
INPUT 是处理进入系统的数据包。
-p 后跟协议(如tcp, udp)。
--dport 后跟目标端口号。
-j 后跟处理规则(ACCEPT, DROP等)。
-s 表示访问当前机器的ip

  1. 限制端口被访问

    限制所有ip访问22端口

    sudo iptables -A INPUT -p tcp --dport 22 -j REJECT

    限制指定ip访问22端口, 如192.168.1.2

    sudo iptables -A INPUT -p tcp -s 192.168.1.2 --dport 22 -j REJECT

    #取消限制
    sudo iptables -D INPUT -p tcp --dport 22 -j REJECT

如果需要开放UDP端口,可以将tcp替换为udp

  1. 保存规则
    iptables-save > /etc/iptables/rules.v4

    或者在Debian/Ubuntu系统上:
    netfilter-persistent savenetfilter-persistent reload

    加载规则
    iptables-restore < /etc/iptables/rules.v4

  2. 重启iptables服务(如果需要)
    systemctl restart iptables

二、使用firewalld

  1. 查看当前的防火墙区域和端口开放设置:

    firewall-cmd --list-all

  2. 开放和删除端口(例如:8080):

    复制代码
    # 添加TCP端口
    firewall-cmd --zone=public --add-port=8080/tcp --permanent
     
    # 添加UDP端口
    firewall-cmd --zone=public --add-port=53/udp --permanent
    
    # 删除TCP端口
    firewall-cmd --zone=public --remove-port=8080/tcp --permanent
    
    # 删除UDP端口
    firewall-cmd --zone=public --remove-port=53/udp --permanent

--zone=public 表示操作的是public区域,你可以根据需要选择其他区域,例如--zone=dmz。

--permanent 表示永久添加或删除端口,如果不使用--permanent,更改只在当前会话内有效。

  1. 重新加载防火墙以应用更改:

firewall-cmd --reload

如果不确定系统使用的防火墙,可以使用systemctl status firewalld来检查firewalld服务的状态。

相关推荐
乘云数字DATABUFF29 分钟前
5分钟部署开源APM Databuff:OpenTelemetry全链路追踪入门实战
运维·后端
Web3探索者2 天前
可视化服务器管理和传统命令行区别是什么?新手教程:Linux 运维到底该用图形界面还是 SSH 命令行?
linux·ssh
zylyehuo2 天前
Linux系统中网线与USB网络共享冲突
linux
荣--2 天前
一键部署不是为了省时间 —— 它是把"买来的 PaaS"变成"自己的平台"的拐点
运维·zabbix·工程化·一键部署·平台化·边界设计
江华森2 天前
动手实战学 Docker — 从零到集群编排完全指南
运维
Avan_菜菜3 天前
FRP 内网穿透完整实战:从 HTTP 映射到 HTTPS 自签代理
运维·nginx·https
Sokach10153 天前
Linux Shell 脚本从零到能用:一个新手的一天学习总结
linux
SelectDB4 天前
Litefuse 开源并推出单进程轻量模式,25 秒就能跑起来的 Agent 可观测与评估平台
运维·后端·自动化运维
AlfredZhao4 天前
Docker 容器时区不对,`timedatectl` 不存在怎么办?
linux·timezone
zzzzzz3105 天前
9K Star 炸裂开源!这个 C 语言写的代码知识图谱,把 Linux 内核索引压缩到了 3 分钟
linux·服务器·sql