网络管理命令

ping

ping命令主要的功能是用来检测网络的连通情况和分析网络速度。

-t:<存活数值> 设置存活数值TTL的大小
-c:-c <完成次数> 设置完成要求回应的次数
-W:<timeout> 在等待 timeout 秒后开始执行
-f:极速ping
-i<间隔秒数>:指定收发信息的间隔时间
-I<网络界面>:使用指定的网络接口送出数据包
-l<前置载入>:设置在送出要求信息之前,先行发出的数据包
-n:只输出数值
-p<范本样式>:设置填满数据包的范本样式
-q:不显示指令执行过程,开头和结尾的相关信息除外
-r:忽略普通的Routing Table,直接将数据包送到远端主机上
-R:记录路由过程
-v:详细显示指令的执行过程

ping一下baidu

[root@dmxsp ~]# ping baidu.com
PING baidu.com (220.181.38.251) 56(84) bytes of data

指定次数和时间,间隔ping baidu(ping 3次 间隔3秒)

[root@dmxsp ~]# ping -c 3 -i 3 baidu.com
PING baidu.com (220.181.38.148) 56(84) bytes of data.
64 bytes from 220.181.38.148 (220.181.38.148): icmp_seq=1 ttl=128 time=17.5 ms
64 bytes from 220.181.38.148 (220.181.38.148): icmp_seq=2 ttl=128 time=19.9 ms
64 bytes from 220.181.38.148 (220.181.38.148): icmp_seq=3 ttl=128 time=22.1 ms

— baidu.com ping statistics —
3 packets transmitted, 3 received, 0% packet loss, time 6017ms
rtt min/avg/max/mdev = 17.580/19.897/22.130/1.865 ms

-i 指定发送数据包时间间隔,-c 指定一共发送多少个数据包,-I 指定源地址,-q指定直接显示程序的启动和最后结果

[root@dmxsp ~]# ping -i 3 -c 10 -I 10.0.0.22 220.181.38.148 -q
PING 220.181.38.148 (220.181.38.148) from 10.0.0.22 : 56(84) bytes of data.

— 220.181.38.148 ping statistics —
10 packets transmitted, 10 received, 0% packet loss, time 27071ms
rtt min/avg/max/mdev = 12.339/14.931/18.998/2.404 ms

-i 3 发送周期为 3秒 -s 设置发送包的大小为1024 -t 设置TTL值为 255

[root@dmxsp ~]# ping -i 3 -s 1111 -t 223 10.0.0.22

nc

nc是netcat的简写,有着网络界的瑞士军刀美誉。因为它短小精悍、功能实用,被设计为一个简单、可靠的网络工具

-g<网关>:设置路由器跃程通信网关,最多可设置8个
-G<指向器数目>:设置来源路由指向器,其数值为4的倍数
-h:在线帮助
-i<延迟秒数>:设置时间间隔,以便传送信息及扫描通信端口
-n:直接使用IP地址,而不通过域名服务器
-o<输出文件>:指定文件名称,把往来传输的数据以16进制字码倾倒成该文件保存
-p<通信端口>:设置本地主机使用的通信端口
-r:乱数指定本地与远端主机的通信端口
-s<来源位址>:设置本地主机送出数据包的IP地址
-l:用于指定nc将处于侦听模式
-u:指定nc使用UDP协议,默认为TCP
-v:输出交互或出错信息,新手调试时尤为有用
-w:超时秒数,后面跟数字
-z:表示zero,表示扫描时不发送任何数据

安装

[root@dmxsp ~]# yum install nc -y

Chat Server(聊天服务器)

服务器之间的聊天跟软件和信息服务一样,比如你在计算机实验室,所有的对外的连接都是被限制的,你怎样和整天坐在隔壁房间的朋友沟通那?不要郁闷了,netcat提供了这样一种方法,你只需要创建一个Chat服务器,一个预先确定好的端口,这样子他就可以联系到你了

