作者:Su99
总的来说,就是把Linux作为路由/网关,打开IP转发,对大部分情况,还需要设置IP伪装。
我在REDHAT62下面按这个步骤很方便设好了路由,网络上的其它机器只须把网关设成LINUX这台机器的IP,DNS设成ISP给的DNS就能直接上网了。(假如用WINNT/2000作网关,连DNS都可以转发,就是说其它机器DNS设成网关就行了,但LINUX作网关的时候好象不行,必须设成ISP的DNS,不懂为什么)。
1. 在X下运行netcfg,转到ROUTING项,在DEFAULT GATEWAY DEVICE 输入用来连接外部的设备,比如,我用MODEM上网,就用ppp0 ,假如你用DSL或CABLE什么的,连入INTERNET一般就是用网卡eth0/eth1
2. 把上面的network package forwarding (ipv4)选中
3. Save
4. 重启NETWORK服务:/etc/rc.d/init.d/network restart
5. 确认IPV4FORWARDING已打开:
cat /proc/sys/net/ipv4/ip_forward
应该显示 1 假如不是1,请检查以上步骤,据说强制
echo 1
/proc/sys/net/ipv4/ip_forward 也可以,我没试过。
6. 假如你的LAN本身就在INTERNET上,比如,它们都有各自合法的C 类地址,现在直接就可以工作了(当然要把客户机的网关和DNS设成真正上网这台机器)。这种情况很少。
7. 一般情况下LAN用的是10.x.x.x或192.168.0.x这类INTERNET不使用的地址。这时要设置IP伪装和转发链表:
ipchains -P forward DENY
这句是先拒绝所有的转发,避免有未经授权的机器使用你的ROUTER
ipchains -A forward -s 192.168.0.0/255.255.255.0 -j MASQ
这句是答应对192.168.0.x子网上的机器进行转发和伪装。
假如一切正常,现在其它机器就可以直接上网了。ROUTER的好处就在于客户机设置简单,一劳永逸。PROXY方式运行在所有软件中设置PROXY,假如某软件不支持PROXY就有点麻烦。
另外,假如要一直用这台机器当ROUTER的话,可以上面两句IPCHAINS加到/etc/rc.d/init.d/network文件中,一般放在这里:
case "$1" in
start)
ipv4_forward_set
ipchains....
ipchains....
这样就会在NETWORK服务启动的时候自动添加转发链表。
上面这些设置在我的REDHAT 6.2下面通过。我们公司就是用一台很烂的PEN/66当ROUTER,大家都用它当GATEWAY/ROUTER上网。