Linux使用防火墙开放或关闭TCP/UDP端口

前言

部署Web前后端项目时,服务器开启了防火墙服务,由于未配置开放目标端口,导致前端发送请求到后端失败了。既然开启了防火墙,那就需要配置开放或关闭相关端口,由此简单记录一下防火墙的基本命令。

一、使用说明

1.开启防火墙

systemctl start firewalld.service

2.关闭防火墙

systemctl stop firewalld.service

3.查看防火墙状态

firewall-cmd --state

4.开放TCP端口

firewall-cmd --zone=public --add-port=80/tcp --permanent    # 开放TCP 80端口
firewall-cmd --zone=public --add-port=443/tcp --permanent    # 开放TCP 443端口
firewall-cmd --zone=public --add-port=3306/tcp --permanent    # 开放TCP 3306端口
firewall-cmd --zone=public --add-port=6379/tcp --permanent    # 开放TCP 6379端口

5.关闭TCP端口

firewall-cmd --zone=public --remove-port=80/tcp --permanent   #关闭TCP 5672端口
firewall-cmd --zone=public --remove-port=443/tcp --permanent   #关闭TCP 443端口
firewall-cmd --zone=public --remove-port=3306/tcp --permanent   #关闭TCP 3306端口
firewall-cmd --zone=public --remove-port=6379/tcp --permanent   #关闭TCP 6379端口

6.开放UDP端口

firewall-cmd --zone=public --add-port=9595/udp --permanent    # 开放UDP 9595端口

7.关闭UDP端口

firewall-cmd --zone=public --remove-port=9595/udp--permanent   #关闭UDP 9595端口

8.查看监听的TCP端口

netstat -ntlp

9.查看监听的UDP端口

netstat -nulp

10.配置生效

firewall-cmd --reload

11.查看所有开放的端口

firewall-cmd --list-port

二、TCP和UDP的端口范围

(1)TCP和UDP的端口号范围都是0~65535。
(2)0~1023的端口号被预留给一些特定的服务和应用程序使用,例如HTTP服务使用的端口号是80,HTTPS服务使用的端口号是443,FTP服务使用的端口号是21等等。这些端口号被称为“知名端口”或“系统端口”。
(3)1024~49151的端口号被称为“注册端口”或“用户端口”,这些端口号可以被一些应用程序使用,但是不会与系统端口冲突。
(4)49152~65535的端口号被称为“动态端口”或“私有端口”,这些端口号可以被应用程序动态地分配使用。

Linux系统中,你可以使用命令行工具来检查防火墙是否允许特定端口的进出连接。这里主要介绍两种常用的工具:`netstat` 和 `ufw(uncomplicated firewall)` 或 `iptables`。 1. **netstat** (适用于所有现代Linux发行版): - 使用 `netstat -tuln` 命令可以看到所有监听的TCPUDP端口。如果某个端口显示为"LISTENING"状态,则表示该端口正在被监听,可能意味着防火墙已打开。 ``` netstat -tuln ``` 2. **ufw(Ubuntu/Debian)**: - 对于基于UFW的防火墙,可以输入 `sudo ufw status numbered` 来查看规则状态,找到你需要的端口号对应的条目,如果是`ALLOW IN`或`ALLOW OUT`则表示开火墙。 - 如果要临时检查某个端口,可以用 `sudo ufw allow <port number>`(例如 `sudo ufw allow 80`)后接 `sudo ufw status` 来查看。 3. **iptables(Red Hat/CentOS/Fedora)**: - 类似地,你可以用 `sudo iptables -L -n --line-numbers` 查看规则列表,找出行号对应端口的规则。如果看到类似 `-A INPUT -p tcp -m state --state NEW -m tcp --dport <port> -j ACCEPT` 的规则,说明该端口开放。 - 或者使用 `sudo iptables -t nat -L PREROUTING` 和 `sudo iptables -t mangle -L INPUT` 分别查看nat表和mangle表的规则,查找与端口相关的转发或数据包处理规则。 如果你想要检查一个服务是否已经设置好并监听在指定端口上,可以直接尝试访问该端口,如`telnet <hostname> <port>` 或 `nc <hostname> <port>`。如果连接成功,说明防火墙已允许相应流量。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值