我过去一直在使用 ipfilter。这是我在那里使用的:
map-block tun0 192.168.1.0/24 -> 20.20.20.0/24
一些远程应用程序要求多个连接都来自同一个 IP 地址。所以,我想告诉 iptables 在 IP 地址之间有一个静态映射,并为主机使用相同的 IP 地址(即使用一些魔法来选择端口)。我该怎么做呢?
我过去一直在使用 ipfilter。这是我在那里使用的:
map-block tun0 192.168.1.0/24 -> 20.20.20.0/24
一些远程应用程序要求多个连接都来自同一个 IP 地址。所以,我想告诉 iptables 在 IP 地址之间有一个静态映射,并为主机使用相同的 IP 地址(即使用一些魔法来选择端口)。我该怎么做呢?
你可以用 netfilter 做类似的事情:
您可以在此处
iptables
阅读NAT howto 。参见 iptables -j SNAT --to-source [ipaddr[-ipaddr]] --persistent
我不知道这是“多么静态”。也许映射在重启时丢失了。如果这是一个问题,那么您可以通过为每个地址的显式规则配置静态映射。
IIRC 有一个工具(不幸的是我不记得名字了)可以将源地址或目标地址映射到链,这样你就不需要一个有 254 个条目的链:
使用带有
persistent
选项的 iptables SNAT 目标来保持为特定客户端选择的 IP 相同:iptables --table nat --append POSTROUTING --out-interface tun0 --source 192.168.1.0/24 --jump SNAT --to-source 20.20.20.0/24 --persistent