在Linux中,端口(Port)是一个网络通信的概念,它是计算机与外部设备进行数据交换的接口,端口号是用来标识一个特定的进程或服务在网络上监听的一组数字,端口号的范围是从0到65535,其中0-1023是保留的系统端口,通常用于特定的系统服务,1024-49151是注册端口,用于一般的网络应用,49152-65535是动态或私有端口,这些端口没有固定的用途,由应用程序或操作系统根据需要动态分配。
本文将详细介绍Linux中端口的概念、类型以及如何查看和配置端口。
一、端口的概念
在计算机网络中,数据包通过IP地址和端口号来确定目标主机,端口号是一个16位的无符号整数,通常用两个十六进制数字表示,范围从0000到FFFF,80端口对应的十六进制数是0x80,TCP协议的默认端口号是21。
二、端口类型
在Linux中,端口可以分为以下几种类型:
1. 公有端口:公有端口是指可以在Internet上被任何主机访问的端口,这些端口的编号范围是0-1023,常见的公有端口有HTTP(80)、HTTPS(443)、FTP(21)、SSH(22)等。
2. 私有端口:私有端口是指只能在本地网络中被访问的端口,这些端口的编号范围是1024-49151,常见的私有端口有MySQL(3306)、Redis(6379)等。
3. 动态端口:动态端口是指由应用程序或操作系统动态分配的端口,当一个程序启动时,操作系统会为其分配一个可用的动态端口,当程序关闭时,动态端口会被释放回操作系统,动态端口的范围是49152-65535。
三、查看端口
在Linux中,可以使用`netstat`命令或`lsof`命令来查看当前系统中正在监听的端口。
1. 使用`netstat`命令查看端口:
netstat -tuln
这个命令会显示TCP和UDP协议的监听端口。
- `-t`表示显示TCP协议的端口;
- `-u`表示显示UDP协议的端口;
- `-l`表示仅显示监听状态的端口;
- `-n`表示以数字形式显示地址和端口号。
2. 使用`lsof`命令查看端口:
lsof -i :端口号
这个命令会显示指定端口号上正在运行的进程及其相关信息,如果没有指定端口号,它会显示所有正在监听的端口及其相关信息。
四、配置端口
在Linux中,可以使用`iptables`命令或`firewalld`服务来配置防火墙规则,限制或允许特定类型的连接通过指定的端口。
1. 使用`iptables`命令配置端口:
iptables -A INPUT -p tcp --dport 80 -j ACCEPT iptables -A INPUT -p udp --dport 80 -j ACCEPT
这两个命令分别允许TCP和UDP协议的80端口通过防火墙,如果要拒绝某个连接,可以使用`-A INPUT -p 协议 --dport 端口 -j REJECT`命令,拒绝TCP协议的9000端口:
iptables -A INPUT -p tcp --dport 9000 -j REJECT
2. 使用`firewalld`服务配置端口:
首先确保已经安装了`firewalld`服务,然后执行以下命令启用并设置开机自启动:
systemctl enable firewalld && systemctl start firewalld
接下来,执行以下命令添加一个新的防火墙区域:
firewall-cmd --permanent --new-zone=my_zone
将新区域与默认区域关联:
firewall-cmd --permanent --zone=my_zone --add-interface=eth0 --permanent
为新区域添加规则以允许或拒绝特定类型的连接通过指定的端口:
原创文章,作者:K-seo,如若转载,请注明出处:https://www.kdun.cn/ask/57586.html