Linux下网络工具合集

mtain 2019年03月22日 251次浏览

ifconfig

用途

网络设备查看和配置

使用示例

# 显示网络设备信息
ifconfig

# 启动或关闭网卡
ifconfig eth0 up/down

# 设置网卡的IP地址
ifconfig eth0 192.168.1.2 netmask 255.255.255.0

# 修改网卡Mac地址
ifconfig eth0 hw ether 00:11:22:33:44:55

# 启动/关闭ARP协议
ifconfig eth0 arp/-arp

nmap

用途

  1. 主机发现(Host Discovery)
  2. 端口扫描(Port Scanning)
  3. 版本侦测(Version Detection)
  4. 操作系统侦测(Operating System Detection)

使用示例

# 网段主机发现
nmap -sP 192.168.1.0/24

# 扫描指定IP端口(添加-vv获取详细信息)
nmap 192.168.1.2

# 操作系统侦测
nmap -O 192.168.1.2

# 对目标地址进行Ping扫描
namp -sP <target ip>

# 路由追踪
nmap -traceroute <target ip>

# SYN扫描:利用基本的SYN扫描方式测试其端口开放状态
namp -sS -T4 <target ip>

# FIN扫描:利用FIN扫描方式探测防火墙状态。FIN扫描方式用于识别端口是否关闭,收到RST回复说明该端口关闭,否则说明是open或filtered状态
namp -sF -T4 <target ip>

# ACK扫描:利用ACK扫描判断端口是否被过滤。针对ACK探测包,为被过滤的端口(无论打开或关闭)会回复RST包
namp -sA -T4 <target ip>

# 扫描前不进行Ping扫描测试
nmap -Pn <target ip>

# 根据target.txt文件中ip地址列表,所有主机
nmap -iL target.txt
# 版本检测扫描
nmap -sV <target ip>


traceroute

用途

路由追踪

使用示例

traceroute www.baidu.com

参数: -n 显示IP地址,不查主机名  -m 设置跳数  
      -q 4每个网关发送4个数据包  -w 把对外发探测包的等待响应时间设置为3秒

route

用途

路由表管理

使用示例

# 查看路由表
route -n
Destination 目标网络或目标主机,Gateway 网关,Genmask 网络掩码,Flags 旗标Metric 距离、跳数

# 为网域或主机添加路由
route add [-net|-host] [网域或主机] netmask [mask] [gw|dev]
route del [-net|-host] [网域或主机] netmask [mask] [gw|dev]

如果是多网卡,可以设置默认路由,选择网络的出口

网络监控

查看网卡网络流量,查看占用带宽的进程等

iftop

# 监控网卡流量
iftop -i eth0

-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  帮助,显示参数信息
-p  使用这个参数后,中间的列表显示的本地主机信息,出现了本机以外的IP信息;
-b  使流量图形条默认就显示;
-f  过滤计算包用的;
-P  使host信息及端口信息默认就都显示;
-m  设置界面最上边的刻度的最大值,刻度分五个大段显示,例:# iftop -m 100M

nethogs

# 查看进程的网络流量
nethogs eth0

vnstat

通过网卡监控数据库, 统计网络流量信息

# 创建网卡监控数据库
vnstat -u -i eth0

# 网卡实时监控
vnstat -l -i eth0

# 按小时统计
vnstat -h 
# 按周统计
vnstat -w
# 按月统计
vnstat -m 
# 显示流量最高的前10天
vnstat -t

# vnstati可以将统计结果输出图片,vnstati无需再次安装,它与vnstat一并安装

vnstati -s -i eth0 -o network-log.png
vnstati -h -i eth0 -o ~/network-log.png

telnet

用途

  1. telnet协议
  2. 探测端口是否开放

使用示例

探测端口是否开放
[root@server ~]# telnet 127.0.0.1 22
Trying 127.0.0.1...
Connected to 127.0.0.1.
Escape character is '^]'.
SSH-2.0-OpenSSH_7.4

iptables

用途

  1. 数据包过滤,处理(防火墙,开放端口,IP黑名单)
  2. NAT转发(如Docker容器的端口暴露)

iperf

用途

网络性能测试工具

使用示例

单线程TCP
iperf -s -p 12345 -i 1 -M		#服务端开启12345端口

iperf -c 192.168.64.148 -p 12345 -i 1 -t 100 -w20k -P 10		#客户端开启测试

-c:客户端模式,后接服务器ip
-p:后接服务端监听的端口

-i:设置带宽报告的时间间隔,单位为秒
-t:设置测试的时长,单位为秒
-w:设置tcp窗口大小,一般可以不用设置,默认即可

测试多线程,在客户端命令后面添加 -P 10即可开启10个线程

mtr

用途

mtr是常用的网络诊断工具(a network diagnostic tool),它把ping和traceroute并入一个程序的网络诊断工具中并实时刷新

使用示例

mtr -n www.baidu.com

brctl

用途

网桥管理工具, 查看网桥, 创建网桥, 网卡加入网桥

桥接就是把一台机器上的若干个网络接口“连接”起来。其结果是,其中一个网口收到的报文会被复制给其他网口并发送出去。

使用示例

brctl show             ##查看已有网桥
brctl addbr br0        ##添加网桥
ifconfig br0 172.25.254.232 netmask 255.255.255.0     ##为br0的虚拟网卡配置ip和子网掩码
brctl addif br0 eth0   ##添加一块物理网卡,将它附加到刚生成的虚拟网桥接口br0上

ifconfig br0 down      ##关闭网桥
brctl delif br0 eth0   ##删除物理网卡
brctl delbr br0        ##删除网桥

tcpdump

用途

网络抓包

nc

用途

网络瑞士军刀

  1. 端口扫描
  2. 聊天工具
  3. 文件传输

arping

用途

查看IP的MAC地址

**ARP:**地址解析协议,根据IP获取MAC地址

使用示例

# 查看ip的MAC地址(-c 1 指定检测次数)
arping 192.168.1.2

# 查看IP地址是否被不同的MAC占用或存在ARP攻击
arping -d 192.168.1.2