1
kiah 2024-05-23 19:17:41 +08:00
# 清除现有规则
iptables -t nat -F # 配置 POSTROUTING 规则 iptables -t nat -A POSTROUTING -j MASQUERADE # 配置 PREROUTING 规则,将特定源 IP 的流量转发到目标主机 iptables -t nat -A PREROUTING -i vnet0 -s 10.10.10.50 -j DNAT --to-destination 10.10.10.20 |
![]() |
2
zsj1029 OP @kiah 我每次都清除才测试的,不行大佬,我测试下来如果把-i vnet0 去掉,就可以,但是做不到指定网卡流量转发了
|
![]() |
3
Yien 2024-05-23 19:42:13 +08:00 via Android
这问题我最近测试过,如果 .50 IP 主机的网关不是主机 A 的.1 IP 的话,无法实现重定向到 20
|
5
Jirajine 2024-05-23 20:07:53 +08:00
你如果要只有目的地址为 10.10.10.10 的流量转发给 10.10.10.20 ,那你可以在写规则的时候匹配目的地址。网卡和 ip 没什么关系,从 eth0 进来的目的地址为 10.10.10.10 的包也会被接受,但匹配不到你的规则。
如果你的需求是由 B 向 C 发起请求但是要经过 A ,那你直接在 B 添加静态路由,ip route add <dest_C> via <ip_of_A>,然后在 A 上配置规则决定谁能发给谁。 |
![]() |
6
zsj1029 OP 已解决
iptables -t nat -A PREROUTING -s 10.10.10.50 -d 10.10.10.10 -j DNAT --to-destination 10.10.10.20 不要给 A 创建虚拟网卡,在单网卡上创建多个 ip ,主机 B 10.10.10.50 访问 A 的 10.10.10.10 ,转发到 c 的 10.10.10.20 |
7
wumoumou 2024-05-24 12:02:44 +08:00
向大佬学习一下
|