使用本地回溯 IP 进行 ping

使用本地回溯 IP 进行 ping

我们如何使用自己的回溯 IP ping 目的地?

eth0      <info>
lo        <info>
lo:0      Link encap:Local Loopback
          inet addr:##.###.###.##  Mask:255.255.255.255
          UP LOOPBACK RUNNING  MTU:65536  Metric:1

我想要运行以下命令来 ping 目标 IP(例如 $$.$$$.$$$.$$)

ping -I ##.###.###.## $$.$$$.$$$.$$

根据手册,我们可以将 -I(大写 I)与 ipv4 地址一起使用,但我想为 ipv4 地址实现上述命令,我应该为此创建哪些规则?

答案1

我想我会给出一个完整的答案来跟进这些评论。

本地环回使用 IP 范围 127.0.0.1-127.255.255.254

环回设备通常会被分配整个范围。例如,如果您 p​​ing 127.3.3.3,您的设备将 ping 自身。

当计算机进行通信时,它们会检查自己是否与正在通信的设备位于同一子网中。如果是,它们就会进行通信;如果不是,它们就会尝试使用网关(路由器等)来尝试到达那里。

假设您的网络位于 192.168.0.0 子网,子网掩码为 255.255.255.0。

如果我尝试从 192.168.0.2 ping 192.168.0.1,它们会查看它们的子网并识别它们的 IP 地址的网络部分 (192.168.0),它们都会看到它们在同一个子网上,并进行通信。

但是,如果我让 192.168.0.1 ping 192.168.1.1,他们会再次查看网络部分并发现不同。消息将发送到网关,设备依靠网关发送消息。如果您没有网关,或者网关不知道网络在哪里,则不会发送消息。

127.0.0.1 始终位于与您的网络不同的子网中,路由设备永远不会从其路由流量,并且您的主机不会尝试从其发送消息。如果您从该 IP 发送数据包,其他设备将忽略该数据包。

答案2

我们不能使用回溯IP与外网进行通信!但是...我们可以让这个命令发挥作用!

让我们看看如何..

什么是回溯 IP?

环回设备是一种特殊的虚拟网络接口,您的计算机使用它来与自身通信。它主要用于诊断和故障排除,以及连接到本地机器上运行的服务器。相关描述

我们实际上可以使用回溯 IP 来连接其他网络机器吗?

不!我们不能。如@利斯特设备使用维护的回溯 IP 进行自我诊断和故障排除。话虽如此,在上述情况下,ping -I (lookback) (destination)我们可以配置防火墙以将回溯 IP 生成的请求转换为伪装,以便使用有效的 eth0 IP 更改源 IP。这意味着,我们确实将使用我们机器的有效 IP 地址与目的地进行通信,但这一切都将在后台进行!如果 PS 目标机器尝试使用 tshark/wireshark 等工具跟踪传入的数据包,它可以直接发现这一点。

我们可以使用防火墙的 NAT(网络地址转换)表来实现这一点。

  • 激活 IP 转发(默认情况下大部分是禁用的)

    echo "1" > /proc/sys/net/ipv4/ip_forward
    
  • 加载数据包转发的重要模型(通常已经加载)

    modprobe ip_tables
    modprobe ip_conntrack
    modprobe ip_conntrack_irc
    modprobe ip_conntrack_ftp
    
  • 伪装(更改源 IP 地址)传出的数据包,源 IP 为 eth0 / eth1

    iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
    
    • t 表名
    • 将此规则附加到后路由
    • o 输出到 eth0
    • j 跳转到 MASQUERADE
  • 测试设置

    ping -I (lookback_ip) (destination_ip)
    

相关内容