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服务的状态。

相关推荐
keyipatience3 分钟前
6.linux权限
linux·运维·服务器
小章UPUP10 分钟前
自部署 LaTeX/Markdown 写作平台
linux
yunhuibin17 分钟前
Linux 7.0 调度器:C 语言面向对象(OOPC)的极致实践
linux·运维·c语言
feng_you_ying_li18 分钟前
linux之进程概念:体系结构,操作系统的基本介绍
linux
SilentSamsara24 分钟前
TLS/HTTPS 实战:证书链、握手与生产配置
网络·数据库·网络协议·http·https
尘世壹俗人24 分钟前
linux编译安装git
linux·运维·git
U盘失踪了25 分钟前
URL 统一资源定位符详解
网络
爱学习的小囧26 分钟前
ESXi/vCenter 批量开关虚拟机完整教程 | PowerCLI 一键 + 原生脚本循环,新手也能落地
运维·网络·数据库·esxi
xxjj998a34 分钟前
如何安装linux版本的node.js
linux·运维·node.js
bbq粉刷匠35 分钟前
网络基础概念
网络·tcp/ip·计算机网络