【计算机网络】11、网络连通性:ping、traceroute、nslookup

文章目录

注意,测试网络连通性时,有的机器无法 ping 通,但可能 telnet 能通。不要因为无法 ping 通就放弃尝试。

一、ping

1.1 禁 ping

禁 ping 是通过忽略 ICPM 包实现的

方法1:设置内核参数

bash 复制代码
# 以下方法不会持久化(重启电脑时会被重置)
echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all # 使ping没反应(忽略ICMP包)
echo 0 > /proc/sys/net/ipv4/icmp_echo_ignore_all # 恢复ping正常

# 以下方法会持久化
echo "net.ipv4.icmp_echo_ignore_all=1" >> /etc/sysctl.conf

方法2:设置 iptables

bash 复制代码
# 以下方法不会持久化(重启电脑时会被重置)
iptables -I INPUT -i eth0 -p icmp -s 0/0 -d 0/0 -j DROP   # 使ping没反应(忽略ICMP包)
iptables -I INPUT -i eth0 -p icmp -s 0/0 -d 0/0 -j ACCEPT # 恢复ping正常

二、traceroute

参考 cisco 官网:ping 与 traceroute 实战区别

显示数据包到主机间的路径,它默认发送的数据包大小是40字节。

通过traceroute我们可以知道信息从你的计算机到互联网另一端的主机是走的什么路径。当然每次数据包由某一同样的出发点(source)到达某一同样的目的地(destination)走的路径可能会不一样,但基本上来说大部分时候所走的路由是相同的。

traceroute通过发送小的数据包到目的设备直到其返回,来测量其需要多长时间。一条路径上的每个设备traceroute要测3次。输出结果中包括每次测试的时间(ms)和设备的名称(如有的话)及其ip地址。

traceroute 是 ipv4 的命令、traceroute6 是 ipv6 的命令,参数如下:

bash 复制代码
-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:开启或关闭数据包的正确性检验。
bash 复制代码
# 以下命令在192.168.22.103执行
apt install traceroute

# traceroute 192.168.2.99
traceroute to 192.168.2.99 (192.168.2.99), 30 hops max, 60 byte packets
 1  _gateway (192.168.22.254)  6.478 ms  7.174 ms  7.156 ms
 2  192.168.2.99 (192.168.2.99)  1.821 ms  1.804 ms  1.789 ms

# traceroute 192.168.100.66
traceroute to 192.168.100.66 (192.168.100.66), 30 hops max, 60 byte packets
 1  _gateway (192.168.22.254)  2.939 ms  2.862 ms  2.844 ms
 2  192.168.100.66 (192.168.100.66)  2.844 ms  2.819 ms  2.793 ms

记录按序列号从1开始,每个纪录就是一跳 ,每跳表示一个网关,我们看到每行有三个时间,单位是ms,其实就是-q的默认参数。探测数据包向每个网关发送三个数据包后,网关响应后返回的时间;如果用traceroute -q 4 www.58.com,表示向每个网关发送4个数据包。

有时我们traceroute一台主机时,会看到有一些行是以星号表示的。出现这样的情况,可能是防火墙封掉了ICMP的返回信息,所以我们得不到什么相关的数据包返回数据。

有时我们在某一网关处延时比较长,有可能是某台网关比较阻塞,也可能是物理设备本身的原因。当然如果某台DNS出现问题时,不能解析主机名、域名时,也会 有延时长的现象;您可以加-n参数来避免DNS解析,以IP格式输出数据。

如果在局域网中的不同网段之间,我们可以通过traceroute 来排查问题所在,是主机的问题还是网关的问题。

bash 复制代码
# -m 是设置跳数
# traceroute 192.168.100.66 -m 5
traceroute to 192.168.100.66 (192.168.100.66), 5 hops max, 60 byte packets
 1  _gateway (192.168.22.254)  2.750 ms  2.672 ms  2.651 ms
 2  192.168.100.66 (192.168.100.66)  2.619 ms  2.599 ms *

# traceroute 192.168.100.66 -m 1
traceroute to 192.168.100.66 (192.168.100.66), 1 hops max, 60 byte packets
 1  _gateway (192.168.22.254)  3.173 ms  3.096 ms  3.073 ms

其他示例

