您现在的位置是:网站首页> 编程资料编程资料

linux网络相关命令汇总(6)_linux shell_

2023-05-26 451人已围观

简介 linux网络相关命令汇总(6)_linux shell_

本文将讲述网络相关命令,作者假定读者具备TCP/IP协议栈的基础知识。对于相关命令及其输出只介绍它的基本的使用方法和大概的描述,具体协议将不作详细解释。

如今网络无疑是很重要的,linux系统中提供了丰富的网络测试与管理命令。我们来一起看看它们。

内容如下:

1、ping 发送TCMP回显请求报文,并等待返回TCMP回显应答。

ping [OPTIONS]... destination

这里的目标destination可以是目的IP地址或者域名/主机名
选项-c指定发送请求报文的次数,当ping没有任何选项时,在linux中默认将一直发送请求报文直到手动终止。

 [root@centos7 ~]# ping -c 3 www.baidu.com PING www.a.shifen.com (61.135.169.121) 56(84) bytes of data. 64 bytes from 61.135.169.121: icmp_seq=1 ttl=52 time=1.35 ms 64 bytes from 61.135.169.121: icmp_seq=2 ttl=52 time=1.32 ms 64 bytes from 61.135.169.121: icmp_seq=3 ttl=52 time=1.22 ms --- www.a.shifen.com ping statistics --- 3 packets transmitted, 3 received, 0% packet loss, time 2003ms rtt min/avg/max/mdev = 1.225/1.303/1.359/0.064 ms 

首先,ping程序会向域名服务器(DNS)发送请求,解析域名www.baidu.com的IP地址。DNS返回域名的一个别名www.a.shifen.com以及对应的IP地址61.135.169.121。之后ping程序开始向这个地址发送请求报文,每1s发送一个,ping收到TCMP回显应答并将结果显示在终端上,包括ICMP序列号(icmp_seq),生存时间(ttl)和数据包往返时间(time)。最后,给出汇总信息,包括报文总收发情况,总时间,往返时间最小值、平均值、最大值、平均偏差(越大说明网络越不稳定)。

 [root@centos7 ~]# ping www.a.com ping: unknown host www.a.com

当目的域名无法解析出IP地址时,会报未知主机的错

 [root@centos7 ~]# ping 192.168.0.1 PING 192.168.0.1 (192.168.0.1) 56(84) bytes of data. ^C #这里按CTRL+C键手动终止了进程 --- 192.168.0.1 ping statistics --- 6 packets transmitted, 0 received, 100% packet loss, time 4999ms 

当目的IP地址没有路由时不会收到任何ICMP回显报文

 [root@centos7 ~]# ping -c2 10.0.1.2 PING 10.0.1.2 (10.0.1.2) 56(84) bytes of data. From 10.0.1.254 icmp_seq=1 Destination Host Unreachable From 10.0.1.254 icmp_seq=2 Destination Host Unreachable --- 10.0.1.2 ping statistics --- 2 packets transmitted, 0 received, +2 errors, 100% packet loss, time 999ms pipe 2

当有目的IP的路由但无法达到时显示目标不可达错误(Destination Host Unreachable)。
ICMP回显应答还包括超时(request time out)等其他类型。

2、hostname显示或设置系统主机名

hostname [OPTIONS]... [NAME]

直接执行命令hostname时将显示主机名:

 [root@centos7 temp]# hostname centos7 [root@centos7 temp]# 

这个主机名是系统的gethostname(2)函数返回的。
可以通过执行命令hostname NAME来临时改变主机名:

 [root@centos7 temp]# hostname NAME [root@centos7 temp]# hostname NAME 

这个临时修改实际上是修改了linux kernel中一个同为hostname的内核参数,它保存在/proc/sys/kernel/hostname中。如果需要永久修改则需要修改配置文件/etc/sysconfig/network,centos7中需要修改/etc/hostname。需要注意的是,如果配置文件中的主机名是localhost或localhost.localdomain时,系统会取得网络接口的IP地址,并用这个地址找出/etc/hosts文件中对应的主机名,然后将其设置成最终的hostname。

3、host DNS查询

host name

host命令通过配置文件/etc/resolv.conf中指定的DNS服务器查询name的IP地址:

 [root@centos7 temp]# host www.baidu.com www.baidu.com is an alias for www.a.shifen.com. www.a.shifen.com has address 61.135.169.121 www.a.shifen.com has address 61.135.169.125 

4、dig DNS

