由 linuxsky 在 08-20-2002 10:15 发表:
求救.关于ip映射(NAT)
我用一台服务器(redhat 7.3 双网卡 一内网ip 一外网ip)
做了squid 来代理下面的客户端
然后我用iptables来做了透明网关代理,这样可以满足某些客户端可以用qq等sock5等。和outlook
我的squid是用的80的端口来代理
这是我开nat用的四句命令.
modprobe ip_tables
modprobe ip_nat_ftp
echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE
现在我想用这台服务器来做IP映射功能
于是我在对外的那块网卡上用下面命令加了一个ip上去
ifconfig eth1 add 61.x.x.12 netmask 255.255.x.x
于是我的服务器的对外网卡上就多了一个真实ip了
然后我用下面的命令来做ip映射
iptables -t nat -A PREROUTING -i eth1 -d 61.x.x.12 -j DNAT --to 172.16.128.x
这句的意思应该是发到61的数据包全部转到172内网的某个ip上来吧
可现在就是无法转。真是怪.
谁告诉一下还需要做什么?
谢谢!
由 solaris 在 08-20-2002 11:22 发表:
你想做什么nat,是inside的还是outside的?
iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE
这句话好像是做insideNAT
iptables -t nat -A PREROUTING -i eth1 -d 61.x.x.12 -j DNAT --to 172.16.128.x
这句话好像是做outsideNAT?
由 linuxsky 在 08-20-2002 12:21 发表:
要做的是外网访内网
等于我现在是实现了内网访外网了
但在实现外网访内网时就不行了
由 kevin 在 08-20-2002 13:42 发表:
这样可以吗
如果内网全是保留地址,internet怎么访问呀,不可能的。
由 linuxsky 在 08-20-2002 16:23 发表:
呵呵
是可以的啦
我以前用win2000实现过的
Linux下也实现过
我现在试试换个端口看看算了
由 linuxsky 在 08-20-2002 17:16 发表:
不知道是不是因为squid用了80的端口来做代理的问题???
但是我换了端口也不行.怪
由 linuxsky 在 08-29-2002 20:03 发表:
对啊对啊。我这个问题还没解决
唉
http://www.linuxsir.com/bbs/showthr...p;threadid=5722
由 linuxsky 在 08-30-2002 03:08 发表:
一直等到临晨..还没人答复啊
由 北南南北 在 08-30-2002 03:27 发表:
sky兄弟,因为弟兄们大多数是没有实践环境。而不是不答复,可以理解。
===========================
请弟兄们发帖时要写个好标题,多谢!
===========================
每天以1000KM/H的速度在跑,感觉还是时间不够:(
“西学东渐,洋为中用” + 创造 = ?
linux ppc
由 linuxsky 在 08-30-2002 08:19 发表:
做这个应该不需要什么环境啊
只要能有上外网的机会
再有内网的机器。
呵呵。。
自己太心急了。
我以前做成功过。是按我上面的说法做的。但现在无论怎么做都不行。不知道怎么回事
由 xchen 在 08-30-2002 08:38 发表:
不知行否,可试一下
接收数据的时候你做了dnat,但是发出数据的时候你要做snat,你要将所有来自172.16.128.x的数据伪装成由61.x.x.12从eth1发出去。
iptables -t nat -A PREROUTING -o eth1 -s 172.16.128.x -j SNAT --to 61.x.x.12
dnat和snat应是一一对应,有进必有出嘛。
理论如此,还没时间试。
由 linuxsky 在 08-30-2002 09:15 发表:
-o是应该加在POSTROUTING规则里才行。不然出错啊..
这是我昨天的做法
我装的是Redhat7.3
装完后有iptables服务器
我执行如下命令
modprobe ip_tables
modprobe ip_nat_ftp
modprobe iptable_nat
modprobe ip_conntrack
modprobe ip_conntrack_ftp
echo 1 > /proc/sys/net/ipv4/ip_forward
ptables -t nat -A POSTROUTING -o eth0 -s 172.16.128.0/22 -j MASQUERADE
这样下面的机器只要设置好网关就可以上网了.
这说明我的iptables是工作正常的
然后我开始IP地址映射
iptables -t nat -A PREROUTING -i eth0 -d 61.1.1.1 -j DNAT --to 172.16.128.10
iptables -t nat -A POSTROUTING -o eth0 -s 172.16.128.10 -j SNAT --to 61.1.1.1
这两句应该是把外网转内网进行DNAT转换
然后内网出去需要做源SNAT转换
这样的话应该都可以了嘛?可为什么我实现不了?
我叫外面的人试也不行。内网看也不行。但光输入172.16.128.10我是可以看到我内网的东西的。这说明我的apache也是正常的
我做IP地址转换的这台主机我什么服务都没开
我用netstat -anlt查看
是这样的结果
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN
tcp 0 156 172.16.128.4:22 172.16.128.33:1277 ESTABLISHED
[root@dns1 root]#
说明我只开了个ssh服务啊
[root@dns1 root]# ps -aux | grep iptables
root 992 0.0 0.0 1760 596 pts/0 S 17:25 0:00 grep iptables
[root@dns1 root]#
这说明我的iptabl