Linux网络常用工具分类介绍

   日期:2020-07-12     浏览:100    评论:0    
核心提示:Linux网络命令较多,单纯的介绍网络命令的用法也没什么意思。本文将常见的网络命令进行分类,并做出思维导图,对每个分类的命令选择性的介绍其用途、常见选项和用法举例。BTW,不建议死记硬背每个命令,了解一下有哪些分类,该分类下有哪些命令就好了,具体用到了再查。1. 网络配置1.1 ip1.2 ifconfig2. 连通性测试2.1 ping用途用于网络连通性测试,常见参数用法举例2.2 traceroute3. 网络连接3.1 netstat3.2 nc4. 流量统计4.1

Linux网络命令较多,单纯的介绍网络命令的用法也没什么意思。本文将常见的网络命令进行分类,并做出思维导图,对每个分类的命令选择性的介绍其作用、常见选项和用法举例。BTW,不建议记住所有命令,了解一下有哪些分类,该分类下有哪些命令就好了,具体用到了再查。

Linux网络常用工具分类介绍

  • 1. 网络配置
    • 1.1 ip
      • 作用
      • 常见选项
      • 用法举例
    • 1.2 ifconfig
      • 作用
      • 常见选项
      • 用法举例
  • 2. 连通性测试
    • 2.1 ping
      • 作用
      • 常见参数
      • 用法举例
    • 2.2 traceroute
      • 作用
      • 常见选项
      • 用法举例
  • 3. 网络连接
    • 3.1 netstat
      • 作用
      • 常见选项
      • 用法举例
    • 3.2 nc
      • 作用
      • 常见选项
      • 用法举例
  • 4. 流量统计
    • iftop
      • 作用
      • 常见选项
      • 用法举例
  • 5. 交换与路由
    • route
      • 作用
      • 常见选项
      • 用法举例
  • 6. 防火墙
    • iptables
      • 作用
      • 常见选项
      • 用法举例
  • 7. 域名
    • host
      • 作用
      • 常见选项
      • 用法举例
  • 8. 抓包
    • tcpdump
      • 作用
      • 常见选项
      • 用法举例
  • 9. 网络传输
    • 9.1 wget
      • 作用
      • 常见选项
      • 用法举例
    • 9.2 curl
      • 作用
      • 常见选项
  • 10. 总结

1. 网络配置

1.1 ip

作用

ip命令用于配置网络,该命令很强大,强大到可以完全代替 ifconfig,netstat,route,arp 等。

常见选项

  • 对象:所有对象的名称可以用完整或缩写形式书写,例如address可以缩写成addr或只是a。
  • link 网络设备
  • address 设备上的协议(IP或IPv6)地址
  • addrlabel 协议地址选择的标签配置
  • neighbour ARP或NDISC缓存条目
  • route 路由表条目
  • rule 路由策略数据库中的规则
  • maddress 组播地址
  • mroute 组播路由缓存条目
  • tunnel IP隧道
  • xfrm IPSec协议框架
  • 选项
  • -V,-Version 显示指令版本信息
  • -s,-stats,statistics 输出详细信息
  • -r,-resolve 使用系统名称解析程序来打印DNS名称而不是主机地址
  • -h,-human,-human-readable 输出人类可读的统计信息和后缀
  • -f,-family FAMILY 指定要使用的协议族。协议族标识可以是inet、inet6、ipx、dnet或link之一。如果此选项不存在,则从其他参数中推测协议族。如果命令行的其余部分没有提供足够的信息来推测该族,则ip会退回到默认值,通常是inet或any。link是一个特殊的系列标识符,表示不涉及网络协议
  • -4 –family inet的快捷方式
  • -6 –family inet6的快捷方式
  • -0 –family link的快捷方式
  • -o,-oneline 将每条记录输出到一行,用’\’字符替换换行符

