文章目录
端口监控
服务器本地监控端口
服务器本地监控端口的命令有:
netstat ss lsof
netstat命令
在linux中,netstat命令用于显示各种网络相关信息,如网络连接,路由表,接口状态 (Interface Statistics),masquerade 连接,多播成员 (Multicast Memberships) 等等。其中比较常用的操作就是:查看端口占用、显示核心路由信息、找出指定程序的端口等。
对端口进程进行判断时,尽量先通过grep过滤端口和进程标记特殊字符串,然后结合wc -l(统计输出的行数)将结果转换成行数再进行比较,相对简单有效。而且会经过wc -l命令处理之后的结果一定是数字,这样再进行判断比较简单。
netstat -antlupe | grep httpd
netstat -antlupe | grep httpd|wc -l
查看某个端口到底被哪个进程占用
如果发现某个端口被占用后,可以用命令查看,该端口到底是被哪个进程所占用。命令如下:
netstat -pan | grep 5623
#其中5623位端口号
发现占用端口的pid之后,直接追踪程序
通过进程id查找程序–ps
ps -aux | grep pid 查看,进程程序名称
ss命令
ss是Socket Statistics的缩写。顾名思义,ss命令可以用来获取socket统计信息,它可以显示和netstat类似的内容。ss的优势在于它能够显示更多更详细的有关TCP和连接状态的信息,而且比netstat更快速更高效。
ss快的秘诀在于,它利用到了TCP协议栈中tcp_diag。tcp_diag是一个用于分析统计的模块,可以获得Linux 内核中第一手的信息,这就确保了ss的快捷高效
常用命令显示
ss -t -a 【显示TCP连接】
-t: tcp
-a: all
-l: listening 【ss -l列出所有打开的网络连接端口】
-s: summary 【显示 Sockets 摘要】
-p: progress
-n: numeric 【不解析服务名称】
-r: resolve 【解析服务名称】
-m: memory 【显示内存情况】
举例:
ss -antlpe | grep mysql | wc -l
lsof命令
lsof(list open files)是一个列出当前系统打开文件的工具。在linux环境下,任何事物都以文件的形式存在,通过文件不仅仅可以访问常规数据,还可以访问网络连接和硬件。
所以如传输控制协议 (TCP) 和用户数据报协议 (UDP) 套接字等,系统在后台都为该应用程序分配了一个文件描述符,无论这个文件的本质如何,该文件描述符为应用程序与基础操作系统之间的交互提供了通用接口。
因为应用程序打开文件的描述符列表提供了大量关于这个应用程序本身的信息,因此通过lsof工具能够查看这个列表对系统监测以及排错很有帮助。
lsof命令需要以root运行。
参数
默认 : 没有选项,lsof列出活跃进程的所有打开文件
组合 : 可以将选项组合到一起,如-abc,但要当心哪些选项需要参数
-a : 结果进行“与”运算(而不是“或”)
-l : 在输出显示用户ID而不是用户名
-h : 获得帮助
-t : 仅获取进程ID
-U : 获取UNIX套接口地址
-F : 格式化输出结果,用于其它命令。可以通过多种方式格式化,如-F pcfn(用于进程id、命令名、文件描述符、文件名,并以空终止)
-i:显示所有连接
@hostip)来显示指定到指定主机的连接
@host:port显示基于主机与端口的连接
1.查看端口为22的链接
lsof -i :22
2.查看所属root用户进程所打开的文件类型为txt的文件
lsof -a -u root -d txt
yum install lsof -y
lsof -i tcp:3306 |wc -l
ps对服务进程或进程数进行监控
ps -ef |grep mysql|wc -l
ps -ef |grep mysql
ps -ef |grep mysql|grep -v grep
在远程服务器监控本地端口
在远程服务器监控本地端口的命令:nmap telnet nc
在远程主机
nmap命令
nmap用于在远程机器上探测网络,执行安全扫描,网络审计和搜寻开放端口。它会扫描远程在线主机,该主机的操作系统,包过滤器和开放的端口。
NMAP命令用法
nmap [Scan Type(s)] [Options] {target specification
}
1.实例理解:
首先应该安装nmap命令
yum install nmap
用主机名和IP地址扫描系统
此时准备两台主机 server1tecmint和server2.tecmint.com
在server1中
1.nmap server2.tecmint.com或者
2.nmap 192.168.0.101(server2ip)
“ -v “选项后给出远程机器更详细的信息
扫描多台主机
通配符扫描子网
-A 扫描操作系统信息和路由跟踪
telnet命令
1.yum install telnet –y
telnet是常用来监测远程服务器端口是否通畅的一个命令,在非交互式需要采用特殊写法。过滤的关键字为Connected,返回1,说明端口是通的
查看端口是否开放
2.telnet 172.25.254.20 80
telnet 172.25.254.20 80 | grep Connected
telnet 172.25.254.20 80 | grep Connected | wc -l
nc命令
Linux nc命令用于设置路由器。
执行本指令可设置路由器的相关参数。
语法:
nc [-hlnruz][-g<网关...>][-G<指向器数目>][-i<延迟秒数>][-o<输出文件>][-p<通信端口>][-s<来源位址>][-v...][-w<超时秒数>][主机名称][通信端口...]
参数:
-g<网关> 设置路由器跃程通信网关,最多可设置8个。
-G<指向器数目> 设置来源路由指向器,其数值为4的倍数。
-h 在线帮助。
-i<延迟秒数> 设置时间间隔,以便传送信息及扫描通信端口。
-l 使用监听模式,管控传入的资料。
-n 直接使用IP地址,而不通过域名服务器。
-o<输出文件> 指定文件名称,把往来传输的数据以16进制字码倾倒成该文件保存。
-p<通信端口> 设置本地主机使用的通信端口。
-r 乱数指定本地与远端主机的通信端口。
-s<来源位址> 设置本地主机送出数据包的IP地址。
-u 使用UDP传输协议。
-v 显示指令执行过程。
-w<超时秒数> 设置等待连线的时间。
-z 使用0输入/输出模式,只在扫描通信端口时使用
实例:
1.TCP端口扫描
nc -v -z -w2 192.168.0.3 1-100
扫描192.168.0.3 的端口 范围是 1-100
2.扫描UDP端口
nc -u -z -w2 192.168.0.1 1-1000
/扫描192.168.0.3 的端口 范围是 1-1000
3.扫描指定端口
nc -nvv 192.168.0.1 80 //扫描 80端口
(UNKNOWN) [192.168.0.1] 80 (?) open
y //用户输入
4.检测端口是否畅通