AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / unix / 问题

问题[ping](unix)

Martin Hope
FigureOfCode
Asked: 2025-01-27 12:55:02 +0800 CST

如何让路由器响应来自交换机的 ARP 请求,以便我可以管理它

  • 5

我的网络上有一个 Web 管理交换机。它与我所在的主机 PC 一起连接到路由器。我无法通过路由器 ping 通它。

路由器是 Fedora 服务器。

路由器适用的接口有:

enp3s0 wan interface
enp4s0 with static IP 192.168.2.2/24
enp6s0 with static IP 10.2.4.1/24

路由器上的路由表有适用的条目:

Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         192.168.2.2     0.0.0.0         UG    100    0        0 enp4s0
0.0.0.0         10.2.4.1        0.0.0.0         UG    103    0        0 enp6s0
10.2.4.0        0.0.0.0         255.255.255.0   U     103    0        0 enp6s0
192.168.2.0     0.0.0.0         255.255.255.0   U     100    0        0 enp4s0

主机通过以下 IP 直接连接到这些接口:

          IP                    MAC                  attached if
switch    192.168.2.1 (static)  60:be:b4:13:28:e1    enp4s0
pc        10.2.4.5    (dhcp)    1c:2a:a3:1e:74:df    enp6s0

当我从主机 ping 时,会出现超时。因此,我从 enp4s0 上的路由器运行了 tcpdump

sudo tcpdump -i enp4s0 -n

16:18:06.345052 IP 10.2.4.5 > 192.168.2.1: ICMP echo request, id 48, seq 430, length 64
16:18:07.334961 ARP, Request who-has 192.168.2.2 tell 192.168.2.2, length 28
16:18:07.369062 IP 10.2.4.5 > 192.168.2.1: ICMP echo request, id 48, seq 431, length 64
16:18:08.361151 ARP, Request who-has 192.168.2.2 tell 192.168.2.2, length 28
16:18:08.393080 IP 10.2.4.5 > 192.168.2.1: ICMP echo request, id 48, seq 432, length 64
16:18:09.385150 ARP, Request who-has 192.168.2.2 tell 192.168.2.2, length 28
16:18:09.417072 IP 10.2.4.5 > 192.168.2.1: ICMP echo request, id 48, seq 433, length 64
[ ... ]
16:18:17.609124 IP 10.2.4.5 > 192.168.2.1: ICMP echo request, id 48, seq 441, length 64
16:18:18.601152 ARP, Request who-has 192.168.2.1 tell 192.168.2.2, length 28
16:18:18.601366 ARP, Reply 192.168.2.1 is-at 1c:2a:a3:1e:74:df, length 46
16:18:18.633088 IP 10.2.4.5 > 192.168.2.1: ICMP echo request, id 48, seq 442, length 64

可辨别的事实:

  • 数据包沿着路由器的 nftables 正向链从 enp6s0 传输到 enp4s0
  • 然后交换机询问谁拥有网关 192.168.2.2。但它没有得到任何回应。
  • 路由器随后询问谁拥有 192.168.2.1。交换机以其 mac 进行响应。
  • 路由器的arp表记录了它。
  • 交换机仍然不知道谁拥有 192.168.2.2

路由器适用的 arp 条目

Address                  HWtype  HWaddress           Flags Mask            Iface
192.168.2.1      ether   1c:2a:a3:1e:74:df   C                     enp4s0
10.2.4.5         ether   04:7c:16:4d:0a:84   C                     enp6s0

交换机没有响应 ping,而且,也没有响应我管理它的网络请求。当我从浏览器发送网络请求时,我立即收到一堆“请求谁拥有 192.168.2.2”,这表明 http 请求已到达交换机并且知道回复该 IP,但它仍然不知道谁拥有该 IP。它一直在询问。

这里是主机pc适用的arp表条目,显示路由器响应了PC的arp请求,那么为什么不响应交换机呢?

Address                  HWtype  HWaddress           Flags Mask            Iface
10.2.4.1                 ether   60:be:b4:13:28:e3   C                     enp12s0

