常用Linux命令-网络相关

Linux下常用网络相关命令

ifconfig-显示或设置网络设备

结果分析

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
$ ifconfig
eth0 Link encap:Ethernet HWaddr 01:22:68:E3:B6:45 eth0(第一块网卡) 连接类型:Ethernet(以太网) HWaddr(硬件mac地址)
inet addr:10.78.87.211 Bcast:10.78.87.255 Mask:255.255.255.0 网卡的IP地址、广播地址、掩码
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 UP(网卡开启) RUNNING(网线被接上) MULTICAST(支持组播) MTU:1500(最大传输单元1500字节) Metric(在计算数据包的转送次数时,所要加上的数目)
RX packets:1902354360 errors:0 dropped:0 overruns:0 frame:0 接收数据包
TX packets:2228996942 errors:0 dropped:0 overruns:0 carrier:0 发送数据包
collisions:0 txqueuelen:1000 collisions(网路讯号碰撞中断) txqueuelen(传输缓冲区长度)
RX bytes:1104426170910 (1.0 TiB) TX bytes:3588655194717 (3.2 TiB) 接收、发送数据字节数统计信息

lo Link encap:Local Loopback lo是表示主机的回环地址
inet addr:127.0.0.1 Mask:255.0.0.0
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:994866760 errors:0 dropped:0 overruns:0 frame:0
TX packets:994866760 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:3571215957862 (3.2 TiB) TX bytes:3571215957862 (3.2 TiB)

IPv4相关

五层网络协议:应用层、运输层、网络层、链路层、物理层
IP地址:每个IP地址长度为32bit,因此总共有2^32个IP地址。地址193.32.216.9的二进制记法:11000001 00100000 11011000 00001001
子网掩码:223.1.1.0/24中的/24记法称为子网掩码,它表明32比特位中最左侧的34比特定义了子网地址。
广播地址:广播地址应用于网络内的所有主机,是主机号为全1的地址,例如C类地址192.168.1.0的广播地址为:192.168.1.255
例:知道IP地址172.30.129.14和子网掩码255.255.240.0,求广播地址。
1)将IP地址换算成二进制 172.30.129.14 <=> 10101100 00011110 10000001 00001110
2)将子网掩码换算成二进制 255.255.240.0 <=> 11111111 11111111 11110000 00000000
3)将IP地址的主机位全置为1,即把IP地址的后12位置为1。
4)10101100 00011110 10001111 11111111 => 172.30.143.255
例:将B类IP地址168.195.0.0划分成27个子网,求子网掩码和每个子网容纳最大主机数?
1)27=11011
2)该二进制为五位数,N = 5
3)将B类地址的子网掩码255.255.0.0的主机地址前5位置1,即把11111111 11111111 00000000 00000000->11111111 11111111 11111000 00000000,得到255.255.248.0
4)该掩码容纳最大主机数:2^11-2(主机位为全0和全1的地址不可用)

组播(multicast)

也叫多播, 多点广播或群播,指把信息同时传递给一组目的地址。
广播是指封包传输时,目的地址为网络中所有设备的一种传输方式。

最大传输单元(MTU)

最大链路层帧长度。

跳数(Metric)

通常情况下代表到达目标地址所需要经过的跳跃数量,一个跳数代表经过一个路由器。

ping-测试主机之间网络的连通性

常用选项

-c<完成次数>:设置完成要求回应的次数;
-i<间隔秒数>:指定收发信息的间隔时间;
-n:只输出数值;
-R:记录路由过程;
-s<数据包大小>:设置数据包的大小;
-t<存活数值>:设置存活数值TTL的大小;
-v:详细显示指令的执行过程。

实例

1
2
3
4
# ping指定的次数
ping -c 10 baidu.com
# 每0.5秒ping一次,共10次
ping -c 10 -i 0.5 192.168.120.206

TTL-生存时间值

每经过一个路由器,路由器都会把该TTL的值减1,然后再将IP包转发出去。TTL的主要作用是避免IP包在网络中的无限循环和收发。Linux系统的TTL值为64或255。

ICMP-互联网控制报文协议

ping程序发送一个ICMP类型8编码0的报文到指定主机,目的主机发回一个类型0编码0的回显回答。

traceroute-追踪数据包传输路径

实例

