Linux 端口:基本概念及其功能

1. 端口基本概念

在计算机网络中,端口是一种逻辑或虚拟的通信连接。它为电脑或服务器分配能够流量进出的虚拟通道。具体而言,端口就是一组用来识别不同通信应用的数字,它们被用于标识运行在网络设备上的应用程序。

在计算机网络中,端口号被分为三类:知名端口号、注册端口号和动态/私有端口号。

1.1 知名端口号

从0到1023的端口号被称为知名端口号。这些端口号被预留给一些众所周知的服务和协议使用,例如HTTP(80)、FTP(21)和SSH(22)等。

#define SSH_PORT 22

1.2 注册端口号

从1024到49151的端口号被称为注册端口号。这些端口号是供用户或应用程序自由使用的。

#define MY_PORT 5000

1.3 动态/私有端口号

从49152到65535的端口号被称为动态/私有端口号。这些端口号不被分配给任何特定的服务或协议,而是由系统或应用程序动态分配。

2. 端口的功能

端口的主要功能是打开或关闭网络上的通信路径。

当应用程序需要向远程计算机发送数据时,它会使用一个端口号,使得远程计算机上的应用程序可以接收到数据。这个过程像打开一扇门,使得数据可以从一个地方流向另一个地方。

相反,当应用程序不再需要通信时,它会关闭端口号。这就像关闭一扇门,停止数据流动。

3. 端口的使用

Linux操作系统提供了许多工具,可以使用端口号来管理网络连接。

3.1 netstat命令

netstat命令可以用来列出所有正在使用的端口,以及与它们相关的应用程序和连接。

$ netstat -tulpn

其中:

-t用于显示TCP连接。

-u用于显示UDP连接。

-l用于显示监听的端口。

-p用于显示与应用程序相关联的进程ID。

-n用于禁用域名解析,以获得更快的结果。

示例输出:

Proto Local Address Foreign Address State PID/Program name

tcp 0.0.0.0:22 0.0.0.0:* LISTEN 484/sshd

tcp6 :::80 :::* LISTEN 1675/apache2

udp6 :::5353 :::* 348/avahi-daemon: r

3.2 lsof命令

lsof命令可以用于列出所有打开文件和端口的应用程序列表。

$ lsof -i :80

其中:

i选项用于指定Internet地址,主机名或端口。

:80用于指定要查找的端口号。

示例输出:

COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME

apache2 1675 root 4u IPv6 12115 0t0 TCP *:http (LISTEN)

apache2 1679 www-data 4u IPv6 12115 0t0 TCP *:http (LISTEN)

apache2 1680 www-data 4u IPv6 12115 0t0 TCP *:http (LISTEN)

3.3 firewall-cmd命令

firewall-cmd命令可以用于添加、删除和管理防火墙规则。它可以指定要允许或阻止的端口和协议。

例如,要允许TCP 80端口进入系统:

$ firewall-cmd --add-port=80/tcp --permanent

$ firewall-cmd --reload

其中:

--add-port选项用于指定要允许的端口号。

--permanent选项用于将规则永久保存在防火墙中。

--reload选项用于重新加载防火墙规则。

4. 结论

端口是计算机网络中非常重要的组成部分,它充当了网络通信的门户。通过了解端口的基本概念和功能,您可以更好地管理您的系统和网络连接。

操作系统标签