server(服务器)
netcat 命令在6666端口启动了一个tcp 服务器,所有的标准输出和输入会输出到该端口。输出和输入都在此shell中展示

[root@dmxsp ~]# nc -l 6666

Client(客户)
不管你在机器B上键入什么都会出现在机器A上

[root@web02 ~]$ nc 10.0.0.22 6666

 

文件传输

server(服务器)

[root@dmxsp ~]# nc -l 6666 < dmxsp.sh

Client(客户)

[root@web02 ~]$ nc -n 10.0.0.22 6666 > dmxsp.sh

 

server(服务器)

[root@dmxsp ~]# nc -l 6666 > php.zip

Client(客户)

[root@web02 ~]$ nc 10.0.0.22 6666 < php.zip

 

传输目录压缩

发送一个文件很简单,但是如果我们想要发送多个文件,或者整个目录,一样很简单,只需要使用压缩工具tar,压缩后发送压缩包。 如果你想要通过网络传输一个目录从A到B

server(服务器)

[root@dmxsp ~]# tar -cvf – dmxsp dmxsp.sh dm | nc -l 6666
dmxsp/
dmxsp/etc.tar.gz
dmxsp/dmxsp.gz
dmxsp.sh
dm/

Client(客户)

[root@web02 ~]$ nc -n 10.0.0.22 6666 | tar -xvf –
dmxsp/
dmxsp/etc.tar.gz
dmxsp/dmxsp.gz
dmxsp.sh
dm/

 

打开一个shell

我们已经用过远程shell-使用telnet和ssh,但是如果这两个命令没有安装并且我们没有权限安装他们,我们也可以使用netcat创建远程shell

server(服务器)

[root@dmxsp ~]# nc -l 6666 -e /bin/bash

Client(客户)

[root@web02 ~]$ nc 10.0.0.22 6666

 

反向shell

反向shell是指在客户端打开的shell。反向shell这样命名是因为不同于其他配置,这里服务器使用的是由客户提供的服务

server(服务器)

[root@dmxsp ~]# nc -l 6666

Client(客户)

[root@web02 ~]$ nc 10.0.0.22 6666 -e /bin/bash

 

telnet

一种远程登录的工具。同样可以检查某个主机是否开启某个端口

-8:允许使用8位字符资料,包括输入与输出
-a:尝试自动登入远端系统
-b<主机别名>:使用别名指定远端主机名称
-c:不读取用户专属目录里的.telnetrc文件
-d:启动排错模式
-e<脱离字符>:设置脱离字符
-E:滤除脱离字符
-f:此参数的效果和指定”-F”参数相同
-F:使用Kerberos V5认证时,加上此参数可把本地主机的认证数据上传到远端主机
-k<域名>:使用Kerberos认证时,加上此参数让远端主机采用指定的领域名,而非该主机的域名
-K:不自动登入远端主机
-l<用户名称>:指定要登入远端主机的用户名称
-L:允许输出8位字符资料
-n<记录文件>:指定文件记录相关信息
-r:使用类似rlogin指令的用户界面
-S<服务类型>:设置telnet连线所需的IP TOS信息
-x:假设主机有支持数据加密的功能,就使用它
-X<认证形态>:关闭指定的认证形态

安装

[root@dmxsp ~]# yum install -y xinetd
[root@dmxsp ~]# yum install -y telnet*

启动服务

[root@dmxsp ~]# systemctl start xinetd.service
[root@dmxsp ~]# systemctl start telnet.socket

关闭防火墙

[root@dmxsp ~]# systemctl stop firewalld.service

登录远程主机(默认只允许普通用户)

[c:\~]$ telnet 192.168.0.5

ss

是类似netstat的工具。能显示查看网络状态信息,包括TCP、UDP连接,端口

