![使用本地回溯 IP 进行 ping](https://linux22.com/image/1522626/%E4%BD%BF%E7%94%A8%E6%9C%AC%E5%9C%B0%E5%9B%9E%E6%BA%AF%20IP%20%E8%BF%9B%E8%A1%8C%20ping.png)
我们如何使用自己的回溯 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
环回设备通常会被分配整个范围。例如,如果您 ping 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)