标签 netstat 下的文章

zabbix 客户端执行netstat -p 报错

zabbix_get执行的脚本中含有netstat -lantup命令报错,原因是-p参数需要root用户才能使用

zabbix_get执行脚本时报错:

(Not all processes could be identified, non-owned process info
 will not be shown, you would have to be root to see it all.

解决该问题的办法有两种:

通过配置vi /etc/sudoers 

Cmnd_Alias MONITORING = /bin/netstat,/sbin/sudo   
%monitor        ALL=(root) NOPASSWD:MONITORING

然后在修改userparameter_script.conf文件,利用sudo执行脚本即可

通过在执行的脚本中执行

chmod +s /bin/netstat

chmod +s 的意思是
为了方便普通用户执行一些特权命令,SUID/SGID程序允许普通用户以root身份暂时执行该程序,并在执行结束后再恢复身份

使用netstat统计查看访问连接信息

Netstat 命令用于显示各种网络相关信息,如网络连接,路由表,接口状态 (Interface Statistics),masquerade 连接,多播成员 (Multicast Memberships) 等等。
常见参数

-a (all)显示所有选项,默认不显示LISTEN相关
-t (tcp)仅显示tcp相关选项
-u (udp)仅显示udp相关选项
-n 拒绝显示别名,能显示数字的全部转化成数字。
-l 仅列出有在 Listen (监听) 的服務状态
-p 显示建立相关链接的程序名
-r 显示路由信息,路由表
-e 显示扩展信息,例如uid等
-s 按各个协议进行统计
-c 每隔一个固定时间,执行该netstat命令。

提示:LISTEN和LISTENING的状态只有用-a或者-l才能看到
状态列表:

LISTEN:侦听来自远方的TCP端口的连接请求
SYN-SENT:再发送连接请求后等待匹配的连接请求
SYN-RECEIVED:再收到和发送一个连接请求后等待对方对连接请求的确认
ESTABLISHED:代表一个打开的连接
FIN-WAIT-1:等待远程TCP连接中断请求,或先前的连接中断请求的确认
FIN-WAIT-2:从远程TCP等待连接中断请求
CLOSE-WAIT:等待从本地用户发来的连接中断请求
CLOSING:等待远程TCP对连接中断的确认
LAST-ACK:等待原来的发向远程TCP的连接中断请求的确认
TIME-WAIT:等待足够的时间以确保远程TCP接收到连接中断请求的确认
CLOSED:没有任何连接状态

常用使用方法:

并发请求数及其TCP连接状态:
netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}'

显示当前所有活动的网络连接:
netstat -na

列出所有端口 (包括监听和未监听的)
netstat -a

只显示监听端口 netstat -l
netstat -l

只列出所有监听 tcp 端口 netstat -lt
netstat -lt

只列出所有监听 udp 端口 netstat -lu
netstat -lu

只列出所有监听 UNIX 端口 netstat -lx
netstat -lx

显示所有端口的统计信息 netstat -s
netstat -s

显示 TCP 或 UDP 端口的统计信息 netstat -st 或 -su
netstat -st 
netstat -su

在 netstat 输出中显示 PID 和进程名称 netstat -p
netstat -p 可以与其它开关一起使用,就可以添加 “PID/进程名称” 到 netstat 输出中,这样 debugging 的时候可以很方便的发现特定端口运行的程序。
netstat -pt

显示系统不支持的地址族 (Address Families)
netstat --verbose

显示核心路由信息 netstat -r
netstat -r

显示网络接口列表
netstat -i

显示出所有处于监听状态的应用程序及进程号和端口号:
netstat -aultnp

如果想对一个单一的进行查询,只需要在命令后面再加上“| grep $”。这里就用到了管道符,以及grep筛选命令,$代表参数,也就是你要查询的那个。
如要显示所有80端口的网络连接:
netstat -aultnp | grep 80

如果还想对返回的连接列表进行排序,这就要用到sort命令了,命令如下:
netstat -aultnp | grep :80 | sort

当然,如果还想进行统计的话,就可以再往后面加wc命令。如:
netstat -aultnp | grep :80 | wc -l

其实,要想监测出系统连接是否安全,要进行多状态的查询,以及要分析,总结,还有就是经验。总的下来,才可以判断出连接是否处于安全状态。
netstat -n -p|grep SYN_REC | wc -l