-a:显示所有网络连接
-l:显示LISTEN状态的连接(连接打开)
-m:显示内存信息(用于tcp_diag)
-n:不解析服务名称
-o:显示Tcp 定时器x
-p:显示进程信息
-s:连接统计
-r:解析主机名
-d:只显示 DCCP信息 (等同于 -A dccp)
-u:只显示udp信息 (等同于 -A udp)
-w:只显示 RAW信息 (等同于 -A raw)
-t:只显示tcp信息 (等同于 -A tcp)
-x:只显示Unix通讯信息 (等同于 -A unix)
-4:只显示 IPV4信息
-6:只显示 IPV6信息
–help:显示帮助信息
–version:显示版本信息

查看所有的tcp连接

[root@dmxsp ~]# ss -t -a

查看所有的udp连接

[root@dmxsp ~]# ss -u -a

显示LISTEN状态的进程信息

[root@dmxsp ~]# ss -pl

显示连接X服务器的进程

[root@dmxsp ~]# ss -x src /tmp/.X11-unix/*

显示本地打开的所有端口

[root@dmxsp ~]# ss -ln

用TCP 状态过滤Sockets

ss -4 state FILTER-NAME-HERE
ss -6 state FILTER-NAME-HERE

FILTER-NAME-HERE可以是下面的任何一个

listen:侦听来自远方的TCP端口的连接请求
syn-sent:再发送连接请求后等待匹配的连接请求(客户端)
syn-recv:再收到和发送一个连接请求后等待对方对连接请求的确认(服务器)
established:代表一个打开的连接
fin-wait-1:等待远程TCP连接中断请求,或先前的连接中断请求的确认
fin-wait-2:从远程TCP等待连接中断请求
close-wait:等待从本地用户发来的连接中断请求
closing:等待远程TCP对连接中断的确认
last-ack:等待原来的发向远程TCP的连接中断请求的确认
time-wait:等待足够的时间以确保远程TCP接收到连接中断请求的确认
closed:没有任何连接状态
all : 所有以上状态
connected : 除了listen and closed的所有状态
synchronized :所有已连接的状态除了syn-sent
bucket : 显示状态为maintained as minisockets,如:time-wait和syn-recv.
big : 和bucket相反

匹配远程地址和端口号

ss dst ADDRESS_PATTERN
ss dst 192.168.1.1
ss dst 192.168.21.1:http
ss dst 192.168.21.1:smtp
ss dst 192.168.21.1:443

将本地或者远程端口和一个数比较

ss sport = :http
ss dport = :http
ss dport \> :1024
ss sport \> :1024
ss sport \< :32000
ss sport eq :22
ss dport != :22
ss state connected sport = :http
ss \( sport = :http or sport = :https \)
ss -o state fin-wait-1 \( sport = :http or sport = :https \) dst 192.168.1/24

ss dport OP PORT 远程端口和一个数比较;ss sport OP PORT 本地端口和一个数比较

OP:可以代表以下任意一个:
<= or le:小于或等于端口号
>= or ge:大于或等于端口号
== or eq:等于端口号
!= or ne:不等于端口号
< or gt:小于端口号
> or lt:大于端口号

iftop

是一款实时流量监控工具,监控TCP/IP连接等,缺点就是无报表功能。必须以root身份才能运行

-i:设定监测的网卡,如:# iftop -i eth1
-B:以bytes为单位显示流量(默认是bits),如:# iftop -B
-n:使host信息默认直接都显示IP,如:# iftop -n
-N:使端口信息默认直接都显示端口号,如: # iftop -N
-F:显示特定网段的进出流量,如# iftop -F 10.10.1.0/24或# iftop -F 10.10.1.0/255.255.255.0
-h(display this message):帮助,显示参数信息
-p:使用这个参数后,中间的列表显示的本地主机信息,出现了本机以外的IP信息;
-b:使流量图形条默认就显示;
-f:这个暂时还不太会用,过滤计算包用的;
-P:使host信息及端口信息默认就都显示;
-m:设置界面最上边的刻度的最大值,刻度分五个大段显示,例:# iftop -m 100M

进入iftop画面后的一些操作命令(注意大小写)