用法举例

  • 设置 ip 地址和查看 ip 地址:
  • 查看路由表
  • 查看指定 ip 地址的路由包来源(本例中我输入的本机ip):
  • 更改默认路由:
    sudo ip route add default via 默认路由
  • 显示网络统计数据:
  • 查看局域网设备MAC地址:

地址解析协议(ARP)用于将一个IP地址转换成它对应的物理地址,也就是通常所说的MAC地址。

  • 查看netlink消息:

monitor选项允许查看网络设备的状态。比如,所在局域网的一台电脑根据它的状态可以被分类成REACHABLE或者STALE。

  • 激活和停止网络设备:

1.2 ifconfig

作用

ifconfig 是网卡配置工具(configure a network interface),可以用来查看网卡信息(IP地址,发送包数个数,接受包数,丢包数等)以及配置网卡(开启关闭网卡,修改网络mtu,修改IP地址等)。

常见选项

  • up 启动指定网络设备/网卡
  • down 关闭指定网络设备/网卡。该参数可以有效地阻止通过指定接口的IP信息流,如果想永久地关闭一个接口,我们还需要从核心路由表中将该接口的路由信息全部删除
  • arp 设置指定网卡是否支持ARP协议
  • -promisc 设置是否支持网卡的promiscuous模式,如果选择此参数,网卡将接收网络中发给它所有的数据包
  • -allmulti 设置是否支持多播模式,如果选择此参数,网卡将接收网络中所有的多播数据包
  • -a 显示全部接口信息
  • -s 显示摘要信息(类似于 netstat -i)
  • add 给指定网卡配置IPv6地址
  • del 删除指定网卡的IPv6地址
  • <硬件地址> 配置网卡最大的传输单元
  • mtu<字节数> 设置网卡的最大传输单元 (bytes)
  • netmask<子网掩码> 设置网卡的子网掩码。掩码可以是有前缀0x的32位十六进制数,也可以是用点分开的4个十进制数。如果不打算将网络分成子网,可以不管这一选项;如果要使用子网,那么请记住,网络中每一个系统必须有相同子网掩码。
  • tunel 建立隧道
  • dstaddr 设定一个远端地址,建立点对点通信
  • -broadcast<地址> 为指定网卡设置广播协议
  • -pointtopoint<地址> 为网卡设置点对点通讯协议
  • multicast 为网卡设置组播标志
  • address 为网卡设置IPv4地址
  • txqueuelen<长度> 为网卡设置传输列队的长度

用法举例

  • 查看网络接口状态

  • 第一行:ens33 表示第一块网卡,UP(代表网卡开启状态),RUNNING(代表网卡的网线被接上),MULTICAST(支持组播)MTU:1500(最大传输单元):1500字节
  • 第二行:网卡的IP地址、子网掩码、广播地址( 专门用于同时向网络中(通常指同一子网)所有工作站进行发送的一个地址)。此网卡的 IP地址是 192.168.93.132,子网掩码是255.255.255.0,广播地址是192.168.93.255
  • 第三行:IPv6地址
  • 第四行:ether表示网卡的物理地址,可以看到目前这个网卡的物理地址(MAC地址)是 00:0c:29:3e:b9:3e;txqueuelen 是传输缓区长度大小;连接类型是以太网
  • 第五~八行:接收、发送数据包情况统计
  • lo 是表示主机的回坏地址,这个一般是用来测试一个网络程序,但又不想让局域网或外网的用户能够查看,只能在此台主机上运行和查看所用的网络接口。比如把 HTTPD服务器的指定到回坏地址,在浏览器输入 127.0.0.1 就能看到你所架WEB网站了。但只是您能看得到,局域网的其它主机或用户无从知道。
    第行:接收、发送数据包情况统计
  • 关闭/开启网卡:
sudo ifconfig ens33 down
sudo ifconfig ens33 up

2. 连通性测试

2.1 ping

作用

用于网络连通性和网速测试。

常见参数

用法举例