bash 复制代码
traceroute -m 10 www.baidu.com # 跳数设置
traceroute -n www.baidu.com    # 显示IP地址,不查主机名
traceroute -p 6888 www.baidu.com  # 探测包使用的基本UDP端口设置6888
traceroute -q 4 www.baidu.com  # 把探测包的个数设置为值4
traceroute -r www.baidu.com    # 绕过正常的路由表,直接发送到网络相连的主机
traceroute -w 3 www.baidu.com  # 把对外发探测包的等待响应时间设置为3秒

三、nslookup

图文命令

3.1 非交互模式

bash 复制代码
# nslookup www.baidu.com
Server:         127.0.0.53
Address:        127.0.0.53#53

Non-authoritative answer:
www.baidu.com   canonical name = www.a.shifen.com.
Name:   www.a.shifen.com
Address: 110.242.68.4
Name:   www.a.shifen.com
Address: 110.242.68.3
bash 复制代码
# 指定DNS服务器
192.168.100.66# nslookup www.baidu.com 114.114.114.114
Server:         114.114.114.114
Address:        114.114.114.114#53

Non-authoritative answer:
www.baidu.com   canonical name = www.a.shifen.com.
Name:   www.a.shifen.com
Address: 110.242.68.4
Name:   www.a.shifen.com
Address: 110.242.68.3

192.168.100.66# nslookup www.baidu.com 192.168.2.1
Server:         192.168.2.1
Address:        192.168.2.1#53

Non-authoritative answer:
www.baidu.com   canonical name = www.a.shifen.com.
Name:   www.a.shifen.com
Address: 110.242.68.4
Name:   www.a.shifen.com
Address: 110.242.68.3
bash 复制代码
# 指定记录类型
# nslookup -query=ns www.baidu.com
Server:         127.0.0.53
Address:        127.0.0.53#53

Non-authoritative answer:
www.baidu.com   canonical name = www.a.shifen.com.

Authoritative answers can be found from:
a.shifen.com
        origin = ns1.a.shifen.com
        mail addr = baidu_dns_master.baidu.com
        serial = 2308010034
        refresh = 5
        retry = 5
        expire = 2592000
        minimum = 3600

3.2 交互模式

bash 复制代码
# nslookup
> www.baidu.com
Server:         127.0.0.53
Address:        127.0.0.53#53

Non-authoritative answer:
www.baidu.com   canonical name = www.a.shifen.com.
Name:   www.a.shifen.com
Address: 110.242.68.3
Name:   www.a.shifen.com
Address: 110.242.68.4
bash 复制代码
# nslookup
> set type=ns
> www.baidu.com
Server:         127.0.0.53
Address:        127.0.0.53#53

Non-authoritative answer:
www.baidu.com   canonical name = www.a.shifen.com.

Authoritative answers can be found from:
a.shifen.com
        origin = ns1.a.shifen.com
        mail addr = baidu_dns_master.baidu.com
        serial = 2308010034
        refresh = 5
        retry = 5
        expire = 2592000
        minimum = 3600
相关推荐
Two_brushes.1 小时前
【linux网络】网络编程全流程详解:从套接字基础到 UDP/TCP 通信实战
linux·开发语言·网络·tcp/udp
武汉唯众智创2 小时前
高职院校“赛岗课”一体化网络安全实战类人才培养方案
网络·安全·web安全·网络安全·“赛岗课”一体化·赛岗课
神的孩子都在歌唱4 小时前
常见的网络攻击方式及防御措施
运维·服务器·网络
岑梓铭5 小时前
计算机网络第九章——数据链路层《局域网》
网络·笔记·计算机网络·考研·408
小白爱电脑7 小时前
什么是2.5G交换机?
运维·网络·5g·千兆宽带
阿沁QWQ7 小时前
UDP的socket编程
网络·网络协议·udp
HXR_plume8 小时前
【计算机网络】王道考研笔记整理(1)计算机网络体系结构
网络·笔记·计算机网络
R_.L9 小时前
网络 :数据链路层
网络
珹洺11 小时前
计算机网络:(八)网络层(中)IP层转发分组的过程与网际控制报文协议 ICMP
tcp/ip·计算机网络·智能路由器
cat_with_cat12 小时前
Linux网络:UDP socket创建流程与简单通信
linux·网络·udp