dig和host命令的语法一致,但提供了更详细的信息和更多的选项:

 [root@centos7 ~]# dig www.baidu.com ; <<>> DiG 9.9.4-RedHat-9.9.4-29.el7_2.2 <<>> www.baidu.com ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 22125 ;; flags: qr rd ra; QUERY: 1, ANSWER: 3, AUTHORITY: 0, ADDITIONAL: 0 ;; QUESTION SECTION: ;www.baidu.com. IN A ;; ANSWER SECTION: www.baidu.com. 113 IN CNAME www.a.shifen.com. www.a.shifen.com. 113 IN A 61.135.169.125 www.a.shifen.com. 113 IN A 61.135.169.121 ;; Query time: 2 msec ;; SERVER: 223.5.5.5#53(223.5.5.5) ;; WHEN: 四 11月 10 12:31:20 CST 2016 ;; MSG SIZE rcvd: 90 [root@centos7 ~]# 

如只查询域名的A记录并以短格式显示:

 [root@centos7 ~]# dig www.baidu.com A +short www.a.shifen.com. 61.135.169.125 61.135.169.121 [root@centos7 ~]# 

或者:

 [root@centos7 ~]# dig +nocmd www.baidu.com A +noall +answer www.baidu.com. 252 IN CNAME www.a.shifen.com. www.a.shifen.com. 252 IN A 61.135.169.125 www.a.shifen.com. 252 IN A 61.135.169.121 

还可以用@server的方式指定DNS服务器:

 [root@centos7 ~]# dig +noall +answer www.baidu.com A @8.8.8.8 www.baidu.com. 21 IN CNAME www.a.shifen.com. www.a.shifen.com. 263 IN A 61.135.169.125 www.a.shifen.com. 263 IN A 61.135.169.121 

更多的命令及选项请自行man

5、traceroute或tracepath 路由跟踪

 [root@centos7 ~]# tracepath www.baidu.com 1?: [LOCALHOST] pmtu 1500 1: 10.0.1.103 0.396ms 1: 10.0.1.103 0.350ms 2: 210.51.161.1 1.187ms asymm 3 3: 210.51.161.1 8.186ms 4: 210.51.175.81 1.117ms 5: 61.148.142.61 8.554ms asymm 12 6: 61.148.147.13 1.694ms asymm 12 7: 123.126.8.117 3.934ms asymm 10 8: 61.148.155.46 2.703ms asymm 10 .... 

这里只列出部分输出,表示跟踪到目的地址的路由,每一跳都返回。

6、ifconfig 配置网络接口

当命令没有任何参数时显示所有网络接口的信息:

 [root@centos7 ~]# ifconfig ens32: flags=4163 mtu 1500 inet 172.20.71.254 netmask 255.255.255.0 broadcast 172.20.71.255 inet6 fe80::250:56ff:fea4:fe34 prefixlen 64 scopeid 0x20 ether 00:50:56:a4:fe:34 txqueuelen 1000 (Ethernet) RX packets 11996157 bytes 775368588 (739.4 MiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 12 bytes 888 (888.0 B) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 ens33: flags=4163 mtu 1500 inet 10.0.1.254 netmask 255.255.255.0 broadcast 10.0.1.255 inet6 fe80::250:56ff:fea4:a09 prefixlen 64 scopeid 0x20 ether 00:50:56:a4:0a:09 txqueuelen 1000 (Ethernet) RX packets 20941185 bytes 1307830447 (1.2 GiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 147552 bytes 11833605 (11.2 MiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 lo: flags=73 mtu 65536 inet 127.0.0.1 netmask 255.0.0.0 inet6 ::1 prefixlen 128 scopeid 0x10 loop txqueuelen 1 (Local Loopback) RX packets 0 bytes 0 (0.0 B) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 0 bytes 0 (0.0 B) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 [root@centos7 ~]# 

本例中显示了两个网卡ens32和ens33以及环回口lo的信息,包括mtu,ip地址,掩码,mac地址,传输和接收数据量等等。
选项-s显示精简的信息:

 [root@idc-v-71253 ~]# ifconfig -s ens32 Iface MTU RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR Flg ens32 1500 11996951 0 0 0 12 0 0 0 BMRU 

如给ens33增加一个新地址10.0.1.4:

 [root@centos7 ~]# ifconfig ens33:0 10.0.1.4/24 up [root@centos7 ~]# ifconfig ens33:0 ens33:0: flags=4163 mtu 1500 inet 10.0.1.4 netmask 255.255.255.0 broadcast 10.0.1.255 ether 00:50:56:a4:0a:09 txqueuelen 1000 (Ethernet) 

