本文整理了在实践过程中使用的Linux网络工具,这些工具提供的功能非常强大,我们平时使用的只是冰山一角,比如lsof、ip、tcpdump、iptables等。

本文不会深入研究这些命令的强大用法,因为每个命令都足以写一篇文章,本文只是简单地介绍并辅以几个简单demo实例,旨在大脑中留个印象,平时遇到问题时能够快速搜索出这些工具,利用强大的man工具,提供一定的思路解决问题。

1、ping

使用这个命令判断网络的连通性以及网速,偶尔还顺带当做域名解析使用(查看域名的IP):

ping www.baidu.com

默认使用该命令会一直发送ICMP包直到用户手动中止,可以使用-c命令指定发送数据包的个数,使用-W指定最长等待时间,如果有多张网卡,还可以通过-I指定发送包的网卡。

小技巧: 在ping过程中按下ctrl+|会打印出当前的summary信息,统计当前发送包数量、接收数量、丢包率等。

其他比如-b发送广播,另外注意ping只能使用ipv4,如果需要使用ipv6,可以使用ping6命令。

2、netstat

这个命令用来查看当前建立的网络连接(深刻理解netstat每一项代表的含义)。最经典的案例就是查看本地系统打开了哪些端口:

netstat -lnpt

netstat能够查看所有的网络连接,包括unix socket连接,其功能非常强大。

另外使用netstat还可以查看本地路由表:

netstat -nr

以上Genmask为0.0.0.0的表示默认路由,即连接外网的路由。网络中0.0.0.0的IP地址表示整个网络,即网络中的所有主机。它的作用是帮助路由器发送路由表中无法查询的包。如果设置了全零网络的路由,路由表中无法查询的包都将送到全零网络的路由中去。

3、lsof

lsof命令用来查看打开的文件(list open files),由于在Linux中一切皆文件,那socket、pipe等也是文件,因此能够查看网络连接以及网络设备,其中和网络最相关的是-i选项,它输出符合条件的进程(4、6、协议、:端口、 @ip等),它的格式为[46][protocol][@hostname|hostaddr][:service|port],比如查看22端口有没有打开,哪个进程打开的:

lsof -i :22

可见22端口是sshd这个命令,其进程号pid为9485打开的。

列出所有与192.168.73.128(虚拟机IP)的ipv4连接:

4、Iftop

