用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的力量。