关于使用iptables实现udp端口的nat的问题
tukey 2008-10-03 10:38:28 各位好,我的问题如下:
我想实现的是,在外网通过网关/防火墙可以访问在内网的某台机器上提供的tftp(不是ftp)服务(udp69端口)。
但是由于某种原因,我需要在网关/防火墙上进行端口转换。详情如下:
内网机器的IP:192.168.111.101 端口是udp69
网关机器IP:202.xxx.xxx.153 我想映射的端口是10069
用iptables实现这个的话,那么我改如何写这条iptables的命令呢?
(以下的命令我试验过,没有效果)
iptables -t nat -A PREROUTING -i eth0 -d 202.xxx.xxx.153 -p udp --dport 69 -j DNAT --to 192.168.111.101:69
iptables -t nat -A POSTROUTING -o eth0 -s 192.168.111.101 -p udp --sport 69 -j SNAT --to 202.xxx.xxx.153:69
*注1:如果不做端口变换的话,我试验过以下命令是起作用的:
iptables -t nat -A PREROUTING -i eth0 -d 202.xxx.xxx.153 -p udp -j DNAT --to 192.168.111.101
iptables -t nat -A POSTROUTING -o eth0 -s 192.168.111.101 -p udp -j SNAT --to 202.xxx.xxx.153
*注2:如果问题换做是tcp端口的转换是可以实现的,我也试验过,
如,将内网机器的tcp80服务映射到外网ip的tcp10080端口,命令如下:
iptables -t nat -A PREROUTING -d 202.xxx.xxx.153 -p tcp --dport 10080 -j DNAT --to 192.168.111.101:80
请各位高手一定多多指教,不胜感激!谢谢。