【计算机网络】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
相关推荐
Liveweb视频汇聚平台12 分钟前
TCP 和 UDP 的区别:解析网络传输协议
网络·tcp/ip·udp
网络安全-杰克2 小时前
《网络对抗》—— Web基础
前端·网络
和光同尘Viloet2 小时前
【HENU】河南大学计院2024 计算机网络 期末复习知识点
计算机网络
lulinhao2 小时前
IP组播基础
笔记·计算机网络·华为
几维安全2 小时前
出海隐私合规解决方案,一文助力中企合规出海
网络·安全
代码欢乐豆2 小时前
计算机网络——期末复习(3)4-6章考试重点
笔记·计算机网络
红米饭配南瓜汤3 小时前
WebRTC服务质量(10)- Pacer机制(02) RoundRobinPacketQueue
网络·音视频·webrtc·媒体
学术会议3 小时前
“智能控制的新纪元:2025年机器学习与控制工程国际会议引领变革
大数据·人工智能·科技·计算机网络·机器学习·区块链
老鑫安全培训3 小时前
从安全角度看 SEH 和 VEH
java·网络·安全·网络安全·系统安全·安全威胁分析
网络安全成叔3 小时前
【网络分析工具】WireShark的使用(超详细)
网络·计算机网络·计算机·wireshark·php