【问题标题】:Find network interface that is communicating with gateway without using PING/ ICMP or UDP查找不使用 PING/ICMP 或 UDP 与网关通信的网络接口
【发布时间】:2022-03-24 02:47:38
【问题描述】:

我有一台 RHEL 客户端机器,它必须在启动时从 RHEL 服务器机器获取数据。

服务器的 IP 地址是已知的。 客户端机器必须使用的网关是已知的。 客户端机器有多个网络接口。所有人可能不会同时启动,或者所有人都可能连接到不同的网络。 我需要确定必须使用哪个网络接口。

我知道这可以使用“ping”或“traceroute”轻松完成。 问题是 ICMP 协议在客户端和服务器端都被禁用。 出于安全考虑,ICMP 已被禁用。 ICMP 可能在机器级别被禁用,也可能在整个网络中被禁用。

换句话说,如果 ICMP 被禁用,我需要找到一种方法,如果两个 ip 正在通信,我可以给我。

另外,我必须在我用 bash 编写的脚本中使用这个结果来设置客户端机器的网络。

实现这一目标的最佳方法是什么?

【问题讨论】:

  • 您确定需要知道将要使用的网卡吗?内核通常很擅长为您解决这个问题。您总是可以尝试使用ip route get <dest IP> 询问内核,看看它如何尝试将数据包发送到目标 IP——尽管如果路由被破坏,数据包可能无法成功,但这就是内核会尝试的无论如何做
  • 感谢您的回复。我必须知道接口的意思是我有接口列表,但我必须找出哪个接口连接到我必须使用的网关,而不使用 ICMP/ping。找到可以使用的接口后,我必须手动设置网络。
  • 啊,所以你没有DHCP,你需要弄清楚哪些网卡应该在给定的空间中手动分配地址?如果是这样,您可以尝试运行 tcpdump 并查看哪个 NIC 看到给定空间中的流量,但如果它是一个安静的网络,您可能不会很快找到东西。您需要以编程方式执行此操作吗? (如果没有,不同的 Stack Exchange 网络可能更适合这个问题。)

标签: linux bash networking


【解决方案1】:

您可以使用arping 命令尝试通过ARP ping ip

【讨论】:

    猜你喜欢
    • 2022-12-16
    • 2016-06-10
    • 1970-01-01
    • 2012-11-29
    • 2020-07-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多