Linux下使用ADSL上网,首先需要打开内核中PPP支持,在内核配置选项中Device Drivers ---> Network device support ---> <*> PPP (point-to-point protocol) support。
其次,下载并安装RP-PPPoE软件,地址为http://www.roaringpenguin.com/penguin/open_source_rp-pppoe.php。解压缩后,执行其中的go,依次输入用户名和密码,检查是否能连接。如果能连接,执行adsl-stop先断开网络连接,继续下面的配置。
修改/etc/ppp/pppoe.conf,ETH=、USER=根据自己实际情况修改,修改pap-secrets文件,写入用户名和密码,格式为 "用户名" * "密码",注意设置该文件owner为root病却权限为400。
为设置开机自动拨号,建立/etc/sysconfig/network-scripts/ifcfg-ppp0文件,内容为
USERCTL=yes
BOOTPROTO=dialup
NAME=DSLppp0
DEVICE=ppp0
TYPE=xDSL
ONBOOT=yes
PIDFILE=/var/run/pppoe-adsl0.pid
FIREWALL=NONE
PING=.
PPPOE_TIMEOUT=2000
LCP_FAILURE=3
LCP_INTERVAL=80
CLAMPMSS=1412
CONNECT_POLL=6
CONNECT_TIMEOUT=60
DEFROUTE=yes
SYNCHRONOUS=no
ETH=eth1
PROVIDER=DSLppp0
USER=用户名
PEERDNS=no
然后执行ifup ppp0看能否拨号。执行ip addr show看拨号获得的IP是否正确。
如果有多条ADSL线路,依次将用户名和密码写入/etc/ppp/pppoe.conf文件,分别建立ifcfg-ppp1、ifcfg-ppp2等文件,修改其中的NAME、DEVICE、PIDFILE、ETH、USER值,注意PIDFILE不能相同。然后依次执行ifup ppp1、ifup ppp2等进行拨号。执行ping -I ppp0 ipaddress检查ppp0是否能正常往外连接,同样检查ppp1、ppp2等连接。
如果需要多条线路实现流量负载均衡,需要用IP高级路由功能。
首先打开内核中IP高级路由支持,位于Networking ---> Networking options ---> [*] IP: advanced router。然后执行如下命令即可。
/sbin/ip route replace default scope global nexthop via `/sbin/ip addr show ppp0 | /bin/grep inet | /bin/awk '{print $2;}'` dev ppp0 weight 1 nexthop via `/sbin/ip addr show ppp1 | /bin/grep inet | /bin/awk '{print $2;}'` dev ppp1 weight 1 nexthop via `/sbin/ip addr show ppp2 | /bin/grep inet | /bin/awk '{print $2;}'` dev ppp2 weight 1
/sbin/ip route flush cache
可以通过/proc/net/dev文件查看流量是否正常。