【ping】在Linux服务器上ping某个主机时,出现(DUP!),一般是什么原因?

这篇具有很好参考价值的文章主要介绍了【ping】在Linux服务器上ping某个主机时,出现(DUP!),一般是什么原因?。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、 默认iptables策略

Linux内核集成的IP信息包过滤系统,linux的包过滤功能,即linux防火墙,它由netfilter和iptables两个组件组成。

防火墙在做数据包过滤决定时,有一套遵循和组成的规则,这些规则存储在专用的数据包过滤表中,而这些表集成在 Linux内核中。在数据包过滤表中,规则被分组放在我们所谓的链(chain)中。

netfilter/iptables IP 数据包过滤系统是一款功能强大的工具,可用于添加、编辑和移除规则。

netfilter组件也称为内核空间,是内核的一部分,由一些信息包过滤表组成,这些表包含内核用来控制信息包过滤处理的规则集。iptables组件是一种工具,也称为用户空间(userspace),它使插入、修改和除去信息包过滤表中的规则变得容易。

CentOS7没有iptables,默认使用firewalld 。
iptables默认无法被systemctl控制,需要安装iptables-services、iptables-devel这两个依赖包。

dup!,tcp,linux,服务器,运维

# yum -y install iptables iptables-services
# yum info iptables-services

# systemctl  status iptables
# cat /usr/lib/systemd/system/iptables.service
# rpm -qf /usr/lib/systemd/system/iptables.service
# cat /etc/sysconfig/iptables

dup!,tcp,linux,服务器,运维

dup!,tcp,linux,服务器,运维

dup!,tcp,linux,服务器,运维

# sample configuration for iptables service
# you can edit this manually or use system-config-firewall
# please do not ask us to add additional ports/services to this default configuration
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
COMMIT

iptables 默认策略解读

:INPUT ACCEPT [0:0]
# 该规则表示INPUT表默认策略是ACCEPT

:FORWARD ACCEPT [0:0]
# 该规则表示FORWARD表默认策略是ACCEPT

:OUTPUT ACCEPT [0:0]
# 该规则表示OUTPUT表默认策略是ACCEPT

-A INPUT -p icmp -j ACCEPT
# 该规则表示 OUTPUT表对 icmp协议的默认测试是 ACCEPT

-A INPUT -i lo -j ACCEPT
#  -i 参数是指定接口,这里的接口是lo ,lo就是loopback(本地环回接口),意思就允许本地环回接口在INPUT表的所有数据通信。

-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
# 允许进入的数据包只能是刚刚我发出去的数据包的回应
# ESTABLISHED:已建立的链接状态
# RELATED:该数据包与本机发出的数据包有关

-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -j REJECT --reject-with icmp-host-prohibited

# 根据 iptables 策略匹配即停止原则
# 这两条表示在INPUT表和FORWARD表中拒绝所有其他不符合上述任何一条规则的数据包,并且发送一条host prohibited的消息给被拒绝的主机

配置文件 /etc/sysconfig/iptables 中的iptables的默认策略,你也可以删除这些,另外建立符合自己需求的策略。

二、 ICMP 协议

协议背景

ICMP,全称是 Internet Control Message Protocol,即互联网控制报文协议,所谓控制,就是通过下发指令来感知和控制网络环境,所以它一定是配合一个无法感知网络环境的协议来工作的,这个协议就是 IP(包括 IPv4 和 IPv6)。

ICMP 通常被认为是 IP 协议的一部分,它封装在 IP 层中,使用 IP 协议进行传输。因此,严格来说,ICMP 既不是一个网络层协议,也不是一个传输层协议,而是介于两者之间的一个协议。

它的主要功能是传输网络诊断信息,信息主要包括两类:

一类是 查询类报文 :主要用于信息的查询和采集,比如采集传输路径上的每个路由器都是谁,本次传输的报文是否达到目的地等等。
另一类是 差错诊断类报文 :主要用于诊断网络故障,比如传输报文被丢弃的原因是什么等等。

我们都知道,IP 协议是一个不可靠协议,如果 IP 包在传输过程中出现错误,比如 checksum 对不上,拥塞,超时等等,那么 IP 包是会直接被丢弃的,之后也不会有进一步的努力来修正。

这是 IP 协议的一个设计准则决定的,也就是 best effort,尽力而为,这样的好处是让 IP 协议尽量保持简单的形态,只负责有效率的数据传输,而更多的质量控制交给高层的协议去处理(比如 TCP)。

