Mac,Linux,Windows查看端口使用的方法有哪些?
查看端口使用的需求背景:企业在多个项目研发过程中,开发者需要了解端口使用的情况,从而为新项目选择一个合适的端口;在调试代码时,经常会遇到端口被占用的情形(往往是由于程序异常引发);定期的电脑或服务器安全检查时,需要了解对外提供的端口情况。
一、netstat查看端口使用情况
netstat命令可以显示网络连接,路由表,接口状态,伪装连接,网络链路信息和组播成员组等信息。netstat在mac、linux、windows都自带的一种端口查看工具,常见用法如下:
#列出所有端口
netstat -tuln
-t: 显示 TCP 连接信息
-u: 显示 UDP 连接信息
-l: 仅显示监听状态的端口
-n: 使用数字格式显示端口号,而不是服务名
#列出所有 tcp 端口
netstat -at
#显示网络接口列表
netstat -i
#显示网络工作信息统计表
netstat -s
#显示伪装的网络连线
netstat -m
#显示核心路由信息
netstat -r
#显示合并的信息
netstat -rs
二、lsof查看某一端口占用情况
lsof
(list open files)是一个用于列出当前系统打开文件的工具。linux、mac系统默认安装了lsof,可以直接使用;Windows提供了openfiles
命令来替代lsof。
#查看特定端口的占用情况
lsof -i:端口号
#查看监听该端口的进程信息,包括进程名称、进程ID、用户和协议等
lsof -P -n -i:端口号
三、mac、linux、windows查看端口使用的方法
3.1)linux查看端口使用的方法
1、用lsof查看端口被使用的情况并关闭该进程,更多指令,查看lsof命名详解。
# lsof -i:8000
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
nodejs 26993 root 10u IPv4 37999514 0t0 TCP *:8000 (LISTEN)
# kill -9 26993
2、用netstat查看端口被使用的情况,更多指令,查看netstat命令详解。
# netstat -tunlp | grep 8000
tcp 0 0 0.0.0.0:8000 0.0.0.0:* LISTEN 26993/nodejs
3、用ss命令查看端口被使用的情况。ss命令可以列出当前系统中打开的套接字(socket)信息,包括网络端口。
# sudo ss -tlnp | grep 80
LISTEN 0 511 0.0.0.0:80 0.0.0.0:* users (("nginx",pid=2170625,fd=10))
4、查看所有端口使用情况
# netstat -tuln
or
# ss -tuln
3.2)mac查看端口使用的方法
mac查看端口使用的方法基本与linux相同,除去ss指令外,lsof与netstat用法都相同。例如:查看某个端口的连接情况:
# lsof -i:80
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
wwmapp 21536 XXX 108u IPv4 0x1446ad03e92e2b 0t0 TCP 192.168.0.7:50110->60.29.232.121:http (ESTABLISHED)
mac自带了一个网络工具,可以使用该工具来查看端口使用情况。
3.3)windows查看端口使用的方法
1、使用netstat查看端口使用、找到进程、关闭应用的方法
1. 查看所有的端口占用情况
```
C:\>netstat -ano
```
协议 本地地址 外部地址 状态 PID
TCP 127.0.0.1:1434 0.0.0.0:0 LISTENING 3236
TCP 127.0.0.1:5679 0.0.0.0:0 LISTENING 4168
TCP 127.0.0.1:7438 0.0.0.0:0 LISTENING 4168
TCP 127.0.0.1:8015 0.0.0.0:0 LISTENING 1456
TCP 192.168.3.230:139 0.0.0.0:0 LISTENING 4
TCP 192.168.3.230:1957 220.181.31.225:443 ESTABLISHED 3068
TCP 192.168.3.230:2020 183.62.96.189:1522 ESTABLISHED 1456
TCP 192.168.3.230:2927 117.79.91.18:80 ESTABLISHED 4732
TCP 192.168.3.230:2929 117.79.91.18:80 ESTABLISHED 4732
2. 查看指定端口的占用情况
```
C:\>netstat -aon|findstr "9050"
```
协议 本地地址 外部地址 状态 PID
TCP 127.0.0.1:9050 0.0.0.0:0 LISTENING 2016
3. 查看PID对应的进程
```
C:\>tasklist|findstr "2016"
```
映像名称 PID 会话名 会话# 内存使用
========================= ======== ================
tor.exe 2016 Console 0 16,064 K
4. 结束该进程
```
C:\>taskkill /f /t /im tor.exe
```
四、常见的端口查看场景
1、如果发现某个重要端口被未知进程占用,如何快速定位并解决该问题
使用命令行工具(如netstat -ano
或sudo netstat -tuln
)查看当前活动的网络连接和侦听端口,确定哪个端口被占用,通过tasklist
(Windows)或ps -ef
(Linux)命令查找与占用端口相关的进程,一旦找到占用端口的进程,可以根据需要决定是否终止该进程或修改其配置文件以释放端口
# netstat -atnl | grep 端口号
or
# lsof -i:端口号
2、如何排查远程调用故障
使用命令行工具查看端口是否已经占用,查看对应进程的状态,查看网络防火墙状态。
五、高危端口使用清单
在安装某些常用软件时,会默认开启一些端口,常见的端口清单如下:
端口号 | 端口说明 | 渗透测试威胁( 漏洞) |
TCP 20,21 | FTP服务( 文件传输协议) | 允许匿名上传下载、爆破、嗅探、win提取、远程执行,以及各类后门程序( backdoor) |
TCP 22 | SSH服务(安全外壳协议) | 容易受到中间人攻击和黑客利用收集到的信息尝试爆破( ssh隧道、内网代理转发、文件传输等等) |
TCP 23 | Telnet服务(远程终端协议) | 爆破、嗅探,一般用于路由器和交换机登录(弱口令盛码最容易被破解) |
TCP 25 | SMTP服务(简单邮寄传输协议) | 邮件伪造,vrfy/expn命令查询邮件用户信息,可使用smtp-user-enumT具来自动跑 |
TCP/UDP 53 | DNS( 域名系统 ) | DNS溢出、远程代码执行、允许区域传送,dns劫持,缓存投毒欺骗以及各种基于dns隧道的远控 |
TCP/UDP 69 | TFTP服务(简单文件传输系统) | 尝试下载目标及其的各类重要配置文件 |
TCP 80-89, 443 8440-8450 8080- 8089 | 各种常用的Web服务端口 | 可尝试经典的top n、VPN、owa、webmail,目标oa,各类java控制台,各类服务器web管理面板,各类web中间件漏洞利用,各类web框架漏洞利用等等 |
TCP 110 | POP3服务(邮件协议版本3) | 可尝试爆破、嗅探 |
TCP 111,2049 | NFS服务( 网络文件系统 ) | 权限配置不当 |
TCP 135 | OPC等服务的链接端口 | 实际上是一个WINNT漏洞开放的135的端口情况容易引起自外部的”Snork”攻击 |
TCP 137,139,445 | SMB( NetBios协议) | 可尝试爆破以及smb自身的各种远程执行类漏洞利用SMB( 137);smb、嗅探( 139 );ms17-010、ms08-067( 445) |
TCP 512,513,514 | Linuxrexec服务(远程登录) | 可爆破,rlogin登录 |
TCP 554 | 554端口默认情况下用于”Real Time Streaming Protocol(实时流协议,简称RTSP) | 目前,RTSP协议所发现的漏洞主要就是RealNetworks早期发布的Helix Universal Server存在缓冲区溢出漏洞,相对来说,使用的554端口是安全的 |
TCP 873 | Rsync服务(数据镜像备份工具) | 匿名访问,文件上传 |
TCP 1029,20168 | 这两个端口是lovgate蠕虫所开放的后门端口 | 蠕虫病毒 |
TCP 1194 | OpenVPN服务(虚拟专用通道) | 想办法钓VPN账号进内网 |
TCP 1352 | Lotus服务( Lotus软件) | 弱口令,信息泄漏,爆破 |
TCP 1433 | SQL Server服务(数据库管理系 | 注入,提权,sa弱口令,爆破 |
TCP 1500 | ISPmanager服务(主机控制面板) | 弱口令 |
TCP 1723 | PPTP服务(点对点隧道协议) | 爆破想办法钓VPN账号,进内网 |
TCP 2082,2083 | cPanel服务(虚拟机控制系统) | 弱口令 |
TCP 3306 | MySql服务(数据库) | 注入,提取,爆破 |
TCP 3312,3311 | Kangle服务( Web服务器 ) | 弱口令 |
TCP 3389 | window rdp服务(远程桌面协议) | ms12-020、Windows rdp shift后门[需要03以下的系 统]、爆破 首先说明3389端口是windows的远程管理终端所开的端口,它并不是一个木马程序,请先确定该服务是否是你自己开放的 |
TCP 4000 | 4000端口是用于大家经常使用的qq聊天工具的,再细说就是为qq客户端开放的端口 | 抓包,破解 |
TCP 4848 | GlassFish服务(应用服务器 ) | 弱口令 |
TCP 5000 | Flask、Sybase/DB2服务(数据 | 爆破,注入 |
TCP 5432 | postgresql服务(数据库) | 爆破,注入,弱口令 |
TCP 5554 | 一种针对微软Isass服务的新蠕虫病 毒–震荡波( Worm.Sasser ),该病毒可以利用TCP5554端口开启一个FTP服务 | 主要被用于病毒的传播 |
TCP 5900,5901,5902 | VNC服务虚拟网络控制台,远程控制 | 弱口令爆破VNC提权 |
TCP 8000 | Ajenti ( linux服务器管理面板) | 弱口令 |
TCP 50070,50030 | Hadoop(分布式文件系统) | 默认端口未授权访问 |