1
2
3
4
5
6
➜  ~ traceroute meituan.com
traceroute to meituan.com (103.37.152.41), 64 hops max, 52 byte packets
1 172.30.128.1 (172.30.128.1) 5.426 ms 5.007 ms 4.074 ms 域名(IP) 每个网关发送三个数据包后,网关响应后返回的时间
2 172.30.155.81 (172.30.155.81) 8.533 ms 2.862 ms 4.074 ms
3 192.168.229.1 (192.168.229.1) 5.208 ms 7.450 ms 4.809 ms
6 * * * 可能是防火墙封掉了ICMP的返回信息,所以无数据包返回

工作原理

traceroute使用ICMP协议实现,源主机向目的主机发送一系列普通IP数据报。第一个数据报TTL为1,第二个数据报的TTL为2,以此类推。
当第n个数据报到达第n台路由器时,第n台路由器观察到这个数据报的TTL正好终止。根据IP协议规则,路由器将丢弃该数据报并发送一个ICMP告警报文给源主机,该报警报文包含路由器名字与IP地址。
当ICMP报文到达源主机时,源主机从定时器得到往返时延、路由器名字、IP地址。

curl-文件传输工具

常用选项

-o:把输出写到该文件中
-O:把输出写到该文件中,保留远程文件的文件名
-C:断点续传
–progress:显示进度条
–referer:指定参照页字符串
–cookie:选项来指定cookie
–user-agent:设置用户代理字符串

实例

1
2
3
4
5
6
7
8
# 将下载的数据写入到文件
curl http://localhost:8080/hello -O
# 将下载数据写入到指定名称的文件中,并显示进度
curl http://localhost:8080/hello -o filename.iso --progress
# 查看文件并指定参照页字符串
curl --referer http://www.google.com http://localhost:8080/hello
# 设置用户代理字符串
curl --user-agent "Chrome" http://localhost:8080/hello

wget-文件下载工具

常用选项

-O:下载并以不同的文件名保存
-b:后台下载
-c:断点续传

与curl的对比

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
# 下载文件
curl -O http://localhost:8080/hello #需加-O参数
wget http://localhost:8080/hello #无需参数

# 下载文件并重命名
curl -o rename.iso http://localhost:8080/hello #o小写
wget -O rename.iso http://localhost:8080/hello #O大写

# 断点续传
curl -O -C -URL http://localhost:8080/hello #C大写
wget -c http://localhost:8080/hello #c小写

# 限速下载
curl --limit-rate 50k -O http://localhost:8080/hello
wget --limit-rate=50k http://localhost:8080/hello

wget:如果你想快速下载并且没有担心参数标识的需求

curl:如果你想做一些更复杂的使用,应该选择 curl,它支持几乎所有协议,可以交互访问几乎所有在线内容

nslookup-域名查询工具

实例

1
2
3
4
5
6
7
8
9
➜  ~ nslookup baidu.com
Server: 192.168.4.251
Address: 192.168.4.251#53

Non-authoritative answer:
Name: baidu.com
Address: 123.125.115.110
Name: baidu.com
Address: 220.181.57.216

dig-域名查询工具

实例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
➜  ~ dig baidu.com

# 包括软件版本,全局变量以及除消息头以外的其他部分的信息
; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.23.rc1.el6_5.1 <<>> baidu.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 22166
;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 5, ADDITIONAL: 5

;; QUESTION SECTION: 查询段
;baidu.com. IN A 要查询的域名'.'代表根域名,com顶级域名,baidu二级域名 IN代表类别为IP协议 A代表A记录

;; ANSWER SECTION: 查询的结果
baidu.com. 461 IN A 123.125.115.110 域名 TTL IP A记录 域名对应的ip地址
baidu.com. 461 IN A 220.181.57.216 域名 TTL IP A记录 域名对应的ip地址

;; AUTHORITY SECTION: 直接提供这个域名解析的DNS服务器
baidu.com. 66517 IN NS ns7.baidu.com.
baidu.com. 66517 IN NS ns4.baidu.com.
baidu.com. 66517 IN NS dns.baidu.com.
baidu.com. 66517 IN NS ns3.baidu.com.
baidu.com. 66517 IN NS ns2.baidu.com.

;; ADDITIONAL SECTION: 这些直接提供解析的服务器的IP地址
ns4.baidu.com. 83079 IN A 220.181.38.10
dns.baidu.com. 83079 IN A 202.108.22.220
ns3.baidu.com. 83079 IN A 220.181.37.10
ns2.baidu.com. 83079 IN A 61.135.165.235
ns7.baidu.com. 28648 IN A 180.76.76.92

;; Query time: 3 msec
;; SERVER: 10.10.10.10#53(10.10.10.10)
;; WHEN: Mon Jul 30 17:42:03 2018
;; MSG SIZE rcvd: 229
# Linux
Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×