这是唯一的 192.168。网络。所有其他接口都以 10 开头。

什么原因导致路由器不回复交换机的 arp 请求,以便我最终可以 ping 并管理它。

ping
  • 1 个回答
  • 50 Views
Martin Hope
Alex
Asked: 2022-06-18 07:40:16 +0800 CST

为什么 ping 等待 1 秒等待下一个 ping?

  • 1

在 Ubuntu 20.04.4 上,我正在运行ping类似的命令

sudo ping -l 2000 -c 200  domain.com

并且它立即执行前 12 次 ping,但随后仅执行 1 次 ping,延迟 1 秒。

准确地说:我得到这样的输出

64 bytes from my.domain.com (1.2.3.4): icmp_seq=65 ttl=62 time=0.392 ms
64 bytes from my.domain.com (1.2.3.4): icmp_seq=66 ttl=62 time=0.398 ms

每行 ( icmp_seq) 相隔一秒。因此,要完成 200 次 ping,我必须等待大约。200 秒。

我注意到,当我在 Mac 上localhost或 Mac 上运行命令时,所有 200 次 ping 都会在一秒钟内运行,而无需在各个 ping 之间等待。

这种行为的原因是什么?有什么方法可以更快地运行 ping 命令?

ubuntu ping
  • 1 个回答
  • 248 Views
Martin Hope
Imitate Spectrum
Asked: 2022-05-20 08:41:10 +0800 CST

为什么我可以 ping ~/.ssh/config 中定义的主机名?

  • 2

这不是我要解决的问题,但我一直对此感到好奇。

我在 ~/.ssh/config 中定义了几个主机名,但在其他任何地方都没有。值得注意的是,我没有在 /etc/hosts 中定义任何东西。

但我注意到我可以 ping 这些热门名称。为什么是这样?ping 实用程序是否专门查看 ~/.ssh/config?或者它是一个操作系统范围的东西?它与DNS有关吗?

编辑:

更具体地说,我在 ~/.ssh/config 中定义了一个主机:

Host my_laptop
        Hostname 192.168.1.3
        Port 22
        User myname

...我可以ping my_laptop从同一本地网络上的另一台机器上解析为192.168.1.3. 这让我很困惑,因为“my_laptop”没有在其他任何地方定义,所以我假设ping是从 ssh 配置中获取这个主机名。

但是,用户Kusalananda提到了nslookupand dig(到目前为止我还不熟悉的两个命令),并且nslookup my_laptop从另一台机器运行返回:

Server:     192.168.1.1
Address:    192.168.1.1#53

Name:   my_laptop.home
Address: 192.168.1.3

