用Linux代替你的Windows代理服务器

Linux之家

公司原本有5台电脑需要连入Internet,使用的是ADSL Modem自带的路由功能。由于业务调整,公司需要上网的电脑迅速增加到了30台,改用了电信光纤线路,ISP要求我们自备路由器。正好公司里有一台较老的电脑,就被我拿来当作路由器了。电脑配置为赛扬1GHz,256MB内存,40GB硬盘,两块杂牌8139网卡。用它装上Win2000以后做代理服务器,速度非常慢而且经常出现断线现象,因此想到了试试Linux(为了提高效率,不安装X Window环境)。利用它的iptables打开NAT功能,从此以后,再也没出现过断线现象,非常稳定。下面我就把经验拿出来和大家分享,共分ADSL拨号上网和固定IP上网两种情况。

ADSL拨号配置

1.网卡配置

笔者使用的是上海贝尔的ADSL Modem,两块网卡,eth0为拨号网卡,IP:192.168.1.x(由ADSL Modem自动分配);eth1为内网网卡,IP:192.168.0.1,掩码:255.255.255.0,无须设网关;局域网网段为192.168.0.0。

2.PPPoE软件的升级与安装

1) Linux上最流行的ADSL拨号软件为RP-PPPoE,目前最新版本为3.5;

下载地址: http://www.roaringpenguin.com/penguin/pppoe/rp-pppoe-3.5.tar.gz

将软件下载到/home/tools目录。

2) 安装rp-pppoe并配置客户端。

以root身份在命令提示符下依次执行如下命令:

cd /home/tools

tar zxvf rp-pppoe-3.5.tar.gz

cd rp-pppoe-3.5

go

执行go命令后会闪过如下一段文字:

>>> Enter your PPPoE user name: //输入拨号账号的用户名

>>> Enter the Ethernet interface connected to the ADSL modem For Solaris, this is likely

to be something like /dev/hme0. For Linux, it will be ethn, where n is a number.

(default eth0): //输入eth0

>>> Enter the demand value (default no): //输入no

>>> Enter the DNS information here: //输入当地DNS地址

>>> Please enter your PPPoE password: //输上网账户口令,要连续输入两次,并且要相同

>>> Choose a type of firewall (0-2): //输入0

>>> Accept these settings and adjust configuration files (y/n)? //输入y。

上面如果哪步操作错了,你可以用“Ctrl+C”中止后重新运行go命令。

3.修改/etc/ sysctl.conf

将其中的net.ipv4.ip_forward = 0改为net.ipv4.ip_forward = 1这点的作用是允许系统提供路由功能。

4.启动拨号连接

/usr/sbin/adsl-start

成功连接后,屏幕显示Connected。

此时这台Linux已可以成为Internet的一分子了。

5.打开NAT

为了使局域网中的其他机器能通过Linux服务器共享上网,至少须执行下面的命令:

iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE

完成后,在192.168.0.0网段(网关为192.168.0.1)的PC机就可通过Linux上网了!

提示:如果你没有设置DHCP,那需要手动为这些电脑设置IP地址。

6.开机自启动

为了使Linux服务器能够自动拨号,执行下面操作步骤。

1)chkconfig --add adsl

2)setup

3)选择system services

4)选中ADSL

5)OK退出

6)打开/etc/rc.d/rc.local,在该文件的末尾添上下面语句:

iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE

前5步的作用相当于拷贝了一个快捷方式在启动项目里,第6步相当于写了一个自启动文件。

至此,一切OK,一个简单的拨号连接建成了。重启机器后,发现Linux的Internet共享连接已经一切就绪了,好妙!

固定IP上网的NAT设置

1.网卡配置

两块网卡,eth0为外网网卡,IP:218.249.20.xx,掩码:255.255.255.x,网关:218.249.20.x,

DNS:(请按自己的实际情况输入);eth1为内网网卡,IP:192.168.0.1,掩码:255.255.255.0,无须设网关;局域网网段为192.168.0.0。

2. 修改/etc/ sysctl.conf

将其中的net.ipv4.ip_forward = 0

改为net.ipv4.ip_forward = 1

3.打开NAT

为了使局域网中的其他机器能通过Linux服务器共享上网,至少须执行下面的命令:

iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE

完成后,在192.168.0.0网段(网关为192.168.0.1)的PC机就可通过Linux上网了!

4.开机自动共享的设置

执行如下命令:

/etc/rc.d/init.d/iptables –save

此命令的作用是将前面的一条iptables规则保存,以后每次开机都会自动重启。

这个方法和前面讲到的将规则写到/etc/rc.d/rc.local里效果是一样的,大家可以有选择性地使用。

至此,用固定IP上网的路由功能我们也完成了。但你需要为其他机器设置IP:192.168.0.x,掩码:255.255.255.0,网关:192.168.0.1,DNS:请询问当地ISP。

后记:这只是一个开始,如果你愿意,还可以把这台配置低的机器变成无所不能的服务器,可以做邮件服务器、公司文件服务器、打印服务器,可以放一些浏览量低的网站等等,这就是Linux的力量。