LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 954|回复: 2

NAT怎么才能实现?

[复制链接]
发表于 2007-6-20 21:54:22 | 显示全部楼层 |阅读模式
suselinux有eth0(外网)和eth2(内网)两个网卡

  外部设定:eth0设置的是自动获取ip,但是,我是河南网通的用户,网通采用的是dhcp+的方式上网,必须用网通客户端linux版本进行拨号,输入一个用户名和一个密码,才能上网。防火墙设置为外部

  内部设定:eth2设置为手动ip:192.168.1.2/255.255.255.0
  我使用了dhcp服务器来为客户端分配ip,dhcp服务器选择的网卡是eth2,并且防火墙设置类型为内部。
  现在dhcp可以正常工作,客户端和linux主机可以相互ping通。
  在防火墙设置里,伪装选项下,选择了“伪装”

在网卡设置里面:
dns设置为:202.102.224.68     202.102.227.68

同时也选择了“ip转发”

客户端为xp系统,ip是由linux分配的,ip:192.168.1.10/255.255.255.0,默认网关:192.168.1.2
怎样才能实现NAT
发表于 2007-6-20 23:20:16 | 显示全部楼层
拨号成功后,用
ifconfig 查看一下,系统中是否有ppp0这样的接口,如果你用的是ADSL拨号的话,应该会有ppp0那样的接口

做NAT只需要在ppp0那样的端口上做NAT

iptables-save 看看你的防火墙配置是什么?

如果只是简单地在外网接口上做nat,你可以尝试先停止系统的防火墙,然后
echo 1 > /proc/sys/net/ipv4/ip_forward   #打开转发功能
iptables -t nat -A POSTROUTING -o ppp+ -j MASQUERADE  #这样就在外网接口上做伪装了

如果没有生成ppp0之类的接口的话,那么就应该用的是eth0访问外网,此时就需要这样做:
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-6-21 15:38:56 | 显示全部楼层
非常感谢了,我昨天晚上在发行版suselinux论坛里面的朋友netman网中人的帮助下,做好了nat,但是如果使用networkmanager的话,就不能够实现NAT,但是可以用网通客户端拨号上网。
如果使用ifup管理网卡接口的话,把外网设定为静态ip(静态的会频繁掉线,因为没有经过网通DHCP+认证),用静态ip就可以实现nat,而这时网通客户端就不能运行。
这个问题如何解决?
补充以下在suse里面做nat,有两步,一个就是起用ip转发,也就是ip_forward=yes
一个就是防火墙中的伪装(MASQUERADE)也要起用。这样就可以实现nat。
回复 支持 反对

使用道具 举报

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

本版积分规则

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