我在我的Linux服务器上有一个VPN来做IPv4 NAT,例如:
iptables -A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT iptables -A FORWARD -s 10.8.0.0/24 -j ACCEPT iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o venet0 -j SNAT --to-source 1.2.3.4
不过,我想设置每个内部10.8.0.0/24 IP静态短暂的端口范围,使日志哪个客户端连接更容易,这是可能的iptables?
例如,端口1000-2500将是10.8.0.10和10.8.0.20等使用的临时端口。
我search了Google,但找不到任何东西。
检查MASQUERADE目标而不是SNAT:它支持以下选项:
--to-ports port[-port] This specifies a range of source ports to use, overriding the default SNAT source port-selection heuristics (see above). This is only valid if the rule also specifies one of the following protocols: tcp, udp, dccp or sctp.
我从来不使用它,但testing! 但它只会在tcp,udp上工作。 对于其他人,如ICMP,运气不好,没有端口…
我不认为你可以控制哪个端口用于哪个NAT的ip。 但是,如果您在公共空间中有任何额外的IP地址,则可以通过映射您想要跟踪的地址来利用该IP:
iptables -t nat -A POSTROUTING -s 10.8.0.10/32 -o venet0 -j SNAT --to-source 1.2.3.1 iptables -t nat -A POSTROUTING -s 10.8.0.20/32 -o venet0 -j SNAT --to-source 1.2.3.2 iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o venet0 -j SNAT --to-source 1.2.3.4