QQ登录

只需一步,快速开始

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 1060|回复: 7

iptables -t nat 的问题

[复制链接]
发表于 2005-1-7 12:35:27 | 显示全部楼层 |阅读模式
# 用DNAT作端口映射
iptables -t nat -A PREROUTING -d a.b.c.d -p tcp --dport 80 -j DNAT --to 192.168.1.10
# 用SNAT作源地址转换(关键),以使回应包能正确返回
iptables -t nat -A POSTROUTING -d 192.168.1.10 -p tcp --dport 80 -j SNAT --to 192.168.1.1

我的内网地址是192.168.1.10,网关上有外网地址a.b.c.d,和内网ip地址192.168.1.1
现在我就是不太明白上面高手所说的:# 用SNAT作源地址转换(关键),以使回应包能正确返回
这句话到底是什么意思?
iptables -t nat -A POSTROUTING -d 192.168.1.10 -p tcp --dport 80 -j SNAT --to 192.168.1.1
我以我的水平理解这句话是 当目的地址(-d)是192.168.1.10 协议(-p)是tcp目的端口(--dport 80)是80的包将源地址转化为(SNAT)192.168.1.1(--to 192.168.1.1)发出去
我怎么想都想不明白到底是什么意思,请高手帮我解释一下我吗?是否还有别的方法?
 楼主| 发表于 2005-1-7 12:40:12 | 显示全部楼层
在端口映射的时候必须要
iptables -t nat -A PREROUTING -d a.b.c.d -p tcp --dport 80 -j DNAT --to 192.168.1.10
iptables -t nat -A POSTROUTING -d 192.168.1.10 -p tcp --dport 80 -j SNAT --to 192.168.1.1
才能完成映射
但是我就是不明白高手所说的:用SNAT作源地址转换(关键),以使回应包能正确返回
这句话到底是什么意思,用的是什么原理,照抄他的句子(iptables -t nat -A POSTROUTING -d 192.168.1.10 -p tcp --dport 80 -j SNAT --to 192.168.1.1 )也不明白是什么意思,请各位高手帮小弟解释下好吗?
或者还有别的什么方法告诉一下小弟
回复

使用道具 举报

发表于 2005-1-9 23:02:48 | 显示全部楼层
你所说的,好象在一个网卡上有两内外网地址,象是桥接用,我觉得不用这样把,打开 oip_fotrward
回复

使用道具 举报

 楼主| 发表于 2005-1-10 10:51:00 | 显示全部楼层
是这样的
网关有两块网卡,一块是连内网IP是192.168.0.1;一块是连外网ip是adsl连接分配
我网关用的是redhat linux9.0系统iptables规则搭建防火墙,并根据网上一些高手的指导做端口映射,
我现在映射一个端口主要是用到了高手说的如下两句命令做包转发
# 用DNAT作端口映射
iptables -t nat -A PREROUTING -d a.b.c.d -p tcp --dport 80 -j DNAT --to 192.168.1.10
# 用SNAT作源地址转换(关键),以使回应包能正确返回
iptables -t nat -A POSTROUTING -d 192.168.1.10 -p tcp --dport 80 -j SNAT --to 192.168.1.1
现在我就是不明白iptables -t nat -A POSTROUTING -d 192.168.1.10 -p tcp --dport 80 -j SNAT --to 192.168.1.1 是做什么转换用的,而且没有这一句真的无法完成映射,就想请各位高手们继续指导下小弟。# 用SNAT作源地址转换(关键),以使回应包能正确返回 ,到底是什么意思,我怎么都想不明白求救了。
回复

使用道具 举报

 楼主| 发表于 2005-1-10 10:55:42 | 显示全部楼层
shenhanchinese
你好
打开 oip_fotrward  这是什么模块啊,有什么功能,有相关的资料链接吗?
回复

使用道具 举报

发表于 2005-1-10 11:55:46 | 显示全部楼层

Re: iptables -t nat 的问题

[quote:7bf49d9dce="坏东西"]# 用DNAT作端口映射
iptables -t nat -A PREROUTING -d a.b.c.d -p tcp --dport 80 -j DNAT --to 192.168.1.10
# 用SNAT作源地址转换(关键),以使回应包能正确返回
iptables -t nat -A POSTROUTING -d 192.168.1.10 -p tcp --dport 80 -j SNAT --to 192.168.1.1

我的内网地址是192.168.1.10,网关上有外网地址a.b.c.d,和内网ip地址192.168.1.1
现在我就是不太明白上面高手所说的:# 用SNAT作源地址转换(关键),以使回应包能正确返回
这句话到底是什么意思?
iptables -t nat -A POSTROUTING -d 192.168.1.10 -p tcp --dport 80 -j SNAT --to 192.168.1.1
我以我的水平理解这句话是 当目的地址(-d)是192.168.1.10 协议(-p)是tcp目的端口(--dport 80)是80的包将源地址转化为(SNAT)192.168.1.1(--to 192.168.1.1)发出去
我怎么想都想不明白到底是什么意思,请高手帮我解释一下我吗?是否还有别的方法?[/quote]

[code:1]# 将访问本机的 Web 服务(80 端口)重定向到 192.168.0.9 的 80 端口 :
# ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
#[0:0] -A PREROUTING -i eth1 -p tcp -m tcp --dport 80 -j DNAT --to-destination 192.168.0.9:80
#[0:0] -A PREROUTING -i eth0 -p tcp -m tcp -d 192.168.0.1 --dport 80 -j DNAT --to-destination 192.168.0.9:80
# 下面这句专门针对对于局域网里面的端口转发(在内部没有 DNS 服务器时):
# ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
#[0:0] -A POSTROUTING -s 192.168.0.0/24 -d 192.168.0.9 -p tcp -m tcp --dport 80 -j SNAT --to-source 192.168.0.1
#
[/code:1]
回复

使用道具 举报

 楼主| 发表于 2005-1-10 15:30:55 | 显示全部楼层
# 下面这句专门针对对于局域网里面的端口转发(在内部没有 DNS 服务器时):
# ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
#[0] -A POSTROUTING -s 192.168.0.0/24 -d 192.168.0.9 -p tcp -m tcp --dport 80 -j SNAT --to-source 192.168.0.1
#
古公为什么一定要加上这一句呢?要把原地址改成192.168.0.1,这个数据包的来源是什么
回复

使用道具 举报

发表于 2005-1-10 16:07:25 | 显示全部楼层
这句,只是针对局域网的访问的(在内部没有 DNS 服务器时)。

若有 dns 服务器,不需要这句,只需要那两句就可以了。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

GMT+8, 2024-11-6 17:38 , Processed in 0.047042 second(s), 16 queries .

© 2021 Powered by Discuz! X3.5.

快速回复 返回顶部 返回列表