浙江大学有线网和树莓派路由器(二)

简介 在设置完无线热点以后,其实在宿舍里wifi信道干扰严重,主要是体现在极高的丢包率(over 50%)和延迟上。如果你的设备刚好支持通过以太网(有线)连接的话,可以和我一样购买usb->rj45的有线网卡给树莓派进行扩展。 注意!这不是一个step-by-step的教程,而是作为系列一的补充启到抛砖引玉的作用,所以请不要copy-paste,也不要做全文件的替换! 网卡选择 我为rpi3选择了rtl8152芯片的usb有线网卡,它能够免驱在rasbian(debian10)下工作,非常方便。这里多说一句,对于rpi4以下机型请选择百兆usb网卡,因为受限于usb2.0的通道速度,千兆网卡根本发挥不出它的性能,并且会存在兼容性问题。如果是rpi4以上机型,通道改为了usb3.0那么可以选择rtl8153芯片(网上说也免驱,我没有测试)。 在购买得到有线网卡以后,接上以后可以通过lsusb来查看rasbian是否成功识别了它,以下是rtl8152芯片的样例输出: Bus 001 Device 006: ID 0bda:8152 Realtek Semiconductor Corp. RTL8152 Fast Ethernet Adapter 组网 方案设想 我购买了两个usb有线网卡,算上树莓派自身的无线和有线,那么总计有:eth0, eth1, eth2, wlan0,四个物理网卡。我组网设想的方案是将eth0作为wan口,然后搭建一个br0的网桥,将eth1, eth2, wlan0桥接在一起,为br0启用dhcp服务。最后,在完成浙大l2tp拨号后,通过iptables为ppp0设置nat(这一步其实在系列一里已经完成了)。 具体实现 首先更新软件包列表后安装依赖:bridge-util,我们要利用brctl建立网桥和管理br0中的interfaces(自己用apt安装即可)。 # 建立br0网桥 brctl addbr br0 有些不太一样的是,之前我们在/etc/dhcpcd.conf中是为wlan0设置了静态ip的,此时我们要将设备名改为br0,即: interface br0 static ip_address=192.168.11.1/24 其次是在/etc/dnsmasq.conf中,设备名也要修改为br0,即: interface=br0 dhcp-range=192.168.11.10,192.168.11.30,255.255.255.0,24h 最后,也要告诉hostapd使用br0网桥,即在/etc/hostapd/hostapd.conf中,要追加一行: bridge=br0 OK,所有配置文件修改完毕,这里我建议大家先重启树莓派以让所有配置生效。重启完毕后,使用ifconfig查看应该会看到多出了一个br0的interface(同时你应该还要看到你的usb网卡,就是eth1)。那么先根据系列一提供的脚本拨号,让pi能够上网(这时会多出一个ppp0的interface),接着我们就要开始进行网络桥接: brctl addif br0 eth1 # 若你没有第二张usb网卡,那么这行不要执行 brctl addif br0 eth2 至此,此时给你的设备接上网线,设备上设置dhcp自动获取ip地址,你就可以通过有线上网啦! 其他技术细节 开机自动组建网桥 每次手动都要组建网桥是非常麻烦的一件事,这部分我还在研究。难点主要是会牵扯网卡启动顺序,所以需要寻找一种合适的方案。此部分留空,后续我会更新。 参考资料 Differences between /etc/dhcpcd.conf and /etc/network/interfaces? Linux Advanced Routing & Traffic Control HOWTO

September 13, 2019 · 1 min · Bruce Yip

浙江大学有线网和树莓派路由器(一)

简介 虽然对于校园网不能要求太多,不过依然要吐槽一下浙江省的校园网,连我浙都不能够幸免。万幸的是,玉泉校区并没有采用电信的闪讯方案(啊啊啊!),而是采用了标准的l2tp代理服务,故我等linux用户得以救赎。其实作为国内最高学府之一,linux用户要是不能够上网那也太可笑了。 进入正题,本文并不是step-by-step的教程(所以不要看到命令行就copy/paste),所以也不会做多发行版兼容,但作为综述并旨在讲解一些整体细节和遇到的坑,可以帮你节省不少的时间。我会假设你拥有linux的系统基础,并以debian系为例讲解,大概率适用于macos用户(cheer up!) 在最后有线网络连接上以后,还会将树莓派(pi3b+)中的无线网卡改为AP模式,散出热点供多设备使用。 大家都有自己遇到的问题,如果Google后无解那么当然可以邮件给作者我,你可以在本站找到我的邮箱,只要你是ZJUer我会尽力帮助你。 有线连接 安装xl2tpd 首先更新软件包列表,仅想要连接有线的同学需要依赖:xl2tpd,其实这部分在信息网上能够找到linux的配置手册。需要注意,本文均略去了sudo,若出现权限问题大家酌情加上即可。 # 更新软件包列表 apt update # 安装xl3tpd apt install xl2tpd -y 这里着重说一下树莓派如何在有线网卡离线的情况下安装,我采用的方法是手机共享出热点后用pi3b+的内置无线网卡连接。若是低于此版本的pi,那么你只能采用离线依赖包手动安装了。无线配置方法有两种,如下: 使用raspi-config自带的network选项连接(推荐) 手动通过配置或者命令行来连接,注意iw是不能够连接wpa/psk2类型加密的无线网络的,所以我们要使用wpa_supplicant命令来连接到手机热点,你可以从google中搜索到配置如何写 编写配置文件 需要修改的配置文件比较多,内容就直接贴出了,不做说明,它们有: /etc/xl2tpd/xl2tpd.conf,主配置文件,仅在更改账户时需重新修改 /etc/ppp/options.xl2tpd.zju,模拟拨号的配置,基本一次配置后无需修改 /etc/ppp/chap-secrets,VPN拨号时用的账户密码,仅在更改账户或者密码时需修改 以下是主配置文件,位于/etc/xl2tpd/xl2tpd.conf。其中,USERNAME@TYPE是你的学号@类型,类型有a, c, d,分别对应10/30/50的套餐。 [lac ZJU_VPN] ; Example VPN LAC definition lns = 10.5.1.7 redial = yes ; * Redial if disconnected? redial timeout = 15 ; * Wait n seconds between redials max redials = 5 ; * Give up after n consecutive failures require pap = no ; * Require PAP auth....

September 10, 2019 · 2 min · Bruce Yip