笔记本电脑改路由器
2020-04-27
前
四年前我写过一篇将树莓派刷成 openwrt 服务器的教程。
这次更新一下。假设你有一定的 linux 基础(包括但不限于路径、盘符以及 vi 的退出方式)。
正
买了 oculus quest,不支持在设备上挂代理,于是一开始连设备初始化都不能进行。找了一些方式,比如直接淘宝买了一个nanopi r2s,结果回来刷完机用了没10分钟就热炸了,通电红灯常亮发热,也不知道是哪个滤波电容还是什么挂掉了。蒙受了扯皮卖家两天“我觉得不是设备问题,是你脑子问题”的潜台词下,我终于肉身到店击垮了他们的傲慢。Nanopi r2s 是放弃了,再也不会相信任何国产智能路由器了(以前买过极路由和魔豆,甚至还推荐给同学,简直),看着淘宝一堆成品路由,又贵又没扩展性,一个pc硬件坏了换坏掉的那部分就可以,成品路由就跟个单片机差不了多少,就我这跟国产硬件相冲的特质,还是先放弃。
尝试了一下 LEDE 配置旁路由,翻了10+篇教程、视频,都写的不够好。最后好歹好说学习了一下 iptable,好像是正常工作了,可是网实在是太慢,而且经过了两天多的折腾,有点累了,对于我这种计算机网络课全部是睡过去(对不起我的计网老师)的主来说还是直接搞主路由。
国内常用的路由器固件是 LEDE,在 Openwrt 基础上添加了很多“中国特色”。使用了 release 出来的 x86 包,在 U 盘的临时 linux 下使用 dd 命令到 x220 的硬盘上去。
# 替换命令中的映像路径以及硬盘对应盘符
dd if=YourLedeRom.img of=/dev/sdX bs=4096
# 等待完成
修改 bios 到兼容 Legacy & UEFI 模式后成功启动(有的固件是 Legacy 有的是 UEFI,DD 完无法启动可能是模式原因)。进入系统后等状态刷一会儿后,回车,出现命令行。LEDE 就安装完毕了。
操作了这些但是是不能使用无线的,因为无线种类太多了,而且很多路由器根本就没有无线,所以默认是不会打这方面的驱动的。然而 Lede 的源里也没有,无法使用 opkg 安装驱动和相关包,这个在我意料外,于是开始自行编译。
目标网络设置
家中局域网交换机 –> X220 的网口(在 Openwrt 设置其为 wan 口) –> 无线网卡做 AP
此时 X220 就是一个二级路由,不影响原局域网。
应用
我原本打算是下 Openwrt 的源代码,然后补充上相关插件 repo,但是这方面教程太少,于是试着直接编译一下 LEDE。
自定义编译 Lede
我家有三张 usb 网卡。在 linux 下可以使用 lsusb
和 lspci
查找到 usb 和 pci 网卡的型号。X220 自带的 pci 网卡为 N6205,不支持 AP 模式,只能使用外接无线网卡。我三个网卡使用 lsusb
查找出来的型号分别为 TODO。之后会根据这些型号勾选相关包默认安装。
- 创建一个至少为 40GB 硬盘空间 linux 桌面环境(我这里使用 virtualbox + ubuntu20.04,不安装 virtualbox 扩展)
- 去 https://github.com/coolsnowwolf/lede/releases 下载最新 release 源码包(使用 release 而非直接 checkout master 是我个人习惯,被开源的 master 坑过)
- 按照 https://github.com/coolsnowwolf/lede 的指引进行操作
默认打包出来的是默认的配置,我现在需要为我的无线网卡打包,就需要在 menuconfig 中勾选上(到对应的选项前面按两下空格至显示 *
号设置为打包进最后的映像)需要的包。
我勾选的包有
- TODO
make 的时候可以先使用 proxychains 代理下载包,然后不使用代理进行编译(我按习惯直接代理下编译出现 python ipv6 error)
# 下载使用代理
proxychains make -j8 download
# 编译不使用
make -j$(($(nproc) + 1)) V=s
机器越强网络越好编译越快,现在的机器可真是好 ryzen 7 1700 虚拟机下分八核,一个小时不到就搞定了,上篇写树莓派的时候得 5 个小时。
修改网络接口设置及配置防火墙
vi /etc/config/network
删除 lan 口下 ifname 那行,修改 lan 下 ipaddr 地址为另一个网段(我的主路由网段是 192.168.1.x,所以此处我修改为192.168.2.1),新增一个 wan 口,设为动态获取。
config interface 'lan'
option type 'bridge'
option proto 'static'
option ipaddr '192.168.2.1'
option netmask '255.255.255.0'
option ip6assign '60'
config interface 'wan'
option ifname 'eth0'
option proto 'dhcp'
vi /etc/config/firewall
添加一段新规则
config rule
option src 'wan'
option dest_port '80'
option target 'ACCEPT'
option proto 'tcp'
重启网络和防火墙或直接重启
/etc/init.d/network restart
/etc/init.d/firewall restart
在网页中进行配置
在 192.168.1.x 的网段中使用设备访问此网段网关给 x220 动态分配的ip,即可打开 Openwrt 网页配置界面。输入默认密码 password
后进入。等待无线启动需要耐心和运气。如果在左侧网络子目录中能看到无线,那就说明硬件已经注册上了。运气好的这个时候已经可以搜到无线 SSID 了,运气不好的可以尝试禁用后启用或者更换频道、配置等。linux 下 usb wifi 网卡启动速度很慢,不要心急,喝喝茶什么的。
结
按你心意或者其他网上教程配置好其它,就可以愉悦了。