这个命令可以查找出当前服务器有多少个活动的 SYNC_REC 连接。正常来说这个值很小,最好小于5。 当有Dos攻击或者邮件炸弹的时候,这个值相当的高。尽管如此,这个值和系统有很大关系,有的服务器值就很高,也是正常现象。
netstat -n -p | grep SYN_REC | sort -u

先把状态全都取出来,然后使用uniq -c统计,之后再进行排序。
wss8848@ubuntu:~$ netstat -nat |awk '{print $6}'|sort|uniq -c

列出所有连接过的IP地址。
netstat -n -p | grep SYN_REC | awk '{print $5}' | awk -F: '{print $1}'

列出所有发送SYN_REC连接节点的IP地址。
netstat -ntu | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -n

使用netstat命令计算每个主机连接到本机的连接数。
netstat -anp |grep 'tcp|udp' | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -n

列出所有连接到本机的UDP或者TCP连接的IP数量。
netstat -ntu | grep ESTAB | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -nr

检查 ESTABLISHED 连接并且列出每个IP地址的连接数量。
netstat -plan|grep :80|awk {'print $5'}|cut -d: -f 1|sort|uniq -c|sort -nk 1

centos最小化安装 无 ifconfig,netstat,dig的安装

centos7最小化安装之后,默认是没有 ifconfig,netstat,dig命令的:
yum安装ifconfig,netstat

yum install net-tools -y

yum安装dig

yum install bind-utils -y

dig命令的参数

参数选项

-b    设置查询时所使用的源IP地址.这个必须是一个本地主机网络接口上的地址.

-c    Internet上的DNS服务器,大部分是拒绝使用-c进行查询的.这个值可以是CH,HS等.

-f    使用批处理模式从文件中读取一个需要查询的列表.

-p    指定一个DNS服务器的端口,不使用-p选项,则使用默认端口53.

-t    设置查询类型.默认为A类型查询.

-x    反向查询.使用这个选项时,不需要提供name,class,type参数.dig会自动设置这些参数.

查询选项:
    dig提供了一些开关式的查询选项,用于设置查询方法和查询结果的输出.


       +[no]tcp
        查询时,是否使用TCP协议.默认情况下是使用UDP协议.

       +[no]ignore
        是否忽略设置有"截头"位的UDP回应包.若设置为不忽略,将使用TCP协议进行重试.

       +domain=somename
        设置一个包含域名的搜索列表,就像在/etc/resolv.conf文件中指定的一样.

       +[no]search
        是否使用搜索列表.默认不使用搜索列表.

       +[no]adflag
        是否在查询中设置AD(可信数据)位.

       +[no]cdflag
        是否在查询中设置CD(禁止检查)位.这个需要服务器不进行回应的DNSSEC确认.

       +[no]recurse
        在查询中设置RD(递归)位.默认情况下是设置有这个标志.表示dig正常情况下会进行
一个递归查询.当使用+nssearch或+trace时,这个选项将自动被禁用.

       +[no]nssearch
        设置这个选项后,dig将在权威DNS服务器中查找结果.然后显示每个DNS服务器的SOA记录.

       +[no]trace
        设置轨迹查询.即从根服务器开始追踪一个域名的解析过程.此选项默认是禁用的.打开
此选项后,dig将反复对name进行查询.它将从根服务器开始,显示每一个服务器回答.

       +[no]cmd
        设置是否打印初始化注释.默认是打开的.

       +[no]short
        设置是否简化输出.默认是详细的输出.

       +[no]identify
        在启用short选项后,是否显示IP地址和端口号.在short选项启用后,默认是不显示
IP地址和端口号的.

       +[no]comments
        是否输出注释行.默认是输出注释行.

       +[no]stats
        是否输出统计列表.默认是输出统计列表.

       +[no]qr
        是否输出发送出的查询内容.默认是不打印.

       +[no]question
        在输出中是否打印"提问部分".默认是打印"提问部分".

       +[no]answer
        在输出中是否打印"回答部分".默认是打印"回答部分".

       +[no]authority
        在输出中是否打印"权威部分".默认是打印"权威部分".

       +[no]additional
        在输出中是否打印"附加部分".默认是打印"附加部分".

       +[no]all
        设置或取消所有标记设置.

       +time=T
        设置查询的超时时间.默认超时是5秒.

       +tries=T
        设置UDP查询的重试次数.默认是3.

       +[no]multiline
        设置是否多行输出.默认每个记录一行.

       +[no]fail
        是否在接收到一个错误后,尝试下一个服务器.

       +[no]besteffort
        是否显示信息的摘要.默认是不显示.

最新

分类

归档

评论

其它