本文简明介绍了什么是端口,并给出了如何在ubuntu系统中查看端口的占用情况。
1,什么是端口
端口是英文“port”的意译。可以认为是设备与外界通讯交流的出口。可以分为虚拟端口和物理端口。虚拟端口是指计算机内部或者交换机内部的端口,不可见。例如计算机中的80端口、21端口、23端口等。物理端口又称为接口,是可见端口,计算机背板的RJ45网口,交换机路由器集线器等RJ45端口。电话使用RJ11插口也属于物理端口的范畴。 这里说的端口专指虚拟端口。
端口具体是指接口电路中的一些寄存器,这些寄存器分别用来存放数据信息,控制信息和状态信息,相应的㐰分别称为数据端口、控制端口和状态端口。电脑运行的系统程序,运行到这些端口是,会查看端口是否打开或者关闭,如果关闭,系统继续进行,如果打开,则接受外部数据并执行。
如果把IP地址比作一间房子 ,端口就是出入这间房子的门。真正的房子只有几个门,但是一个IP地址的端口可以有65536(即:2^16)个之多!端口是通过端口号来标记的,端口号只有整数,范围是从0 到65535(2^16-1)。
在internet上,主机之间通过ip地址进行数据包的传送。当数据包达到目的主机后,系统会解析数据包报文首部的目的端口号,与此端口相对应的那个进程会领取数据并等待下一组数据的到来。
端口其实就是队,操作系统为各个进程分配了不同的队,数据包按照目的端口被推入相应的队中,等待被进程取用,在极特殊的情况下,这个队也是有可能溢出的,不过操作系统允许各进程指定和调整自己的队的大小。
不光接受数据包的进程需要开启它自己的端口,发送数据包的进程也需要开启端口,这样,数据包中将会标识有源端口,以便接受方能顺利地回传数据包到这个端口。
也就是说,如果把主机比作房间,那么端口就是一个个的门,数据的进出都需要开放对应的端口。
2,端口类型
大的来说,端口有两种类型,TCP端口和UDP端口。因为TCP和UDP是两种协议,因此各自的端口也独立。比如,TCP有235端口,UDP也有235端口,二者不冲突。端口有3种类型
端口类型 | 范围 | 说明 |
周知端口 | 0-1023 | 周知端口是众所周知的端口号 |
注册端口 | 1023-49151 | 分配给用户进程或应用程序。 |
动态端口 | 49151-65535 | 之所以称为动态端口,是因为它 一般不固定分配某种服务,而是动态分配。 |
3,常用端口
端口号 | 服务 | 说明 |
8080 | www服务 | 8080端口同80端口,是被用于WWW代理服务的,可以实现网页浏览 |
21 | FTP | FTP服务器所开放的端口,用于上传,下载。 |
22 | SSH | 免密码登陆 |
23 | Telnet | 远程登陆 |
25 | SMTP | SMTP服务器所开放的端口,用于发送邮件 |
80 | www服务 | 用于网页浏览 |
110 | POP3 | POP3服务器开放此端口,用于接受邮件 |
3306 | mysql | MySQL 数据库服务 |
完整的端口请查阅
4,ubuntu下端口相关操作
命令 | 说明 |
netstat -a | 查看已经连接的服务端口 |
netstat -ap | 查看所有的服务端口 |
netstat -ap | grep 8080 | 查看指定端口,可以结合grep命令 |
若要关闭使用这个端口的程序,使用kill + 对应的pid
kill -9 PID号