linux双adsl拨号
作者:手机用户2602925311 | 来源:互联网 | 2017-11-13 14:43
linux双adsl拨号--Linux通用技术-Linux技术与应用信息,下面是详情阅读。
此文档可以说明双ADSL及多ADSL增加线路的配置过程......
经过一段时间的观察,证明运行良好,现把设置过程及方法总结一下,欢迎指正.
此文档可以说明双adsl及多adsl增加线路的配置过程.
实验环境:
操作系统: RedHat7.3
两条adsl,长期观察线路稳定,动态ip,带宽2M,
三块网卡: eth0 tulip,接内网
eth1 3c59x,接第一条adsl
eth2 8139too,接第二条adsl
ethn xxxx,(如果还有的话....)
目的:用两条adsl共同上网,分担负载,实现一般的简单负载平衡,带动内网上网.
1.添加网卡
插入网卡,启动机器,如果需要双线路上网,就要三块网卡了,配置网卡也可以参考其他资料.
配置为找到相应的型号模块,例如:eth2是8139的网卡
[root@kindgeorge root]# vi /etc/modules.conf
alias parport_lowlevel parport_pc
alias eth0 tulip
alias eth1 3c59x
alias eth2 8139too
把新的线路插在eth2上
2.配置adsl
方法一:
(1)运行adsl-setup程序,会一步一步的提示你完成配置过程.
创建ppp0和ppp1的拨号配置文件,并保存配置,一般保存在/etc/sysconfig/network-scripts/ifcfg-ppp1
(2)确定/etc/sysconfig/network-scripts/ifcfg-ppp0文件,其中的PIDFILE参数设为:
PIDFILE=/var/run/ppp-adsl.pid
修改/etc/sysconfig/network-scripts/ifcfg-ppp1文件,将其中的PIDFILE参数设为:
PIDFILE=/var/run/ppp-adsl1.pid
如果你有更多的线路,可以继续增加0,1,2,3....等
这是为了使不同的拨好用不同的pid,如果不修改此参数将无法启动第二条线路接口。
(3)配置文件一般是:
USERCTL=no
BOOTPROTO=dialup
NAME=DSLppp1
DEVICE=ppp1
TYPE=xDSL
OnBOOT=yes
PIDFILE=/var/run/pppoe-adsl1.pid
FIREWALL=NONE
PING=.
PPPOE_TIMEOUT=20
LCP_FAILURE=3
LCP_INTERVAL=20
CLAMPMSS=1412
CONNECT_POLL=6
CONNECT_TIMEOUT=60
DEFROUTE=yes
SYNCHROnOUS=no
ETH=eth2 (对应新线路的网卡)
PROVIDER=DSLppp1
USER=isp提供的新用户名字2
PEERDNS=no
方法二:
(1)直接拷贝
cp /etc/sysconfig/network-scripts/ifcfg-ppp0 /etc/sysconfig/network-scripts/ifcfg-ppp1
(2)修改其中的ppp0为ppp1,
修改PIDFILE=/var/run/pppoe-adsl.pid 为PIDFILE=/var/run/pppoe-adsl1.pid
修改采用的新接线路的网卡,例如:改ETH=eth1 为ETH=eth2
(3)增加新线路的帐号和密码. 帐号密码一般是保存在/etc/ppp/chap-secrets 和pap-secrets
我们只需要在最后增加新的用户名2和密码2即可.
/etc/ppp/chap-secrets文件一般是这样的:
# Secrets for authentication using CHAP
# client server secret IP addresses
"用户名1" * "密码1"
"用户名2" * "密码2"
"用户名n" * "密码n"
3.启动ppp接口
因为adsl-start 命令缺省只能启动第一的ppp接口。所以要启动两个接口,必须指定配置文件。
可以用:方法一:
ifup ppp0
ifup ppp1
(ifup pppn...)
或方法二:
adsl-start /etc/sysconfig/network-scripts/ifcfg-ppp0
adsl-start /etc/sysconfig/network-scripts/ifcfg-ppp1
(adsl-start /etc/sysconfig/network-scripts/ifcfg-pppn)
4.查看新设置是否启动:
方法一:执行: ifconfig
出现ppp0 和ppp1 ,并且均得到ip了.说明成功了,结果象这样:
ppp0 Link encap:Point-to-Point Protocol
inet addr:218.114.37.137 P-t-P:61.142.110.30 Mask:255.255.255.255
UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1492 Metric:1
RX packets:165721 errors:0 dropped:0 overruns:0 frame:0
TX packets:123673 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:3
RX bytes:157324193 (150.0 Mb) TX bytes:14068892 (13.4 Mb)
ppp1 Link encap:Point-to-Point Protocol
inet addr:218.114.35.62 P-t-P:61.142.110.30 Mask:255.255.255.255
UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1492 Metric:1
RX packets:560055 errors:0 dropped:0 overruns:0 frame:0
TX packets:439711 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:3
RX bytes:530025378 (505.4 Mb) TX bytes:80895162 (77.1 Mb)
方法二: 执行ip高级命令: ip link ls
也可以检验ppp0和ppp1,结果象这样:
1: lo: mtu 16436 qdisc noqueue
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: eth0: mtu 1500 qdisc pfifo_fast qlen 100
link/ether 00:50:bf:07:4e:32 brd ff:ff:ff:ff:ff:ff
3: eth1: mtu 1500 qdisc pfifo_fast qlen 100
link/ether 00:01:02:9a:31:b9 brd ff:ff:ff:ff:ff:ff
4: eth2: mtu 1500 qdisc pfifo_fast qlen 100
link/ether 00:e0:4c:79:44:71 brd ff:ff:ff:ff:ff:ff
268: ppp1: mtu 1492 qdisc pfifo_fast qlen 3
link/ppp
273: ppp0: mtu 1492 qdisc cbq qlen 3
link/ppp
方法三: 用命令测试反应
ping -I ppp0 202.96.134.133 (测试ppp0的线路状况)
ping -I ppp1 202.96.134.133 (测试ppp1的线路状况)
ping -I ppp2 ......n (如果还有多条的话)
5.如果单单是要实现链路负载平衡,让ppp0和ppp1分担负载,那么我们象以下设置一下配置:
(1)启动路由,允许转发echo 1 > /proc/sys/net/ipv4/ip_forward
(2)进行伪装:
iptables -A POSTROUTING -t nat -s 192.168.1.0/24 -o ppp0 -j MASQUERADE
iptables -A POSTROUTING -t nat -s 192.168.1.0/24 -o ppp1 -j MASQUERADE
iptables -A POSTROUTING -t nat -s 192.168.1.0/24 -o pppn -j MASQUERADE (如果还有多条的话)
(3)修改网关
ip route replace default scope global nexthop dev ppp0 weight 1 nexthop dev ppp1 weight 1
说明: 用replace的原因是当原来没有网关时会增加这个网关,当已经存在网关时,会修改原来的网关.
用add 也可以,但是当已经存在默认网关时就要先delete再add.
两个weight 1的意思是这两条链路的权值是相等的,两条链路承担的网络流量是相等的。
有一点是需要说明的,因为路由表是基于缓存的,所以在实际中两条链路并不能100%的平分流量
nexthop NEXTHOP 设置多路径路由的下一跳地址。NEXTHOP比较复杂,它的语法和以下高层参数类似:
via ADDRESS--表示下一跳路由器;
dev NAME--表示输出设备;
weight NUMBER--在多路由路径中,这个元素的权重。表示相对带宽或者服务质量。
如果你有多条线路,那么继续在其中增加 nexthop dev ppp2(ppp3......)即可
(4) 刷新路由
ip route flush cache
6.即时检查数据的方向:
用tcpdump 分别监察两条线路,用下面命令:
tcpdump -i ppp0
tcpdump -i ppp1
tcpdump -i ppp2......n (有多条的话)
7.为了每次启动时自动启动,把命令写在启动脚本里面,在 /etc/rc.local 后面增加:
ifup ppp0
ifup ppp1
echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -A POSTROUTING -t nat -s 192.168.1.0/24 -o ppp0 -j MASQUERADE
iptables -A POSTROUTING -t nat -s 192.168.1.0/24 -o ppp1 -j MASQUERADE
ip route replace default scope global nexthop dev ppp0 weight 1 nexthop dev ppp1 weight 1
ip route flush cache
结果:运行数月,效果稳定良好.
上网会明显加快,为何呢,因为两条线路分摊了负载.例如,内网80人同时上网,
如果网络是一条2M的adsl,那么整条线路都拥挤,挤得死死的,每人分得的带宽可能只有30k.大家都会明显感觉上网很慢.
如果增加多一条线路,那么两条2M共同分摊拥挤程度,这样,可能每人分得的带宽就会变成60K,是原来的加倍,以这种形式来加快上网速度,增加了并发连接的个数.
推荐阅读
-
Monkey《大话移动——Android与iOS应用测试指南》的预购信息已经发布,可以在京东和当当网进行预购。感谢几位大牛给出的书评,并呼吁大家的支持。明天京东的链接也将发布。 ...
[详细]
蜡笔小新 2023-12-14 18:57:09
-
本文介绍了《中秋夜作》的翻译及原文赏析,以及诗人当代钱钟书的背景和特点。通过对诗歌的解读,揭示了其中蕴含的情感和意境。 ...
[详细]
蜡笔小新 2023-12-14 18:37:02
-
-
本文介绍了基于layUI的图片上传前预览功能的两种实现方式:一种是使用blob+FileReader,另一种是使用layUI自带的参数。通过选择文件后点击文件名,在页面中间弹窗内预览图片。其中,layUI自带的参数实现了图片预览功能。该功能依赖于layUI的上传模块,并使用了blob和FileReader来读取本地文件并获取图像的base64编码。点击文件名时会执行See()函数。摘要长度为169字。 ...
[详细]
蜡笔小新 2023-12-14 17:06:58
-
本文详细介绍了搭建Windows Server 2012 R2 IIS8.5+PHP(FastCGI)+MySQL环境的步骤,包括环境说明、相关软件下载的地址以及所需的插件下载地址。 ...
[详细]
蜡笔小新 2023-12-14 17:03:58
-
本文介绍了使用PHP动态切割JPEG图片的方法,并提供了应用实例,包括截取视频图、提取文章内容中的图片地址、裁切图片等问题。详细介绍了相关的PHP函数和参数的使用,以及图片切割的具体步骤。同时,还提供了一些注意事项和优化建议。通过本文的学习,读者可以掌握PHP图片截取的技巧,实现自己的需求。 ...
[详细]
蜡笔小新 2023-12-14 16:44:09
-
对当年关羽败走麦城,恰好路过马超的封地,为啥马超不救他?很感兴趣的小伙伴们,趣历史小编带来详细的文章供大家参考。说到英雄好汉,便要提到一本名著了,没错,那就是《三国演义》。书中虽 ...
[详细]
蜡笔小新 2023-12-14 16:29:09
-
本文分享了一个关于在C#中使用异步代码的问题,作者在控制台中运行时代码正常工作,但在Windows窗体中却无法正常工作。作者尝试搜索局域网上的主机,但在窗体中计数器没有减少。文章提供了相关的代码和解决思路。 ...
[详细]
蜡笔小新 2023-12-14 15:56:00
-
本文介绍了使用Java实现大数乘法的分治算法,包括输入数据的处理、普通大数乘法的结果和Karatsuba大数乘法的结果。通过改变long类型可以适应不同范围的大数乘法计算。 ...
[详细]
蜡笔小新 2023-12-14 15:43:50
-
本文介绍了PHP设置MySQL字符集的方法,详细介绍了使用mysqli_set_charset函数来规定与数据库服务器进行数据传送时要使用的字符集。通过示例代码演示了如何设置默认客户端字符集。 ...
[详细]
蜡笔小新 2023-12-14 15:30:33
-
本文介绍了Java序列化对象传给PHP的方法及原理,包括Java对象传递的方式、序列化的方式、PHP中的序列化用法介绍、Java是否能反序列化PHP的数据、Java序列化的原理以及解决Java序列化中的问题。同时还解释了序列化的概念和作用,以及代码执行序列化所需要的权限。最后指出,序列化会将对象实例的所有字段都进行序列化,使得数据能够被表示为实例的序列化数据,但只有能够解释该格式的代码才能够确定数据的内容。 ...
[详细]
蜡笔小新 2023-12-14 15:25:15
-
本文介绍了橱窗设计的表现手法,包括直接展示、寓意与联想、夸张与幽默等。通过对商品的折、拉、叠、挂、堆等陈列技巧,橱窗设计能够充分展现商品的形态、质地、色彩、样式等特性。同时,寓意与联想可以通过象形形式或抽象几何道具来唤起消费者的联想与共鸣,创造出强烈的时代气息和视觉空间。合理的夸张和贴切的幽默能够明显夸大商品的美的因素,给人以新颖奇特的心理感受,引起人们的笑声和思考。通过这些表现手法,橱窗设计能够有效地传达商品的个性内涵,吸引消费者的注意力。 ...
[详细]
蜡笔小新 2023-12-14 15:14:03
-
本文介绍了解决HDU 2372 El Dorado问题的一种动态规划方法,通过循环k的方式求解最长上升子序列的长度。具体实现过程包括初始化dp数组、读取数列、计算最长上升子序列长度等步骤。 ...
[详细]
蜡笔小新 2023-12-14 15:08:18
-
本文介绍了faceu激萌变老特效的使用方法,包括打开faceu激萌app、点击贴纸、选择热门贴纸中的变老特效,然后对准人脸进行拍摄,即可给照片添加变老特效。操作简单,适合新用户使用。 ...
[详细]
蜡笔小新 2023-12-14 15:01:56
-
本文介绍了Android中高级面试的必知必会内容,并总结了相关经验。文章指出,如今的Android市场对开发人员的要求更高,需要更专业的人才。同时,文章还给出了针对Android岗位的职责和要求,并提供了简历突出的建议。 ...
[详细]
蜡笔小新 2023-12-14 14:53:02
-
九月十五日,大连微软技术社区举办了《.net core始于足下》活动,共有51人报名参加,实际到场人数为43人,还有一位专程从北京赶来的同学。活动得到了微软赛百味和易迪斯的赞助,场地也由易迪斯提供。活动中大家积极交流,取得了非常成功的效果。 ...
[详细]
蜡笔小新 2023-12-14 14:51:26
-
手机用户2602925311
这个家伙很懒,什么也没留下!