什么是端口?
端口是指设备和外界通讯的出入口。端口可以分为「物理端口」和「虚拟端口」两类。
- 物理端口:又称为接口,是可见的端口。例如 USB 接口,HDMI 端口等等。
- 虚拟端口:是指计算机内部的端口,是不可见的,用来进行操作系统和外界进行交互使用的。
那么到底什么是虚拟端口呢?有什么作用呢?
我们都知道计算机之间相互通信,通过 ip 地址就可以做到。
但是,每台计算机都运行着各自的程序,例如计算机 A 要访问计算机 B 的微信,光通过 IP 地址去访问是不够精确的。这是因为 IP 地址只能表示具体的电脑并不能表示电脑中某个程序,这就需要端口来解决。
例如访问 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 命令去查看端口的占用情况:
# nmap 不是自带的命令,需要进行安装
$ yum -y install nmap
# 查看本机 IP 的端口
$ nmap 127.0.0.1
或者通过 netstat 命令查看指定端口的占用情况:
# netstat 不是自带的命令,需要进行安装
$ yum -y install net-tools
# 查看 6000 端口的占用情况
$ netstat -anp | grep 6000