但高层能提供质量控制的协议毕竟在少数,所以就需要在下层有协议来辅助 IP 完成必要的网络质量管理,ICMP 协议自然就被提出来了。

通过 ICMP 协议,当 IP 包发生错误的时候,上层发送 IP 包的主机或路由器并不知道下层发生了错误,这个时候,下层的主机或路由器就可以通过发送 ICMP 包,将错误信息汇报给上层,从而让上层的主机或路由器进行调整。

不过需要注意的是,ICMP 仅仅只能提供某些特定类型的错误信息汇报,并不能帮助 IP 协议成为可靠的协议,它能做的事还是有限,但用于基本的网络质量管理是足够了。

ICMP 报文格式格式

如下图所示,ICMP 报文是被封装在 IP 数据报中传输的。

IP 报头中的 Protocol 字段为 1 即表示该报文携带的是 ICMP 报文。
(此处只是为了说明问题,因此 IP 报头是简化了的)

dup!,tcp,linux,服务器,运维

进一步看,ICMP 报头为 4 个字节:

类型 type:占 1 个字节,表示较大范围类型分类的 ICMP 报文
代码 code:占 1 个字节,表示较小范围类型分类的 ICMP 报文(type的细分)
校验和 checksum:占 2 个字节,ICMP checksum 的计算方法类似于 IP checksum,但是不同的是 IP 只校验头部,ICMP 校验头部+数据部分
后面紧接的 ICMP 数据部分,根据前面的类型和代码字段的不同,具有不同的内容。

ICMP报文类型

ICMP 支持的报文类型非常多,详细看下表:
dup!,tcp,linux,服务器,运维

类型字段(type)指代了一大类,代码字段(code)又细分了几大小类。

上面可能不够明确,我们通过下面这两张表来列举一下,由于类型太多了,而且有些平时非常少见,因此,这里我们只列举常见的一些类型。

第一张表:类型表
注:R表示查询报文,E表示差错报文
dup!,tcp,linux,服务器,运维

进一步,对于每种类型,又可以根据代码字段细分多种子类型。

第二张表:类型细分表
dup!,tcp,linux,服务器,运维

通过这两张表,每一种类型的 ICMP 包的意思应该都比较清楚了。

ICMP 相关内核参数

ICMP 相关内核参数,常用的是 net.ipv4.icmp_echo_ignore_all,这是禁 ping 的一个参数,禁 ping 有几种方法。
其他的参数大家有兴趣也可以看看,遇到不懂的直接查这个图即可。
dup!,tcp,linux,服务器,运维

三、参考

对于 ICMP 协议,你想知道的都在这里了
https://mp.weixin.qq.com/s/Su2M5aQ2GXsbrgpVcX3kpQ

ping容易忽略的10点用法和排查问题技巧
https://mp.weixin.qq.com/s/ajE0yJfZo02Mkjmpy27SgA

Linux禁止ping以及开启ping的方法

https://mp.weixin.qq.com/s/5nPbvQeAxfOl-li_oMMdDw文章来源地址https://www.toymoban.com/news/detail-523693.html

到了这里,关于【ping】在Linux服务器上ping某个主机时,出现(DUP!),一般是什么原因?的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包赞助服务器费用