192.168.1.1是我家路由器的地址,我知道53端口与DNS有关。我在路由器的设置中四处寻找,有问题的机器('my_laptop`)在本地网络中路由器的机器列表中也以相同的主机名知道。

所以,我猜发生的事情是我的家庭路由器也是一个 DNS 服务器,而这一切都与 ~/.ssh/config 中的条目无关,而且你可能会说,我不太好精通网络,特别是 DNS。事实上,这个问题可能不属于这里,而是属于 Stack Exchange 的另一部分;对于那个很抱歉。

ssh ping
  • 1 个回答
  • 100 Views
Martin Hope
user458762
Asked: 2022-02-03 13:50:22 +0800 CST

如何清理/刷新网站存储的 IP 信息?

  • 0

我正在尝试使用 shell 脚本检查我是否连接到互联网。我认为我可以通过使用ping命令来做到这一点,因为如果 ping 成功,括号内有一个 IP 信息。如果没有括号,那么我使用cut命令分配一个特定的变量,如果是这种情况,该变量将变为空。

所以我写了下面的代码:

echo " First check whether internet is working or not  : "
internetCheck=$(ping -c 1 google.com | cut -s -d "(" -f1)
if [ -z "$internetCheck" ]; then 
  echo "NO INTERNET CONNECTION FOUND !"
else 
  echo "[ OK ] Internet is connected.\n"
fi

它奏效了。但是,当我关闭连接并为同一网站(google.com)重复脚本时,系统(?)会记住最后一个 ping 命令的结果,因此它会失败。如何清理/刷新以前的 ping 结果?

ping
  • 2 个回答
  • 90 Views
Martin Hope
Gabriel Staples
Asked: 2021-11-18 21:59:40 +0800 CST

相当于 Linux 上的 ping -o

  • 2

显然,MacOsping有一个-o选项,意思是“一旦收到第一个成功的响应就返回”或类似的东西。请参阅:https ://stackoverflow.com/a/6119327/4561887 。

Linux Ubuntu上是否有等价物?我们怎样才能最好地达到同样的结果?

我的版本ping utility, iputils-s20161105是ping -V.

更新:我在这里找到了 MacOs 文档:https ://ss64.com/osx/ping.html

-o         Exit successfully after receiving one reply packet.
linux ping
  • 3 个回答
  • 761 Views
Martin Hope
Nagev
Asked: 2021-10-06 08:30:03 +0800 CST

如何在 traceroute 或 ping 中识别未知设备

  • 0

在尝试排除从 Windows 主机到一台 Linux 来宾虚拟机 (192.168.1.19) 的 IP 地址失败的 ping 故障时,我做了一个traceroute:

$ traceroute 192.168.1.19
traceroute to 192.168.1.19 (192.168.1.19), 30 hops max, 60 byte packets
 1  Samsung.station (192.168.1.17)  3132.517 ms !H  3132.491 ms !H  3132.489 ms !H

$ ping 192.168.1.19
PING 192.168.1.19 (192.168.1.19) 56(84) bytes of data.
From 192.168.1.17 icmp_seq=1 Destination Host Unreachable
From 192.168.1.17 icmp_seq=2 Destination Host Unreachable

$ ping hostname
PING hostname (192.168.1.19) 56(84) bytes of data.
From Samsung.station (192.168.1.17) icmp_seq=1 Destination Host Unreachable
From Samsung.station (192.168.1.17) icmp_seq=2 Destination Host Unreachable

我可以从访客 ping 主机 IP(192.168.1.15)。问题是,我知道我的网络上有什么,但我不知道这Samsung.station台机器应该是什么。我已登录 Wi-Fi 路由器,但无法识别任何具有“192.168.1.17”IP 地址的设备。我已经关闭或断开了网络上所有少数三星设备的 Wi-Fi,但我仍然得到相同的结果。

我的最终目标是让 ping 双向工作,但现在我也想知道我是否可以做任何事情来识别这个神秘的设备!我已经看到了一个相关的问题,但我还没有尝试阻止设备,我首先想了解什么是最好的下一步,然后再重新启动路由器。如果有人可以自信地说没有 Linux 工具可以帮助我解决这个问题或获得更多信息,那也是一个有效的答案。谢谢你。

更新

主机运行 Windows 10,通过内置 Wi-Fi 接口连接到网络。

虚拟机在 VirtualBox 上。我特意选择了一个“桥接适配器”,以获得一个专用的 DHCP IP 地址,这样可以轻松方便地访问其本地网络服务器。此设置在以前的 Ubuntu VM 上运行良好,但这里讨论的 VM 是新的 Debian 11 最小(无桌面)安装。

我还重新启动了 Wi-Fi 路由器,所以有些事情发生了变化:

  • Windows 主机现在位于 192.168.1.16,但它以 VM 的“主机名”显示在 Wi-Fi 路由器上!这可能与重新启动之前相同,我可能只是错过了 Windows 主机的主机名不在设备列表中的事实。
  • VM 仍报告 IP 为 192.168.1.19。但现在它也无法 ping 主机 IP (.16) 并且traceroute192.168.1.16 仅显示* * *所有 30 个跃点。
  • 从traceroute主机到报告的访客 IP 仍然显示到点 17 IP 的神秘跳跃,但它旁边不再有Samsung.station主机名,不知道从哪里来。这里是:
    $ traceroute 192.168.1.19
    
    traceroute to 192.168.1.19 (192.168.1.19), 30 hops max, 60 byte packets
     1  192.168.1.17 (192.168.1.17)  3121.263 ms !H  3121.242 ms !H  3121.239 ms !H

我会粘贴ip address来自 VM 的输出,但我没有剪贴板集成工作,甚至在前一个 VM 上很容易的共享文件夹在这个 VM 上也不可见,所以我也无法将输出重定向到文件。

现在很明显,连接问题的根源似乎是桥接适配器未能从路由器的 DHCP 服务器获取自己的 DHCP IP,由于 VM 主机名出现在 Wi-Fi 列表中,我可能在重新启动之前错过了该 IP路由器上的设备。

事实证明,这更像是一个 VirtualBox 故障排除,为此道歉。我可能只是为虚拟机分配一个固定的 IP。关于意外跳跃之谜的任何提示仍然很有趣。

第二次更新

只记得我可以tcpdump用来获取更多信息。多年来,它一直是我最喜欢的网络故障排除工具之一!将根据我的发现发布更新或答案。另外,我还没有重新启动 Windows。仍然欢迎其他建议。

ping traceroute
  • 2 个回答
  • 412 Views
Martin Hope
Alexander Mills
Asked: 2020-01-31 13:02:04 +0800 CST

修改 /etc/hosts 以进行 dns 查找的替代方法

  • 0

我是网络新手 -ping无法找到某些 dns 名称,所以我将它们放在 /etc/hosts 中,如下所示:

10.128.0.22 kafka.marathn.meso
10.128.0.31 elasticsearch.marathn.meso

然后ping可以找到它们。如果 IP 地址发生变化,是否有更动态/可扩展的方式将 DNS 名称映射到 IP 地址?

dns ping
  • 1 个回答
  • 198 Views
Martin Hope
Oleksii
Asked: 2020-01-30 09:20:39 +0800 CST

如何安装owping工具?

  • 1

我想安装 owping,但是我无法配置和编译源代码。我已经安装了autoconf。

安装owping的说明

我已经下载并解压了 master 分支的源代码。运行命令:

./configure

给出“没有这样的文件或目录”

在互联网上,我发现以下命令可能会有所帮助。

autoreconf -i

但是最后我无法制作和安装这个工具。它给出了错误。请你帮助我好吗?

make ping
  • 1 个回答
  • 826 Views
Martin Hope
Red Cricket
Asked: 2020-01-28 14:15:21 +0800 CST

为什么主机启动时 ping -c 1 -W 1800 somehost 不成功?

  • 0

我试图通过执行以下命令检测主机何时从重新启动中恢复:

ping -c 1 -W 1800 myhost

我希望在 30 分钟过去之前主机能够成功 ping,并且在我的脚本中我可以ssh对主机采取一些动作。但是主机确实在过去 30 分钟之前启动,我可以通过ping myhost从命令行手动运行来验证这一点,但ping -c 1 -W 1800 myhost没有成功。它只是超时。

我的操作系统是:

$ uname -a
Linux dev-001 3.10.0-957.1.3.el7.x86_64 #1 SMP Thu Nov 15 17:36:42 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux
rhel ping
  • 1 个回答
  • 52 Views
Martin Hope
Adrián Jaramillo
Asked: 2020-01-23 14:59:54 +0800 CST

`/etc/hosts` 中同一主机的不同 IP:hostName 映射。为什么这行得通?

  • 0

我的场景

我的相关条目/etc/hosts(我按照您在此处看到的相同顺序编写它们)

172.22.5.107    www.wordpress-rend-adri.com
192.168.1.116   www.wordpress-rend-adri.com

我在家里和学校使用笔记本电脑,因此我总是处理 2 个地址空间:

  • 192.168.1.0/24
  • 172.22.0.0/16

所以我有这些条目,因为我有一个带有 Wordpress 的虚拟机来做练习。这样,无论我在哪里,我都可以访问我的 Wordpress(只要 DHCP 显然在两个网络中为我提供了相同的 IP)

我的问题

知道了这一切,现在我可以告诉你,我刚刚在我的配置中进行了该配置,/etc/hosts因为一位老师对我说,我只能有 1 条记录用于指向单个 IP 的名称。他对我说,如果我有一个同名的双寄存器,它总是取第一个,然后停止。但他也对我说我应该试试,所以我做了。

现实情况是,例如在我家(我正在使用的地方192.168.1.0/24),即使第一条记录是针对其他 IP 的,我仍然可以建立连接,并且当我 ping 名称时,正确的 IP 会回答我。是的,我确实试图完全确定这一点,我在一个隐身的 Firefox 窗口中做了,我还尝试评论我家的 IP 行以检查发生了什么。

然后,我尝试交换这两个记录。我的意思是,我只是这样做了:

192.168.1.116   www.wordpress-rend-adri.com
172.22.5.107    www.wordpress-rend-adri.com

所以在这种情况下,显然它仍然有效。

而当我上学时,使用其他地址空间时也发生了同样的情况。

所以...
_/etc/hosts

¿ 在进行最终连接之前,firefox、ping二进制文件或您使用的任何东西是否会进行名称解析的内部过程以检查实际有效的条目是什么?
我问这个是因为例如使用ping,您刚开始从有效的 IP 获得答案。您不会遇到连接失败的情况,例如尝试连接到其他以前的 IP

ping hosts
  • 2 个回答
  • 176 Views

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    模块 i915 可能缺少固件 /lib/firmware/i915/*

    • 3 个回答
  • Marko Smith

    无法获取 jessie backports 存储库

    • 4 个回答
  • Marko Smith

    如何将 GPG 私钥和公钥导出到文件

    • 4 个回答
  • Marko Smith

    我们如何运行存储在变量中的命令?

    • 5 个回答
  • Marko Smith

    如何配置 systemd-resolved 和 systemd-networkd 以使用本地 DNS 服务器来解析本地域和远程 DNS 服务器来解析远程域?

    • 3 个回答
  • Marko Smith

    dist-upgrade 后 Kali Linux 中的 apt-get update 错误 [重复]

    • 2 个回答
  • Marko Smith

    如何从 systemctl 服务日志中查看最新的 x 行

    • 5 个回答
  • Marko Smith

    Nano - 跳转到文件末尾

    • 8 个回答
  • Marko Smith

    grub 错误:你需要先加载内核

    • 4 个回答
  • Marko Smith

    如何下载软件包而不是使用 apt-get 命令安装它?

    • 7 个回答
  • Martin Hope
    user12345 无法获取 jessie backports 存储库 2019-03-27 04:39:28 +0800 CST
  • Martin Hope
    Carl 为什么大多数 systemd 示例都包含 WantedBy=multi-user.target? 2019-03-15 11:49:25 +0800 CST
  • Martin Hope
    rocky 如何将 GPG 私钥和公钥导出到文件 2018-11-16 05:36:15 +0800 CST
  • Martin Hope
    Evan Carroll systemctl 状态显示:“状态:降级” 2018-06-03 18:48:17 +0800 CST
  • Martin Hope
    Tim 我们如何运行存储在变量中的命令? 2018-05-21 04:46:29 +0800 CST
  • Martin Hope
    Ankur S 为什么 /dev/null 是一个文件?为什么它的功能不作为一个简单的程序来实现? 2018-04-17 07:28:04 +0800 CST
  • Martin Hope
    user3191334 如何从 systemctl 服务日志中查看最新的 x 行 2018-02-07 00:14:16 +0800 CST
  • Martin Hope
    Marko Pacak Nano - 跳转到文件末尾 2018-02-01 01:53:03 +0800 CST
  • Martin Hope
    Kidburla 为什么真假这么大? 2018-01-26 12:14:47 +0800 CST
  • Martin Hope
    Christos Baziotis 在一个巨大的(70GB)、一行、文本文件中替换字符串 2017-12-30 06:58:33 +0800 CST

热门标签

linux bash debian shell-script text-processing ubuntu centos shell awk ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve