10.11 arping:发送arp请求
10.11.1 命令详解
【命令星级】 ★★★☆☆
【功能说明】
arping命令是用于发送arp请求到一个相邻主机的工具,arping使用arp数据包检查局域网内所有设备的硬件地址。
【语法格式】
arping [option]
arping [选项]
**说明:**在arping命令及后面的选项里,每个元素直接都至少要有一个空格。
【选项说明】
表10-12针对该命令的参数选项进行了说明。
表10-12 arping命令的参数选项及说明
10.11.2 使用范例
**范例10-38:**测试目的主机是否存活。
[root@centos6 ~]# arping -f 10.0.0.254 #使用-f选项收到第一个响应时就退出,用于检测目的主机是否存活。
ARPING 10.0.0.254 from 10.0.0.202 eth0 #从10.0.0.202的eth0网卡向10.0.0.254发送arp报文。
Unicast reply from 10.0.0.254 [00:50:56:FC:58:AC] 0.687ms #从10.0.0.254单播回复它的MAC地址,并且显示时延。
Sent 1 probes (1 broadcast(s)) #发送1个广播包。
Received 1 response(s) #收到1个响应。
[root@centos6 ~]# arping -f 10.0.0.3 #没有运行的主机不会响应,命令一直等待,知道Ctrl+c终止。
ARPING 10.0.0.3 from 10.0.0.202 eth0
^CSent 8 probes (8 broadcast(s))
Received 0 response(s)
**注意:**上面的命令也能帮助我们查看某IP的MAC地址。
**范例10-39:**Linux负载均衡器宕机切换时arp缓存导致故障案例。
当Linux负责均衡器发生宕机故障,我们使用备用的设备接管时,因为所有用户以及客户端的arp缓存里对应的仍然是宕机时的负责均衡器的IP,因此,切换完新负载均衡器之后,短时间内用户访问可能依然不正常,此时就需要执行arping命令,让所有的客户端缓存失效,这也是高可用软件的做法:
[root@centos6 ~]# arping -c 1 -I eth0 -s 10.0.0.5
10.0.0.2 #这里的10.0.0.5是VIP地址,10.0.0.2是上网网关。
10.12 telnet:远程登录主机
10.12.1 命令详解
【命令星级】 ★★★☆☆
【功能说明】
telnet命令以前是用于登录远程主机,对远程主机进行管理的。但是因为telnet是采用明文传送报文的,其安全性不好,因此现在很多Linux服务器都不开放telnet服务,而是改用更安全的SSH服务了。当然,交换机等网络设备还是会采用telnet登录的方式。
现在使用telnet命令的场景主要是判断远端服务器的端口是否开放。
【语法格式】
telnet [option] [host] [port]
telnet [选项] [主机名或IP] [端口]
**说明:**在telnet命令及后面的选项里,每个元素直接都至少要有一个空格。
10.12.2 使用范例
**范例10-40:**测试ssh端口是否开放。
[root@centos7 ~]# telnet 10.0.0.201 22
-bash: telnet: command not found
[root@centos7 ~]# yum provides telnet
Loaded plugins: fastestmirror
Determining fastest mirrors
* base: mirrors.aliyun.com
* extras: mirrors.aliyun.com
* updates: mirrors.aliyun.com
1:telnet-0.17-64.el7.x86_64 : The client program for the Telnet
: remote login protocol
Repo : base
1:telnet-0.17-65.el7_8.x86_64 : The client program for the Telnet
: remote login protocol
Repo : updates
[root@centos7 ~]# yum install -y telnet
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
* base: mirrors.aliyun.com
* extras: mirrors.aliyun.com
* updates: mirrors.aliyun.com
Resolving Dependencies
--> Running transaction check
---> Package telnet.x86_64 1:0.17-65.el7_8 will be installed
--> Finished Dependency Resolution
Dependencies Resolved
====================================================================
Package Arch Version Repository Size
====================================================================
Installing:
telnet x86_64 1:0.17-65.el7_8 updates 64 k
Transaction Summary
====================================================================
Install 1 Package
Total download size: 64 k
Installed size: 113 k
Downloading packages:
telnet-0.17-65.el7_8.x86_64.rpm | 64 kB 00:00
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
Installing : 1:telnet-0.17-65.el7_8.x86_64 1/1
Verifying : 1:telnet-0.17-65.el7_8.x86_64 1/1
Installed:
telnet.x86_64 1:0.17-65.el7_8
Complete!
[root@centos7 ~]# telnet 10.0.0.201 22 #这里的10.0.0.201 换成读者自己的IP,22是SSH服务的默认端口号。
Trying 10.0.0.201...
Connected to 10.0.0.201.
Escape character is '^]'.
SSH-2.0-OpenSSH_7.4 #看到这种结果,就证明SSH服务的22端口已经开放了。
#此时命令行以及挂起了,不能再进行其他操作,Ctrl+c也无法退出。根据提示输入“Ctrl+]”,然后进入telnet命令行,输入quit就能退出。
^]
telnet> quit
Connection closed.
#输入有误需要退格使用Ctrl+Backspace或Ctrl+w。
**范例10-41:**端口无法连接的场景模拟。
[root@centos7 ~]# telnet 10.0.0.201 23
Trying 10.0.0.201...
telnet: connect to address 10.0.0.201: Connection refused
如果出现这个问题,则表示该端口对应的服务没有开启,或者端口被屏蔽,无权访问。