用过top以及iotop的,自然能够大致猜到iftop的功能,它是用于查看网络流量的工具(用过top以及iotop的,自然能够大致猜到iftop的功能,它是用于查看网络流量的工具(display bandwidth usage on an interface by host):

Iftop

5、tcpdump(dump traffic>命令行抓包工具,千万不要被它的名称误导以为只能抓取tcp包,它能抓任何协议的包。它能够实现Wireshark一样的功能,并且更加灵活自由!比如需要抓取目标主机是192.168.73.128,通过端口22的传输数据包:

6、telnet

telnet协议客户端(user interface to the TELNET protocol),不过其功能并不仅仅限于telnet协议,有时也用来探测端口,比如查看本地端口22是否开放:

可见成功连接到localhost的22端口,说明端口已经打开,还输出了banner信息。

7、ifconfig

ifconfig也是熟悉的网卡配置工具(configure a network interface),我们经常使用它来查看网卡信息(比如IP地址、发送包的个数、接收包的个数、丢包个数等)以及配置网卡(开启关闭网卡、修改网络mtu、修改ip地址等)。查看网卡ip地址:

ifconfig ens33 down  关闭网卡    ifconfig ens33 up 开启网卡

比如查看baidu.com的ip地址:

8、whois

whois用于查看域名所有者的信息(client for the whois directory service),比如注册邮箱、手机号码、域名服务商等:

我们发现coolshell.cn这个域名是陈皓在万网购买注册的,注册时间是2009年,注册邮箱是haoel@hotmail.com。

9、route

route命令用于查看和修改路由表:

查看路由表:

10、ip

ip命令可以说是无比强大了,它完全可以替换ifconfig、netstat、route、arp等命令,比如查看网卡ens33 IP地址:

查看网卡ens33配置:

查看路由:

查看arp信息:

11、brctl

brctl是linux网桥管理工具,可用于查看网桥、创建网桥、把网卡加入网桥等。查看网桥如下:

其他子命令如addbr用于创建网桥、delbr用户删除网桥(删除之前必须处于down状态,使用ip link set br_name down)、addif把网卡加到网桥等。

12、traceroute

ping命令用于探测两个主机间连通性以及响应速度,而traceroute会统计到目标主机的每一跳的网络状态(print the route packets trace to network host),这个命令常常用于判断网络故障,比如本地不通,可使用该命令探测出是哪个路由出问题了。如果网络很卡,该命令可判断哪里是瓶颈:

可以看到,从主机到www.baidu.com共经过11跳,并统计了总共的响应时间。

另外可以参考tracepath。

13、mtr

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

从图上可以看出从本地到www.baidu.com经过的所有路由,每一个路由间的丢包率、响应时间等。

14、ss

ss命令也是一个查看网络连接的工具(another utility to investigate sockets),用来显示处于活动状态的套接字信息。

ss命令可以用来获取socket统计信息,它可以显示和netstat类似的内容。但ss的优势在于它能够显示更多更详细的有关TCP和连接状态的信息,而且比netstat更快速更高效。当服务器的socket连接数量变得非常大时,无论是使用netstat命令还是直接cat /proc/net/tcp,执行速度都会很慢。

可能你不会有切身的感受,但请相信我,当服务器维持的连接达到上万个的时候,使用netstat等于浪费 生命,而用ss才是节省时间。 天下武功唯快不破。ss快的秘诀在于,它利用到了TCP协议栈中tcp_diag。tcp_diag是一个用于分析统计的模块,可以获得Linux 内核中第一手的信息,这就确保了ss的快捷高效。当然,如果你的系统中没有tcp_diag,ss也可以正常运行,只是效率会变得稍慢。

其中比较常用的参数包括:

-l 查看处于LISTEN状态的连接

-t 查看tcp连接

-4 查看ipv4连接

-n 不进行域名解析

因此我们可以通过ss命令查看本地监听的所有端口(和netstat命令功能类似):

15、axel

axel是一个多线程下载工具(A light download accelerator for Linux),通过建立多连接,能够大幅度提高下载速度,所以我经常使用这个命令开挂下载大文件,比wget快多了,并且默认就支持断点下载:

开启20个线程下载文件:axel -n 20 URL

这个强大的下载工具极力推荐,非常好用!

总结Linux中的常用的网络工具,其中包括

网络配置相关:ifconfig、ip

路由相关:route、netstat、ip

查看端口工具:netstat、lsof、ss、nc、telnet

下载工具:curl、wget、axel

防火墙:iptables、ipset

流量相关:iftop、nethogs

连通性及响应速度:ping、traceroute、mtr、tracepath

域名相关:nslookup、dig、whois

web服务器:python、nginx

抓包相关:tcpdump

网桥相关:ip、brctl、ifconfig、ovs

参考链接:https://mp.weixin.qq.com/s/n2j-kVg2iwX_BerqN3pvgQ

linux之网络命令的更多相关文章

  1. linux常用网络命令ping和arping

    linux常用网络命令ping和arping ping 向目标主机发送icmp请求包 常用来测试当前主机与目标主机网络连接状况 常见选项 -c              设置发包的个数 -s      ...

  2. Linux学习笔记(9)linux网络管理与配置之一——Linux基础网络命令与学习大纲(0)

    大纲目录 0.常用linux基础网络命令 1.配置主机名 2.配置网卡信息与IP地址 3.配置DNS客户端 4.配置名称解析顺序 5.配置路由与默认网关 6.双网卡绑定 [1] ping [2]net ...

  3. Linux基本命令 网络命令

    概述 网络和监控命令类似于这些: hostname, ping, ifconfig, iwconfig, netstat, nslookup, traceroute, finger, telnet, ...

  4. linux网络管理----网络命令

    1 Linux网络命令之网络环境查看命令  ifconfig  2 Linux网络命令之网络测试命令  telnet 基本已经被ssh替代了,telnet是明文传递,不安全

  5. [Linux] 017 网络命令与挂载命令

    1. 网络命令:write 命令名称:write 命令所在路径:/usr/bin/write 执行权限:所有用户 语法:write [用户名] 功能描述:给用户发信息,以 Ctrl-d 保存结束 范例 ...

  6. 一起来学linux:网络命令

    首先介绍最基本也是经常用到的命令ifconfig,对应windows中的ipconfig.执行ifconfig会将所有的端口信息都显示出来,包括IP地址,MTU 接收和发送的报文还有HWaddr也就是 ...

  7. Linux常用网络命令整理

    Linux上有一些非常常用的命令,来帮助我们监控网络状况. 1.Tcpdump命令 tcpdump可以将网络中传送的数据包的"头"完全截获下来提供分析.它支持针对网络层.协议.主机 ...

  8. Linux相关网络命令

    1.简述osi七层模型和TCP/IP四层模型 OSI七层模型 TCP/IP四层模型 2.简述iproute家族命令 ip命令: ip [OPTIONS] OBJECT {COMMAND|help} i ...

  9. Linux相关网络命令大全 网络接口 域名分析

    Linux网络设置一.查看网络接口信息ifconfig① 查看所有活动的网络接口信息② 查看指定网络接口信息补充二.查看主机名称hostname① hostname命令② 永久设置主机名三.查看路由表 ...

随机推荐

  1. Java 实现判断 主机是否能 ping 通

    Java 实现判断 主机是否能 ping 通 代码实现如下: import java.io.IOException; import java.net.InetAddress; import java. ...

  2. spring boot系列(七)spring boot 使用mongodb

    1 pom.xml配置 增加包依赖:spring-boot-starter-data-mongodb <dependency> <groupId>org.springframe ...

  3. Kettle 排序记录的使用(Sort rows)

    排序行的步骤根据您指定的字段和它们是否应该按升序或降序排序当行数超过指定的排序大小(默认为100万行)时候,kettle必须使用临时文件排序行.步骤名称:名称在整个转换中应该是唯一的排序目录:默认当前 ...

  4. v-for与v-if的优先级

    原文地址 永远不要把 v-if 和 v-for 同时用在同一个元素上. 一般我们在两种常见的情况下会倾向于这样做: 为了过滤一个列表中的项目 (比如 v-for="user in users ...

  5. coding.net------WEBHOOK自动部署实战

    使用WebHook自动部署项目今天在laravist.com看到了这个 Webhook 自动部署Git项目 这个教学视频,以前自己也想做这样做一个利用Git WebHook的自动化部署,但总是不成功, ...

  6. 3道入门字典树例题,以及模板【HDU1251/HDU1305/HDU1671】

    HDU1251:http://acm.hdu.edu.cn/showproblem.php?pid=1251 题目大意:求得以该字符串为前缀的数目,注意输入格式就行了. #include<std ...

  7. Linux安装redis logstash

    一.安装redis tar -zxvf redis-3.2.8.tar.gz cd redis-3.2.8 make  && make install PREFIX=/usr/loca ...

  8. [转帖]华为Mate20 X 5G版拆解:巴龙5000还配备了3GB独立内存!

    华为Mate20 X 5G版拆解:巴龙5000还配备了3GB独立内存! 投递人 itwriter 发布于 2019-07-29 21:35 评论(7) 有1733人阅读 原文链接 [收藏] « » h ...

  9. SQL SERVER DATEDIFF函数

    定义: DATEDIFF() 函数返回两个日期之间的时间间隔. 语法: DATEDIFF(datepart,startdate,enddate) 参数: ①datepart 参数可以是下列的值: da ...

  10. JZOJ.1150【贪心算法】IQ

    欢迎转载,请附上原链接https://www.cnblogs.com/Code-Garden/p/11276741.html(也没人会看) 一道对我来说较难的贪心题 题目描述 根据世界某权威学会的一项 ...