服务器测评网
我们一直在努力

Linux 什么是端口?端口在Linux中到底有什么用?

什么是端口

在计算机网络中,端口(Port)是一个重要的概念,它用于标识设备中不同的服务或进程,端口可以看作是计算机与外部通信的“门”,每个门对应一种特定的服务或应用程序,当数据从互联网传输到一台计算机时,计算机会根据端口号将数据准确地交给相应的应用程序处理,本文将详细解释Linux系统中端口的定义、分类、查看方法以及常见应用场景。

Linux 什么是端口?端口在Linux中到底有什么用?

端口的定义与作用

端口号是一个16位的无符号整数,取值范围从0到65535,它结合IP地址(用于标识网络中的设备)和传输层协议(如TCP或UDP),共同构成了网络通信的完整目标,当用户访问一个网站时,浏览器通常会通过TCP协议连接到服务器的80端口(HTTP)或443端口(HTTPS),从而获取网页内容。

端口的引入解决了单一IP地址下多服务并发的问题,一台服务器可能同时运行Web服务、邮件服务、文件传输服务等多种应用,每个服务通过不同的端口号进行区分,确保数据能够准确送达目标进程。

端口的分类

根据端口号的范围和用途,端口可分为三类:

端口类型 端口号范围 用途说明
公认端口 0-1023 系统保留端口,分配给常用的服务,如HTTP(80)、HTTPS(443)、FTP(21)等。
注册端口 1024-49151 用户或应用程序可自由使用的端口,但需向IANA(互联网号码分配局)注册。
动态端口 49152-65535 临时端口,通常用于客户端发起的随机连接,如临时数据传输。

Linux系统中查看端口的方法

在Linux系统中,管理员可以通过多种命令查看端口状态、占用情况及相关进程信息,以下是常用方法:

使用netstat命令

netstat是一个传统的网络工具,可显示网络连接、路由表、接口统计等信息,查看端口状态的常用选项包括:

Linux 什么是端口?端口在Linux中到底有什么用?

  • netstat -tuln:显示所有监听的TCP(-t)和UDP(-u)端口,并以数字形式显示地址和端口(-n)。
  • netstat -tulnp:在上述基础上显示占用端口的进程ID(PID)和名称(-p)。

示例输出:

Active Internet connections (only servers)  
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name  
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      1234/sshd  
tcp6       0      0 :::80                   :::*                    LISTEN      5678/nginx  
udp        0      0 0.0.0.0:68              0.0.0.0:*                           9100/dhclient  

使用ss命令

ssnetstat的替代工具,速度更快且功能更强大,推荐在Linux新版本中使用:

  • ss -tuln:显示监听的TCP和UDP端口。
  • ss -tulnp:显示端口对应的进程信息。

示例输出:

Netid  State   Recv-Q  Send-Q    Local Address:Port   Peer Address:Port  
tcp    LISTEN  0       128          0.0.0.0:22           0.0.0.0:*    users:(("sshd",pid=1234,fd=3))  
tcp    LISTEN  0       511             [::]:80              [::]:*    users:(("nginx",pid=5678,fd=7))  
udp    UNCONN  0       0        0.0.0.0:68            0.0.0.0:*    users:(("dhclient",pid=9100,fd=5))  

使用lsof命令

lsof(list open files)可用于查看打开的文件、网络连接等,通过指定端口号可查找占用该端口的进程:

  • lsof -i :端口号:查看指定端口的占用情况。lsof -i :80显示占用80端口的进程。

端口的配置与管理

在Linux系统中,管理员可能需要手动配置或管理端口,例如开放防火墙端口、修改服务监听地址等,以下是常见操作:

Linux 什么是端口?端口在Linux中到底有什么用?

使用firewalld管理端口(CentOS/RHEL)

# 开放80端口  
sudo firewall-cmd --permanent --add-port=80/tcp  
sudo firewall-cmd --reload  
# 查看已开放的端口  
sudo firewall-cmd --list-ports  

使用ufw管理端口(Ubuntu/Debian)

# 允许80端口  
sudo ufw allow 80/tcp  
# 查看规则  
sudo ufw status  

修改服务配置文件

修改Nginx的监听端口,需编辑/etc/nginx/sites-available/default文件,将listen指令修改为目标端口,然后重启服务:

sudo systemctl restart nginx  

常见端口及其对应服务

了解常用端口号有助于排查网络问题或配置服务,以下是部分常见端口:

服务名称 端口号 协议 用途
HTTP 80 TCP 超文本传输协议
HTTPS 443 TCP 安全超文本传输协议
SSH 22 TCP 安全远程登录
FTP 21 TCP 文件传输协议
SMTP 25 TCP 简单邮件传输协议
DNS 53 TCP/UDP 域名系统
MySQL 3306 TCP MySQL数据库服务
Redis 6379 TCP 内存键值数据库

端口的安全注意事项

端口的安全直接关系到系统的整体安全,以下是一些安全建议:

  1. 关闭不必要的端口:通过防火墙或服务配置关闭未使用的端口,减少攻击面。
  2. 限制访问来源:仅允许特定IP访问SSH(22端口)或数据库端口。
  3. 定期检查端口占用:使用netstatss命令监控异常端口,及时发现可疑进程。
  4. 使用非默认端口:对于SSH、数据库等服务,可修改默认端口以降低自动化攻击风险。

端口是Linux网络通信的核心组件之一,它通过端口号标识不同的服务或进程,确保数据能够准确传输,掌握端口的查看、配置和管理方法,对于系统管理员和网络工程师至关重要,无论是排查网络故障、部署服务还是保障系统安全,理解端口的原理和操作都是必不可少的基础技能,通过合理使用netstatss等工具,并结合防火墙策略,可以高效管理Linux系统中的端口,确保网络服务的稳定与安全。

赞(0)
未经允许不得转载:好主机测评网 » Linux 什么是端口?端口在Linux中到底有什么用?