关于使用iptables实现udp端口的nat的问题

tukey 2008-10-07 10:44:32
各位好,我的问题如下:
我想实现的是,在外网通过网关/防火墙可以访问在内网的某台机器上提供的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 10069 -j DNAT --to 192.168.111.101:69
iptables -t nat -A POSTROUTING -o eth0 -s 192.168.111.101 -p udp --sport 10069 -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

请各位高手一定多多指教,不胜感激!谢谢。
...全文
164 3 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
老腊肉泡酒 2008-10-08
  • 打赏
  • 举报
回复
iptables -t nat -A POSTROUTING -o eth0 -s 192.168.111.101 -p udp --sport 10069 -j SNAT --to 202.xxx.xxx.153:69
--sport之里应该是192的那个port吧
rzsheng 2008-10-08
  • 打赏
  • 举报
回复
这个我也没试过,跟班学习
bshawk 2008-10-08
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 linuxjackaroo 的回复:]
iptables -t nat -A POSTROUTING -o eth0 -s 192.168.111.101 -p udp --sport 10069 -j SNAT --to 202.xxx.xxx.153:69
--sport之里应该是192的那个port吧
[/Quote]
maybe:
iptables -t nat -A POSTROUTING -o eth0 -s 192.168.111.101 -p udp --sport 69 -j SNAT --to 202.xxx.xxx.153:10069

4,465

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 内核源代码研究区
社区管理员
  • 内核源代码研究区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