默认使用该命令会一直发送ICMP包直到用户手动中止,可以使用-c命令指定发送数据包的个数,使用-W指定最长等待时间,如果有多张网卡,还可以通过-I指定发送包的网卡。 在ping过程中按下ctrl+|会打印出当前的summary信息,统计当前发送包数量、接收数量、丢包率等。

2.2 traceroute

作用

traceroute 命令用来追踪网络数据包的路由途径。

常见选项

选项很多,用到时可以自行查看。

  • 常用选项
  • -d 使用Socket层级的排错功能。
  • -f 设置第一个检测数据包的存活数值TTL的大小。
  • -F 设置勿离断位。
  • -g 设置来源路由网关,最多可设置8个。
  • -i 使用指定的网络界面送出数据包。
  • -I 使用ICMP回应取代UDP资料信息。
  • -m 设置检测数据包的最大存活数值TTL的大小。
  • -n 直接使用IP地址而非主机名称。
  • -p 设置UDP传输协议的通信端口。
  • -r 忽略普通的Routing Table,直接将数据包送到远端主机上。
  • -s 设置本地主机送出数据包的IP地址。
  • -t 设置检测数据包的TOS数值。
  • -v 详细显示指令的执行过程。
  • -w 设置等待远端主机回报的时间。
  • -x 开启或关闭数据包的正确性检验。

用法举例

本机连接到qq网站的数据包路由途径:

3. 网络连接

3.1 netstat

作用

查看当前建立的所有网络连接。

常见选项

用法举例

3.2 nc

作用

nc(netcat),功能强大的网络工具,可以作为网络应用的debug分析,创建不同类型的网络连接。功能很多,例如实现简单的聊天工具,模拟ssh登录远程主机,远程传输文件,端口扫描等。

常见选项

用法举例

扫描192.168.0.1的1~100端口:

nc -zv 192.168.0.1 1-100

4. 流量统计

iftop

作用

查看网络流量的工具(display bandwidth usage on an interface by host)。

常见选项

用法举例

直接使用sudo iftop命令:

5. 交换与路由

route

作用

route用于查看和修改路由表。

常见选项

用法举例

  • 删除默认路由:
sudo route del default
  • 增加默认路由,网关为A,网卡为B:
sudo route add default gw A dev B

6. 防火墙

iptables

作用

强大的包过滤,处理工具,能够实现防火墙,NAT等功能。

常见选项

-t<表>:指定要操纵的表;
-A:向规则链中添加条目;
-D:从规则链中删除条目;
-i:向规则链中插入条目;
-R:替换规则链中的条目;
-L:显示规则链中已有的条目;
-F:清楚规则链中已有的条目;
-Z:清空规则链中的数据包计算器和字节计数器;
-N:创建新的用户自定义规则链;
-P:定义规则链中的默认目标;
-h:显示帮助信息;
-p:指定要匹配的数据包协议类型;
-s:指定要匹配的数据包源ip地址;
-j<目标>:指定要跳转的目标;
-i<网络接口>:指定数据包进入本机的网络接口;
-o<网络接口>:指定数据包要离开本机所使用的网络接口。

用法举例

  • iptables命令选项输入顺序:

iptables -t 表名 <-A/I/D/R> 规则链名 [规则号] <-i/o 网卡名> -p 协议名 <-s 源IP/源子网> --sport 源端口 <-d 目标IP/目标子网> --dport 目标端口 -j 动作

  • 表名包括:

raw:高级功能,如:网址过滤。
mangle:数据包修改(QOS),用于实现服务质量。
net:地址转换,用于网关路由器。
filter:包过滤,用于防火墙规则。

  • 规则链名包括:

INPUT链:处理输入数据包。
OUTPUT链:处理输出数据包。
PORWARD链:处理转发数据包。
PREROUTING链:用于目标地址转换(DNAT)。
POSTOUTING链:用于源地址转换(SNAT)。

  • 动作包括:

accept:接收数据包。
DROP:丢弃数据包。
REDIRECT:重定向、映射、透明代理。
SNAT:源地址转换。
DNAT:目标地址转换。
MASQUERADE:IP伪装(NAT),用于ADSL。
LOG:日志记录。

  • 查看已添加的iptables规则

7. 域名

host

作用

host命令是常用的分析域名查询工具,可以用来测试域名系统工作是否正常。

常见选项

-a:显示详细的DNS信息;
-c<类型>:指定查询类型,默认值为“IN“;
-C:查询指定主机的完整的SOA记录;
-r:在查询域名时,不使用递归的查询方式;
-t<类型>:指定查询的域名信息类型;
-v:显示指令执行的详细信息;
-w:如果域名服务器没有给出应答信息,则总是等待,直到域名服务器给出应答;
-W<时间>:指定域名查询的最长时间,如果在指定时间内域名服务器没有给出应答信息,则退出指令;
-4:使用IPv4;
-6:使用IPv6;

用法举例

8. 抓包

tcpdump

作用

tcpdump(dump traffic on a network)是一个命令行抓包工具,能抓任何协议的包(不仅仅是tcp)。

常见选项

用法举例

抓取目标主机192.168.0.108(其实就是本机哈)通过端口80的包:

9. 网络传输

9.1 wget

作用

非交互网络下载工具。

常见选项

选项较多,可以用到时再查:

用法举例

  • 最简单的方法就是加上文件url:
wget http://xxx/xxx/music.mp3
  • 递归

使用-r可以递归下载的网页。默认递归深度为4,相当于爬虫,通过-l指定递归深度。

  • 端点续传

默认不开启端点续传功能,传入-c参数后开启。

  • 批量下载

可以吧多个URL写入文件,然后用-i指定下载文件列表:

wget -I download.txt
  • 保存文件名

如果h不指定文件名,默认以最后一个符合/后面的字符作为保存文件名,手动-O指定保存文件名。

  • 其他

–limit-rate限制最大下载速度
-b 后台下载
-A 指定下载的文件格式

  • 镜像下载整个网站:
wget --mirror -p --convert-links -P baidu baidu.com

9.2 curl

作用

强大的URL传输工具,支持FILE, FTP, HTTP, HTTPS, IMAP, LDAP, POP3,RTMP, RTSP, SCP, SFTP, SMTP, SMTPS, TELNET以及TFTP等协议。 能模拟所有的浏览器的行为请求,例如refer,cookie,agent。也可以模拟表单数据。

常见选项

选项较多,用到时自己查:

  • 常用参数有:

-i 显示头部信息
-I 只显示头部信息,不显示正文
-X 指定请求方法,比如GET、POST等
-d 发送数据
–form模拟表单,利用这个参数可以上传文件、模拟点击按钮等
-A 指定用户代理,比如Mozilla/4.0
-b 设置cookie
-c 指定cookie文件
-e 指定referer,有些网址必须从某个页面跳转过去
–header 设置请求的头部信息
–user 有些页面需要HTTP认证, 传递name:password认证

10. 总结

本文只介绍了常见的网络命令,主要来自net-tools和iproute2工具包,选项的截图并不完整,用到时请自查。若是随便看一下信息,传统工具就很好。但传统工具开销可能比较大且粒度太粗。其实市面上有很多开源工具,比如bcc,开销小,性能高,粒度够细,还能自定义获取内核信息。总之,看需求,用工具。

 
打赏
 本文转载自:网络 
所有权利归属于原作者,如文章来源标示错误或侵犯了您的权利请联系微信13520258486
更多>最近资讯中心
更多>最新资讯中心
0相关评论

推荐图文
推荐资讯中心
点击排行
最新信息
新手指南
采购商服务
供应商服务
交易安全
关注我们
手机网站:
新浪微博:
微信关注:

13520258486

周一至周五 9:00-18:00
(其他时间联系在线客服)

24小时在线客服