一、软路由概念。软路由一般是利用PC的硬件加上路由系统来实现路由器的功能,那么就意味着硬件性能肯定会比硬路由的要高出许多,而且配置可以根据自己的需求随时调整,同时价格也肯定比高端的硬路由要便宜许多。同时因为抛开了硬路由的条条框框,软路由的可玩性比一般硬路由要高出许多。软路由从硬件到软件,每一步都是折腾的过程,如果你享受这个折腾的过程那就是你的福音,在硬件上软路由不像硬路由那样有专门的电路板布局及信号放大芯片、屏蔽网等,故WiFi功能是天然劣势,只能通过AP予以弥补。
二、软路由购置安装。软路由的选购和安装,你可以通过taobao搞定,包括店家可以帮你预装诸如Openwrt或爱快等软路由系统(个人建议前者),如果你已弄懂系统安装方面的操作,你也可以购入硬件后自行折腾搞定。当然,为了方便,最好事先你已具备轻松爬墙的能力,这样通过互联网查询相关教程就可以轻松搞定。你要明白,软路由是一个强大的工具而不是说有它就一定能爬墙,但一定能帮助你更好地将爬墙技术运用到家庭生活中,方便家里人共享便利,或方便顺畅地使用诸如AppleTV、Netflix等设备和服务。
三、固件。软路由固件来源一般来说有2种渠道:一是直接下载安装使用别人发布的适合自己软路由硬件的固件;二是根据自己的软路由硬件配置及插件需求自行编译固件,当然也是站在大佬们智慧的肩膀上完成的,具体教程可自行Google查找。
(一)固件编译
1.环境搭建
L大推荐首选Ubuntu 64bit,版本Ubuntu 18
LTS x64,Ubuntu系统安装后更新一下源,Lean和eSir万般说明不要使用root用户编译系统,可能会遇到各种问题。
*注意新装Ubuntu需要安装的包(附后)
创建非root用户(如用户名为wq)
sudo useradd -m wq -d /home/wq -s /bin/bash
设置密码
sudo passwd wq
修改用户的权限
注:/etc/sudoers文件只有r权限,在改动前需要增加w权限,改动后,再去掉w权限
(1)为sudoers增加写入权限
sudo chmod +w /etc/sudoers
sudo vim /etc/sudoers
(2)为用户XXX添加读写权限
#
User privilege specification
root ALL=(ALL:ALL) ALL
wq ALL=(ALL:ALL) ALL // 本行为新添加代码
(3)将sudoers文件的操作权限去掉w权限改为只读模式
(4)su wq
切换当前用户为非已创建的非root账户
2.安装依赖
sudo apt update
apt-get install sudo
以下的命令适用Ubuntu 18
sudo apt-get -y install build-essential
asciidoc binutils bzip2 gawk gettext git libncurses5-dev libz-dev patch python3
python2.7 unzip zlib1g-dev lib32gcc1 libc6-dev-i386 subversion flex uglifyjs
git-core gcc-multilib p7zip p7zip-full msmtp libssl-dev texinfo libglib2.0-dev
xmlto qemu-utils upx libelf-dev autoconf automake libtool autopoint
device-tree-compiler g++-multilib antlr3 gperf wget curl swig rsync
其余系统版本自行学习寻找答案
3.克隆源码
这一步后需要全局代理,防止一些源被屏蔽造成编译失败。
cd lede
./scripts/feeds update -a
./scripts/feeds install -a
feeds 这一步会安装扩展代码选项,就是进入make menuconfig 后的各种扩展包选项,如果没有安装你可能看不到。
4.生成默认配置文件
make defconfig
这个命令会检查所需的编译工具是否齐全,并生成默认的编译配置文件.config
5.配置编译选项
在终端输入:make menuconfig
进入后你可以利用键盘上的上下键选择你要编译的平台,比如X86平台,然后在选择一些必要的软件包。每次编辑后需要要Save保存,然后退出即可生成.config配置文件。
6.下载源码
配置完成后需要下载你选择的那些软件和必要的文件,OpenWrt仅有编译及配置指令,各种依赖的代码包在上游网站及代码仓库里,编译会下载大量源代码
make download V=s
这一步可能需要很长时间,而且必须全局代理,如果你代理够快可能需要半个小时到三个小时或者更长的时间。根据个人经验,墙内同学这一步最容易出总是,主要是梯子不稳造成的,会有很多文件不能正常下载到系统中,解决方案:一是更换稳定梯子确保网络正常重新下载,二是copy别人已经下载能正常编译使用的文件到Lede目录中,三是放弃自行编译改用云编译途径实现个性化固件编译。
7.编译系统
上面的步骤准备无误后进行编译,推荐第一次编译使用单线程,方便排错,如果你对配置很有信心也可以使用多线程。
make V=s -j1
-j1 这个参数就是限制线程的意思,如果使用多线程可以不加这个参数又系统自己判定你CPU核心数来完成。
上面这一步建议使用screen 来守护进程,有时候你可不小心断开终端丢失会话编译就会中断。安装screen:
sudo apt install screen
screen 使用很简单-S命令创建一个会话:
screen -S openwrt
按住键盘上 Ctrl +A +D 挂载到后台,查看后台的会话:
screen -ls
执行上面的命令你会看到我们挂载到后台的openwrt会话,切换到openwrt会话:
screen -r openwrt
如果你只有一个会话可以省略后面的openwrt,默认进入第一个。
编译后的固件存放路径:*/lede/bin/targets/x86/64
二次编译:
cd lede 进入LEDE目录
git pull
./scripts/feeds update -a
make defconfig make -j8 download make -j$(($(nproc) + 1)) V=s
如果需要重新配置:
rm -rf ./tmp(二)单独编译插件
Openwrt插件爬墙工具luci-app-ssr-plus.ipk编译三步曲:
进行编译目录lede后
1.摘取更新源码:git pull
2.编译内核:make target/linux/compile V=s
3.编译插件ssr-plus:make package/lean/luci-app-ssr-plus/compile V=s
编译后的ipk文件路径:*/lede/bin/packages/x86_64/base
附:新装Ubuntu需要安装的包
更新软件源
sudo apt-get update
安装opengl
sudo apt-get install build-essential
sudo apt-get install libgl1-mesa-dev
sudo apt-get install libglu1-mesa-dev
sudo apt-get install freeglut3-dev
安装vim
sudo apt-get install vim
安装minicom
sudo apt-get install minicom
安裝配置ssh
sudo apt-get install openssh-client
sudo apt-get install openssh-server
sudo /etc/init.d/ssh restart
安裝ncurses
sudo apt-get install ncurse*
安裝git
sudo apt-get install git
安裝makeinfo
sudo apt-get install texinfo
安裝bison
sudo apt-get install bison
sudo apt-get install flex
安装gimp图形处理软件
sudo apt-get install gimp
安装配置tftp服务
sudo apt-get install tftpd-hpa
sudo /etc/init.d/tftpd-hpa restart
安装c++库
sudo apt-get install lib32stdc++6
安装fastboot
sudo apt-get install android-tools-fastboot
安装配置nfs
sudo apt-get install nfs-kernel-server
sudo /etc/init.d/nfs-kernel-server start
安装ctags
sudo apt-get install ctags
安装wireshark
sudo apt-get install wireshark
安装readline(为了sqlite3能够使用方向键)
sudo apt-get -f install libreadline6-dev libreadline-dev
安装zlib
sudo apt-get install zlib1g-dev
sudo apt-get install libx32z1-dev
sudo apt-get install lib32z1
安装unrar
sudo apt-get install unrar
安装tree
sudo apt install tree
安装lftp
sudo apt-get install lftp
安装libmad
sudo apt-get install libmad0-dev
安装7z工具
sudo apt-get install p7zip
安装gstreamer
sudo apt-get install libgstreamer0.10-dev gstreamer-tools gstreamer0.10-tools gstreamer0.10-doc
sudo apt-get install gstreamer0.10-plugins-base gstreamer0.10-plugins-good