按h切换是否显示帮助;
按n切换显示本机的IP或主机名;
按s切换是否显示本机的host信息;
按d切换是否显示远端目标主机的host信息;
按t切换显示格式为2行/1行/只显示发送流量/只显示接收流量;
按N切换显示端口号或端口服务名称;
按S切换是否显示本机的端口信息;
按D切换是否显示远端目标主机的端口信息;
按p切换是否显示端口信息;
按P切换暂停/继续显示;
按b切换是否显示平均流量图形条;
按B切换计算2秒或10秒或40秒内的平均流量;
按T切换是否显示每个连接的总流量;
按l打开屏幕过滤功能,输入要过滤的字符,比如ip,按回车后,屏幕就只显示这个IP相关的流量信息;
按L切换显示画面上边的刻度;刻度不同,流量图形条会有变化;
按j或按k可以向上或向下滚动屏幕显示的连接记录;
按1或2或3可以根据右侧显示的三列流量数据进行排序;
按<根据左边的本机名或IP排序;
按>根据远端目标主机的主机名或IP排序;
按o切换是否固定只显示当前的连接;
按f可以编辑过滤代码,这是翻译过来的说法,我还没用过这个!
按!可以使用shell命令,这个没用过!没搞明白啥命令在这好用呢!
按q退出监控。

中间的<= =>这两个左右箭头,表示的是流量的方向

TX:发送流量
RX:接收流量
TOTAL:总流量
Cumm:运行iftop到目前时间的总流量
peak:流量峰值
rates:分别表示过去 2s 10s 40s 的平均流量

glances

Glances 是一个由 Python 编写,使用 psutil 库来从系统抓取信息的基于 curses 开发的跨平台命令行系统监视工具。 通过 Glances,我们可以监视 CPU,平均负载,内存,网络流量,磁盘 I/O,其他处理器 和 文件系统 空间的利用情况
Glances 是一个用来监视 GNU/Linux 和 FreeBSD 操作系统的 GPL 授权的自由软件
glances工具可以在用户的终端上实时显示重要的系统信息,并动态地对其进行更新。这个高效的工具可以工作于任何终端屏幕。另外它并不会消耗大量的CPU资源,通常低于百分之二。glances在屏幕上对数据进行显示,并且每隔两秒钟对其进行更新

Glances 主要功能

CPU 信息 (用户的相关应用, 系统核心程序和空闲程序)
总内存信息,包括了物理内存,交换空间和空闲内存等等
之前的 1 分钟、5 分钟和 15 分钟平均的 CPU 负载
网络链接的下行和上行速度
处理器总数,以及其活动状态
硬盘 I/O 相关(读写)速度详情
当前挂载设备的磁盘使用情况
高 CPU 和内存使用的进程名,和相关应用的位置
在底部显示当前日期和时间
将消耗最高系统资源的进程用红色标出

Glances 会用一下几种颜色来代表状态

绿色:OK(一切正常)
蓝色:CAREFUL(需要注意)
紫色:WARNING(警告)
红色:CRITICAL(严重)

Glances 还提供了更多的可在其运行时开关输出信息选项的快捷键

a:对进程自动排序
c:按 CPU 百分比对进程排序
m:按内存百分比对进程排序
p:按进程名字母顺序对进程排序
i:按读写频率(I/O)对进程排序
d:显示/隐藏磁盘 I/O 统计信息
f:显示/隐藏文件系统统计信息
n:显示/隐藏网络接口统计信息
s:显示/隐藏传感器统计信息
y:显示/隐藏硬盘温度统计信息
l:显示/隐藏日志(log)
b:切换网络 I/O 单位(Bytes/bits)
w:删除警告日志
x:删除警告和严重日志
1:切换全局 CPU 使用情况和每个 CPU 的使用情况
h:显示/隐藏这个帮助画面
t:以组合形式浏览网络 I/O
u:以累计形式浏览网络 I/O
q:退出(‘ESC‘ 和 ‘Ctrl&C‘ 也可以)

作者 dmxsp

发表回复

您的电子邮箱地址不会被公开。