1676天 博客通用头像 Edwiin

本人熟练掌握linux,windows的开关机,擅长nfs,samba,ftp,dhcp,bind,apache,mail等各项服务的安装与卸载,精通shell,mysql,iptables,selinux等单词的拼写,了解虚拟化,存储,集群等相关汉字的书写。

【Linux学习】CentOS7.6环境中源码编译安装fping服务并实现统计网络中主机的网络连通情况

发布于 1年前 / 1.3k 次围观 / 0 条评论 / Linux / Edwiin
本文最后更新于2019-7-24,已超过 1 个月没有更新,如果文章内容或图片资源失效,请【留言反馈】,我会及时处理,谢谢!

实验要求

fping软件官网:http://www.fping.org/

可能涉及知识:
1、虚拟机的网络模式
2、linux系统网络的配置
3、linux下源码软件编译安装
4、linux系统对输出流的处理
5、bash配置文件,及环境变量

环境及要求:
1、所有人使用linux虚拟机

2、每个人的linux虚拟主机(一个网卡)配置3个ip地址,192.168.180.x 192.168.180.50+x 172.16.31.x 这里的x小于20,6个人的不重复就可以了,配置后重启系统后依然有效
要求6个人都能在自己linux虚拟机中ping通其他任意一个人的3个ip地址(如果ping不通,思考是自己的问题、还是对方的问题,一起讨论分析解决)

3、源码安装fping软件包,安装到/opt/fping目录

4、安装完成后,能在命令行,直接使用fping x.x.x.x 判断主机是否存活(原理同ping命令类似,能fping通的会显示x.x.x.x is alive,不通的会显示 x.x.x.x is unreachable)

5、通过fping命令检测172.16.31.1~172.16.31.20 这个段的主机在线情况,要能直观的看出结果,不要输出ICMP Host Unreachable .... 等调试提示信息

6、通过fping命令检测出192.168.180.0-255 整个网段的主机在线情况,将alive的信息保存到/tmp/net_192.168.180.0_alive.txt 文件中
将unreachable的信息保存到/tmp/net_192.168.180.0_unreachable.txt中,将命令过程中出现在屏幕上的其他会输出信息写到/tmp/net_192.168.180.0_debug.txt 文件中。

实验步骤

首先准备linux虚拟机,这里我使用的是CentOS7.6-1810版本最小化安装。

网卡配置

虚拟机我使用的桥接模式,这里我把我的网卡配置文件贴出来:

BOOTPROTO=static
ONBOOT=yes
IPADDR1=172.16.31.14
NETMASK1=255.255.255.0
IPADDR2=192.168.180.19
NETMASK2=255.255.255.0
IPADDR3=192.168.180.69
NETMASK3=255.255.255.0
//这里只贴出来了要修改和增加的地方,配置文件没有的增加即可

编辑好网卡文件之后重启,我是这样的:

虚拟机现在是3个IP地址

172.16.31.14、192.168.180.19、192.168.180.69

----------------------------------以下内容可跳过

现在配置物理机网卡地址

在这里添加IP地址是为了使物理机和虚拟机互通,他们IP地址都是不同网段的,所以就需要添加一个同网段IP,最后才能和其他几个同学的虚拟机互通。其他同学的物理机也需要配置物理网卡IP地址注:配置IP地址都不能重复,避免冲突。

-----------------------------------以上内容可跳过

现在虚拟机就可以和其他同学互通了。

安装fping

fping软件官网:http://www.fping.org/ ,打开之后全英文,找到download下载字样,Latest source: fping 4.2 ,然后点击即可下载,还有另外一种下载方式,在linux中可以使用wget进行下载命令如下:

wget http://www.fping.org/dist/fping-4.2.tar.gz //虚拟机需要正常上网

下载好了之后,我使用xshell连接虚拟机,安装文件传输服务yum install lrzsz,在opt目录里创建fping目录,将fping源码包放进这个目录:

mkdir /opt/fping //新建fping目录
cd /opt/fping //进入目录
rz -E //选择fping源码包上传放入

然后解压fping压缩包,解压完成之后进入解压好的文件夹:

tar -xvf fping-4.2.tar.gz
cd fping-4.2
ls

现在开始配置检测,看看有没有什么组件没有安装的,如果提示有错误,根据提示安装即可。

./configure

会发现多了一些文件,这是正常的。

现在开始编译和安装

make //编译
make install //安装

安装完成之后可以输入【fping -v】看一下版本情况,【whereis fping】可以看安装的位置,位置默认在:fping: /usr/local/sbin/fping。

[root@localhost fping-4.2]# fping -v
fping: Version 4.2
fping: comments to david@schweikert.ch
[root@localhost fping-4.2]# whereis fping
fping: /usr/local/sbin/fping

如果没有消息,那就需要添加一下环境变量:

> vim /etc/profile
#在最后面添加
export PATH=$PATH:/usr/local/fping/sbin
> source /etc/profile
> fping -v

通过fping x.x.x.x来看看主机是否存活,原理同ping命令类似,能fping通的会显示x.x.x.x is alive,不通的会显示 x.x.x.x is unreachable:

[root@localhost ~]# fping 127.0.0.1
127.0.0.1 is alive
[root@localhost ~]# fping 128.0.0.1
128.0.0.1: error while sending ping: Network is unreachable

现在通过fping -agq命令来检测172.16.31.1~172.16.31.20这个段的主机在线情况:

[root@localhost ~]# fping -agq 172.16.31.1 172.16.31.20
172.16.31.8
172.16.31.10
172.16.31.14
172.16.31.16
172.16.31.18
172.16.31.19

可以直观的看到.1到.20现在正在使用的IP地址

fping的主要参数有以下两个:

-a:只显示存活主机;
-u:只显示不存活主机

现在通过fping命令来检测192.168.180.0-192.168.180.255 整个网段的主机在线情况,将alive的信息保存到/tmp/net_192.168.180.0_alive.txt 文件中,将unreachable的信息保存到/tmp/net_192.168.180.0_unreachable.txt中,将命令过程中出现在屏幕上的其他会输出信息写到/tmp/net_192.168.180.0_debug.txt 文件中:

以下命令是将alive的信息存到指定txt文本中:
fping -a -g 192.168.180.0/24 -s > /tmp/net_192.168.180.0_alive.txt

以下命令是将unreachable的信息存到指定txt文本中:
fping -u -g 192.168.180.0/24 -s > /tmp/net_192.168.180.0_unreachable.txt

以下命令是将过程中出现在屏幕上的其他会输出信息写到txt文本中:
fping -g 192.168.180.0/24 -s > /tmp/net_192.168.180.0_debug.txt

其他命令及注释:

-a 显示可ping通的目标
-A 将目标以ip地址的形式显示
-b <num> ping 数据包的大小。(默认为56)
-B <f> 设置指数反馈因子到f,默认为1.5
-c <num> ping每个目标的次数 (默认为1)
-C <num> 同-c,返回的结果为冗长格式
-e 显示返回数据包所费时间
-f <file> 从文件获取目标列表( - 表示从标准输入)(不能与 -g 同时使用)
-g 通过指定开始和结束地址来生成目标列表(例如:./fping &ndash;g 192.168.1.0 192.168.1.255)或者一个IP/掩码形式(例如:./fping &ndash;g 192.168.1.0/24)
-i <num> 设置ip的TTL值 (生存时间)
-l 循环发送ping
-m ping目标主机的多个网口
-n 将目标以主机名或域名显示(等价于 -d )
-p <num> 对同一个目标的ping包间隔(毫秒) (在循环和统计模式中,默认为1000)
-q 安静模式(不显示每个目标或每个ping的结果)
-Q <num> 同-q, 但是每n秒显示信息概要
-r <num 当ping失败时,最大重试次数(默认为3次)
-s 打印最后的统计数据
-t <num> 单个目标的超时时间(毫秒)(默认500)
-u 显示不可到达的目标
-v 显示版本

全站顶部广告位

  • 支付宝赞助图片
  • 微信赞助图片
  • QQ赞助图片
头像
描述: 还好有你,再见如初。

Press Space to start