惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

博客园 - Franky
N
Netflix TechBlog - Medium
宝玉的分享
宝玉的分享
Google DeepMind News
Google DeepMind News
腾讯CDC
G
Google Developers Blog
Martin Fowler
Martin Fowler
Microsoft Security Blog
Microsoft Security Blog
Recent Announcements
Recent Announcements
爱范儿
爱范儿
Engineering at Meta
Engineering at Meta
Microsoft Azure Blog
Microsoft Azure Blog
A
About on SuperTechFans
aimingoo的专栏
aimingoo的专栏
有赞技术团队
有赞技术团队
Jina AI
Jina AI
人人都是产品经理
人人都是产品经理
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
M
MIT News - Artificial intelligence
罗磊的独立博客
博客园 - 三生石上(FineUI控件)
美团技术团队
WordPress大学
WordPress大学
阮一峰的网络日志
阮一峰的网络日志

博客园 - chengbo

Android Studio:为Android定制的IDE 使用Gitolite来对Git的repository实现权限控制 更快的,更好的支持硬件的模拟器 当LISTVIEW有HEADER时,ONITEMCLICK里的POSITION不正确 准备再写写东西了 压缩 ViewState 后,与 UpdatePanel 的兼容问题 - chengbo 如何让 firefox 的窗口大小不再被网页脚本改变 52个行之有效的减压方法 用Javascript检查Caps Lock是否按下 如何用C#和SQL获得当前月的第一天和最后一天 每天如何自动编译项目并将之打包添加到VSS中 - chengbo - 博客园 maxthon 2 预览版的邀请 成都古羌科技有限公司招聘 怎样用TSQL建JOB xml参数存储过程 如何在ReadOnly的DataGrid中的让CheckBox列可点击 激情黄健翔 Head first design patterns 读书笔记 – Strategy(策略模式) 双击U盘出现“拒绝访问”的解决方法
用Debian当路由,来解决BT造成的网络慢的问题
chengbo · 2012-04-20 · via 博客园 - chengbo

自从@TimothyYe童鞋介绍偶加入HDC后,为了快点完成新人作业,也为了满足我不折腾不舒服斯基的欲望,哥配了一台凌动小PC,Intel ATOM D525NW的主板,集成了CPU和显卡,加上小机箱总共700元。到手后,插上我Thinkpad拆下来的2根1G内存和另外一台闲置N久的台式机160G SATA硬盘,装了个Debian,就可以用了。 装上transmission后,全速挂BT无压力,比那些直接路由或者1、200的NAS给力多了。哥还继续在上面折腾了Git,emule,动态DNS等,远远没有把2G内存榨干,当然这里都说远了,继续回来。 我家使用的是电信ADSL,一个宽带无线路由,手机,notebook,iPad,PC,xbox等(哥真败家。。。),路由拨号连入Internet,然后通过WIFI把其它设备连入LAN,共享外网连接。这个配置在我挂PT之前一直工作正常,可是当我把BT开着,就算上传和下载速度都为0,LAN中的其它设备访问Internet的速度一样很慢,很慢。 分析了下,估计是我那100元的低端无线路由无法支撑如此多的连接会话造成的,简单直接的办法就是升级路由,于是开始上网查高端路由,不查不知道,一查才知道这东西好贵,便宜的怕是不能解决问题,贵的哥又承受不了。纠结了N久,最后发现,何不把我那台Debian来做路由呢? 马上在淘宝买了根20元的USB有线网卡,收到后插入Debian上,这东西不像Windows和MAC可以自动识别出来然后提示你安装驱动,要自己去折腾,而且附送的光盘上也没有Linux的驱动,看来,要找Google了。

安装配置USB网卡

在Debian上运行

chengbo@chengbo-server:~$ lsusb

Bus 005 Device 002: ID 0fe6:9700 Kontron (Industrial Computer Source / ICS Advent) DM9601 Fast Ethernet Adapter 从上得知,USB网卡是DM9601这个型号的

chengbo@chengbo-server:~$ /sbin/ifconfig

只有lo和eth0,新加的网卡没有识别 以DM9601为关键字,Google,找到了这里,下载解压好linux的驱动后,编译出错,好像是头文件不对,哥不会写驱动啊,只有继续Google,发现DM9601的驱动已经集成在新版的内核里了,但是我试了下,用不了,不知道什么原因。继续Google,又找到了这里,根据上面的说明,下载了qf9700的驱动,编译,成功,生成文件qf9700.ko。 安装刚才编译好的驱动

root@chengbo-server:~$ cp qf9700.ko /lib/modules/`uname -r`/kernel/drivers/net/usb
root@chengbo-server:~$ cd /lib/modules/`uname -r`/kernel/drivers/net/usb
root@chengbo-server: usb$ modprobe usbnet
root@chengbo-server: usb$ insmod qf9700.ko
root@chengbo-server: usb$ ifconfig eth1 up

配置好驱动后再运行

root@chengbo-server:~$ ifconfig

多了一个eth1了,到现在新网卡已经可以使用了。

安装配置ADSL拨号相关软件

把原先连接无线宽带路由和猫的网线拔掉,接在猫和Debian的USB网卡上 安装拨号软件

root@chengbo-server:~$ apt-get install pppoe pppoeconf

成功后运行

root@chengbo-server:~$ pppoeconf

会弹出一个窗口,自动检测连接ADSL的网卡,然后照提示输入你的用户名,密码,其它的可以用默认值。 运行

root@chengbo-server:~$ pon dsl-provider

就可以拨号了,过后再ifconfig一下,会发现多了个ppp0。poff命令可以关闭ppp0连接。另外,我发现多次拨号可以有多个ppp,比如ppp1,而且IP还不一样,不知道这样是否可以让带宽double,待测试。此时Debian可以上网了,但是LAN中的其它设备还不行。

设置LAN路由

设置Debian连接LAN的网卡配置

root@chengbo-server:~$ vim /etc/network/interfaces
allow-hotplug eth0 iface eth0 inet static address 192.168.3.3 netmask 255.255.255.0 network 192.168.3.0 broadcast 192.168.3.255 gateway 192.168.3.3

由于所有的无线设备都是有无线宽带路由来DHCP的,所以登录无线宽带路由,把配置改下:

range 192.168.3.100-192.168.3.200 netmask 255.255.255.0 gateway 192.168.3.3 dns 8.8.8.8 or 4.4.4.4

DNS没有用电信分配给我的,是因为不想看电信强行插入的广告 设置NAT

root@chengbo-server:~$ echo "1" > /proc/sys/net/ipv4/ip_forward
root@chengbo-server:~$ /sbin/iptables -t nat -A POSTROUTING -o ppp0 -s 192.168.3.0/24 -j MASQUERADE

至此LAN中的其它设备也可以上网了,如果还不行的话,检查下你的配置是否正确,然后再看看路由表,把错误的路由改掉。 最后,我家网络的结构如下图 home network // TODO: 此文还需添加Debian重启后自动配置USB网卡,拨号,NAT的内容 本文由Roy最初发表于:http://blog.chengbo.net/2012/04/18/use-debian-server-as-a-router.html,你可以在保持文章完整和保留本声明的情况下转帖、分发和印刷等。