什么是端口?

端口是指设备和外界通讯的出入口。端口可以分为「物理端口」和「虚拟端口」两类。

  • 物理端口:又称为接口,是可见的端口。例如 USB 接口,HDMI 端口等等。
  • 虚拟端口:是指计算机内部的端口,是不可见的,用来进行操作系统和外界进行交互使用的。

image.png

那么到底什么是虚拟端口呢?有什么作用呢?
我们都知道计算机之间相互通信,通过 ip 地址就可以做到。
image.png

但是,每台计算机都运行着各自的程序,例如计算机 A 要访问计算机 B 的微信,光通过 IP 地址去访问是不够精确的。这是因为 IP 地址只能表示具体的电脑并不能表示电脑中某个程序,这就需要端口来解决。
image.png
例如访问 192.168.88.102:5678 就表示访问计算机 B 的微信程序。
再简单说:IP 地址相当于小区的地址,端口表示各个住户的门牌号。

端口分类

Linux 系统是一个“超级大的小区”,可以支持 65535 个端口,这 6万多个端口可以分为 3 类进行使用:
1、公认端口
1~1023,通常用于一些系统内置或者知名程序预留使用,例如 SSH 服务的 22 端口,HTTPS 服务的 443 端口,非特殊需要不要使用这个范围内的端口。
2、注册端口
1024~49151,通常可以随意的使用,用于松散的绑定一些程序/服务。
3、动态端口
49152~65535,通常不会固定绑定程序,而是当程序对外进行网络连接时,用于临时使用。

仅用于展示,并非真实。
例如图片中,计算机 A 的微信链接计算机 B 的微信,A 使用的 50001 即为动态端口,临时找一个端口作为出口。
计算机 B 的微信使用端口 5678,即为注册端口,长期绑定此端口等待别人链接。

查看端口占用

通过 nmap 命令去查看端口的占用情况:

  1. # nmap 不是自带的命令,需要进行安装
  2. $ yum -y install nmap
  1. # 查看本机 IP 的端口
  2. $ nmap 127.0.0.1

image.png

或者通过 netstat 命令查看指定端口的占用情况:

  1. # netstat 不是自带的命令,需要进行安装
  2. $ yum -y install net-tools
  1. # 查看 6000 端口的占用情况
  2. $ netstat -anp | grep 6000