相关文章

  • 【已解决】多种方式最新解决Invalid Host header(无效的主机头)服务器域名访问出现的错误

    【已解决】多种方式最新解决Invalid Host header(无效的主机头)服务器域名访问出现的错误

    🐱 个人主页: 不叫猫先生 ,公众号: 前端舵手 🙋‍♂️ 作者简介:CSDN博客专家、内容合伙人,2023新星计划导师,前端领域优质创作者,共同学习共同进步,一起加油呀! 📢 资料领取:前端进阶资料可以找我免费领取 Invalid Host header 这个报错在网上有很多文章介绍解决

    2024年02月08日
    浏览(11)
  • 【Linux】主机搭建 Linux服务器环境 笔记

    【Linux】主机搭建 Linux服务器环境 笔记

    过年买了个 mini 主机当玩具玩一下,这里记录下。 已有主力机 (windows) 的情况下,使用过如下四种 Linux宿主环境。这里总结下区别。 优点 云服务器 虚拟机 笔记本电脑 mini主机 价格低 √ √ 便携 √ √ 环境隔离 √ √ √ 详细过程不贴出来了,把关键点回忆一下,方便以后快

    2024年02月21日
    浏览(41)
  • linux主机搭建NFS服务器

    NFS(Network File System,网络文件系统) 它允许网络中的计算机(不同的计算机、不同的操作系统)之间通过TCP/IP网络共享资源,主要在unix系列操作系统上使用。在NFS的应用中,本地NFS的客户端应用可以透明地读写位于远端NFS服务器上的文件,就像访问本地文件一样。 NFS服务器

    2024年01月16日
    浏览(14)
  • linux 15day apache apache服务安装 httpd服务器 安装虚拟主机系统 一个主机 多个域名如何绑定

    linux 15day apache apache服务安装 httpd服务器 安装虚拟主机系统 一个主机 多个域名如何绑定

    1.apache目录介绍 1.准备测试页面 2.访问控制测试 可以直接编辑apache主配置文件 修改默认网站发布目录 配置域名解析: 测试访问 基于端口 访问:www.soso666.com 访问: test.soso666.com:81 可以配置域名解析,也可以不用配域名解析

    2024年02月04日
    浏览(19)
  • linux 服务器出现 Input/output error 处理

    今天突然出现 ls、ss 、 lsof 等命令报错 -bash: /bin/ss: Input/output error 其中有一个服务器上出现提示 *** System restart required *** Last login: Thu Sep 15 12:02:09 2022 from 192.168.0.135 .ssh/rc: 12: .ssh/rc: cannot create /var/log/zabbix-agent/ssh.log: Read-only file system reboot 之后,OK 另一个服务器上更严重 $ sudo

    2024年02月06日
    浏览(47)
  • Linux服务器出现异常和卡顿排查思路和步骤

    Linux服务器出现异常和卡顿排查思路和步骤

    Linux 服务器出现异常和卡顿的原因有很多,以下是一些常见的原因: 1、CPU 占用率过高:当 CPU 占用率过高时,系统的响应速度会变慢,甚至出现卡顿现象。常见的原因包括进程的死循环、CPU 密集型的任务等。 2、内存使用过高:当内存使用过高时,系统会使用交换分区(s

    2024年02月04日
    浏览(6)
  • Linux【安全 01】云服务器主机安全加固(修改SSHD端口、禁用登陆失败的IP地址、使用密钥登录)

    Linux【安全 01】云服务器主机安全加固(修改SSHD端口、禁用登陆失败的IP地址、使用密钥登录)

    修改SSHD的默认端口,它可以抵御一些简单的密码暴力破解脚本。 查看登录失败的IP地址 通过下面的命令将这些登陆失败的IP加入服务器访问限制名单【失败次数最多的10个IP】 使用SSH密钥,并禁用密码登录,以MobaXterm为例进行说明。 以下命令在本机上执行(Windows) 使用Mob

    2024年02月05日
    浏览(9)
  • 服务器出现Address already in use(地址占用)错误怎么处理——【Linux】

    服务器出现Address already in use(地址占用)错误怎么处理——【Linux】

    首先出现这种问题的原因是因为服务器频繁调用,导致前一个服务器运行没有完全结束,地址被占用,下一次调用该地址时候,显示地址被占用了。 这里提供两个方法: 第一个方法 第一个方法也就是最蠢的方法就是关闭终端后,等待几分钟后,出现打开终端然后运行服务器

    2024年02月07日
    浏览(12)
  • Linux分布式应用 Zabbix监控配置[添加主机 自定义监控内容 邮件报警 自动发现/注册 代理服务器 高可用集群]

    Linux分布式应用 Zabbix监控配置[添加主机 自定义监控内容 邮件报警 自动发现/注册 代理服务器 高可用集群]

    关闭防火墙  服务端和客户端都配置时间同步 服务端和客户端都设置 hosts 解析 设置 zabbix 的下载源,安装 zabbix-agent2 修改 agent2 配置文件 启动 zabbix-agent2 在服务端验证 zabbix-agent2 的连通性 在 Web 页面中添加 agent 主 机 点击左边菜单栏【配置】中的【主机】,点击【创建主机

    2024年02月13日
    浏览(55)
  • Xshell “所选的用户密钥未在远程主机上注册,请再试一次”SSH 登录远程linux服务器(良心整理)

    Xshell “所选的用户密钥未在远程主机上注册,请再试一次”SSH 登录远程linux服务器(良心整理)

    这个问题真的要把我逼疯了,为什么呢? 为了解决这个问题,我搜遍了CSDN、知乎、简书上的解决方案,CSDN上的回答真的是水文太多,相互抄,抄就抄吧,只抄一半。这让真正想解决问题的人走了太多的弯路。 也不知道是谁写的原文,可能作者解决了,但是写的很不清楚,也

    2023年04月15日
    浏览(13)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包