尽管搞IT多年,但一些基本性的概念却依旧似懂非懂,就好比说什么是端口号?你说知道吧,确实知道,每个程序都有个自己的端口号,有些都是约定俗称的,比如FTP端口21、SFTP端口22、IIS端口80等等 。可是让你去细细解释一下 , 还真不一定能回答上来 。
文章插图
什么是端口号?我们都知道,每台联网的计算机都有自己的IP,这个IP好比是在互联网上的地址编号,是唯一的 , 这样才能通过IP地址正常通信 。那么问题就来了,一台计算机它可能会提供多个服务,比如Apache服务、FTP服务、Email服务等等,通过IP地址来区分显示是不可能的 。这个时候我们就需要用端口来进行区分,每个服务对应指定的端口 , 这样通过IP+端口就能唯一确定要访问的服务了 。
文章插图
为了统一整个互联网的端口和网络服务的对应关系,以便让所有的主机都能使用相同的机制来请求或提供服务,同一个服务使用相同的端口,这就是协议 。
计算机中的协议主要分为两大类:面向连接的可靠的TCP协议(Transmission Control Protocol,传输控制协议);面向无连接的不可靠的UDP协议(User Datagram Protocol,用户数据报协议) 。这么多的端口 , 我们该如何知道哪个端口对应哪个呢?其实在linux系统中,提供了/etc/services的文件,可以进行查看 。
文章插图
端口信息查看方法(进程号与的端口号均可查看)以下的命令较多 , 详细的用法不必深究,先记住固定用法,后期遇到了再细讲 。
方法 1:使用 ss 命令
ss 一般用于转储套接字统计信息,类似于 netstat 输出的信息 , 但它显示了更多的 TCP 信息和状态信息 。它还可以显示所有类型的套接字统计信息,包括 PACKET、TCP、UDP、DCCP、RAW、Unix 域等 。
[root@localhost ~]#ss -tnlp | grep dmserverStateRecv-Q Send-QLocal Address:PortPeer Address:PortLISTEN05*:5900*:*users:LISTEN0128:::5236:::*users:((\"dmserver\",pid=7060,fd=4))[root@localhost ~]#
方法 2:使用 netstat 命令netstat 能够显示网络连接、路由表、接口统计信息、伪装连接以及多播成员 。既然已经会用ss的高级命令了 , 就忘记它吧 。
[root@localhost ~]# netstat -tnlpActive Internet connections (only servers)Proto Recv-Q Send-Q Local AddressForeign AddressStatePID/Program nametcp600 :::4236:::*LISTEN7059/dmaptcp600 :::5236:::*LISTEN7060/dmservertcp600 :::22:::*LISTEN6831/sshdtcp600 ::1:631:::*LISTEN6832/cupsdtcp600 ::1:25:::*LISTEN7225/master[root@localhost ~]#
方法 3:使用 fuser 命令fuser 工具会将本地系统上打开了文件的进程的进程 ID 显示在标准输出中 , 一般通过端口去查看对应的进程和和用户 。
[root@localhost ~]# fuser -v5236/tcp用户进程号 权限命令5236/tcp:dmdba7060 F.... dmserver
方法 4:使用 nmap 命令nmap(“Network Mapper”)是一款用于网络检测和安全审计的开源工具 。它最初用于对大型网络进行快速扫描 , 但它对于单个主机的扫描也有很好的表现 。
nmap 使用原始 IP 数据包来确定网络上可用的主机,这些主机的服务(包括应用程序名称和版本)、主机运行的操作系统(包括操作系统版本等信息)、正在使用的数据包过滤器或防火墙的类型,以及很多其它信息 。
[root@localhost ~]# nmap -sV -p 5236 localhostStarting Nmap 6.40 ( http://nmap.org ) at 2021-01-01 00:23 CSTmass_dns: warning: Unable to determine any DNS servers. Reverse DNS is disabled. Try using --system-dns or specify valid servers with --dns-serversNmap scan report for localhost (127.0.0.1)Host is up (0.00031s latency).Other addresses for localhost (not scanned): 127.0.0.1PORTSTATE SERVICEVERSION5236/tcp opentcpwrappedService detection performed. Please report any incorrect results at http://nmap.org/submit/ .Nmap done: 1 IP address (1 host up) scanned in 10.91 seconds
可以看出 , 对于普通用户来说,该命令似乎并不好用,也看得不大懂 , 还需要注意的是该命令一般不会默认安装,需要额外安装 。方法 5:使用 systemctl 命令systemctl 是 systemd 系统的控制管理器和服务管理器,通过systemctl可以查看服务的具体运行信息,包括PID、是否自启、启动命令等 。很遗憾,通过该命令只能查看到对应的PID进程号,如果要查看对应的端口号,可以通过本文中其他端口号、进程号查看方法进行互查 。
- 教你正确查看电脑显卡 怎么看电脑显卡配置
- 怎样查电脑ip地址的位置 电脑的ip查看方法
- 发过的状态在哪里看 在哪里查看微信状态记录
- 王者荣耀赛季什么时候更新 王者荣耀赛季结束时间的查看
- 笔记本电脑在哪查看型号和配置 电脑处理器型号怎么看
- 手机dwg文件查看器 手机dwg格式文件用什么软件打开
- 如何查看内存条的型号大小 电脑内存条正反面正确插法
- 主板型号在哪个位置 windows查看主板型号
- linux关闭swap分区 swap分区使用率过高
- 查看端口被哪个进程占用linux linux查看文件详细信息