命令中/24表明接口地址的掩码,up表示启用此接口。注意如果ip地址已经被使用,这里依然会被设置成功,但此地址被访问时,可能会有冲突。

停用某接口:
[root@centos7 ~]# ifconfig ens33:0 down

如果需要永久增加或修改当前接口的地址,最好直接编辑网卡配置文件/etc/sysconfig/network-scripts/ifcfg-ens33(其他系统换成相应文件)中IPADDR字段,然后重启网络systemctl restart network或service network restart生效。

7、arp和arping

命令arp显示系统的arp缓存,命令arping给邻居主机发送ARP请求。

 [root@idc-v-71253 ~]# arp -a ? (10.0.1.1) at 68:8f:84:01:f1:ff [ether] on ens33 ? (10.0.1.102) at 00:50:56:a4:18:9a [ether] on ens33 ? (10.0.1.254) at 00:50:56:a4:a9:16 [ether] on ens33 ? (10.0.1.10) at 00:50:56:a4:d2:e4 [ether] on ens33 ? (10.0.1.104) at 00:50:56:a4:37:a7 [ether] on ens33 

?表示未知域名,最后的网卡名表示arp表项对应的网络接口
如发现某地址不稳定,可以使用arping测试该地址是否为MAC地址冲突:

 [root@centos7 ~]# arping 10.0.1.252 -I ens33 ARPING 10.0.1.252 from 10.0.1.254 ens33 Unicast reply from 10.0.1.252 [00:50:56:A4:65:71] 0.843ms Unicast reply from 10.0.1.252 [00:50:56:A4:0A:09] 1.034ms 

这里两条返回信息中的MAC地址不同,说明有两块网卡配置了相同的IP地址。选项-I指定发送arp请求的网络接口。
如果刚刚更改了网卡的IP地址,但上游设备(如交换机)的arp表项还是老的,可以使用arping来强制刷新:

 [root@centos7 ~]# arping -c3 -I ens33 -s 10.0.1.254 10.0.1.1 ARPING 10.0.1.1 from 10.0.1.254 ens33 Unicast reply from 10.0.1.1 [68:8F:84:01:F1:FF] 19.466ms Unicast reply from 10.0.1.1 [68:8F:84:01:F1:FF] 2.358ms Unicast reply from 10.0.1.1 [68:8F:84:01:F1:FF] 24.305ms Sent 3 probes (1 broadcast(s)) Received 3 response(s) 

-c指定发送arp请求次数,-s指定源地址,最后的IP表示发送目标(这里是网关地址)。

8、route 显示或更改路由表

 [root@centos7 ~]# route Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 10.0.1.0 0.0.0.0 255.255.255.0 U 0 0 0 ens33 link-local 0.0.0.0 255.255.0.0 U 1002 0 0 ens32 link-local 0.0.0.0 255.255.0.0 U 1003 0 0 ens33 172.20.71.0 0.0.0.0 255.255.255.0 U 0 0 0 ens32 192.168.78.0 10.0.1.104 255.255.255.0 UG 0 0 0 ens33 

其中Destination表示目的网段或目标主机;Gateway表示网关地址;Genmask表示目的网段的掩码;Flags表示路由标志:U表示路由是启用(up)的、G表示网关;Metric表示目标距离,通常用跳数表示;Ref表示路由的引用数;Use表示路由查找计数;Iface表示此条路由的出口。

选项-n表示用数字形式显示目的网段
选项add和del表示添加或删除一条路由。
选项-net和netmask表示指定目的网段及掩码。
选项gw表示指定网关。
选项dev IF表示指定出口网卡

如增加一条到192.56.76.x的路由,使它的出口为ens32:

route add -net 192.56.76.0 netmask 255.255.255.0 dev ens32

如增加一条默认路由,指明它的网关为10.0.1.1

route add default gw 10.0.1.1

如增加一条到172.20.70.0的路由,网关为10.0.1.2

提示: 本文由整理自网络,如有侵权请联系本站删除!
本站声明:
1、本站所有资源均来源于互联网,不保证100%完整、不提供任何技术支持;
2、本站所发布的文章以及附件仅限用于学习和研究目的;不得将用于商业或者非法用途;否则由此产生的法律后果,本站概不负责!

-六神源码网