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