为了提升fq速度,提高工作效率,我莫名其妙地了解到了软路由! ::aru:meditation::


什么是软路由?
相对于我们平常用的(硬)路由器,它是在一台小小的电脑上面安装一个路由系统来控制网络。
有意思,值得折腾!

本周最大的收获就是折腾了传说中的软路由,一路下来,总算是入了个门,记录下~


启蒙资料

看了好多文章和视频,以下的内容是对于我来说最有用的 ::aru:cheer::

软路由让你的FQ速度快十倍!
https://www.youtube.com/watch?v=WqSCkr8DuRI

2019科学上网FQ谁最快? 
https://www.youtube.com/watch?v=9UkVDoZpOYE

PS:我基本把上面这位洋葱哥的油管视频都刷完了!也就6篇(精华)

入门软路由?一篇就够了!真正给小白看的软路由入门指南
https://www.youtube.com/watch?v=iuvTfaid_zc

一、在J1900上安装lede

回到正题,我在最终实际操作的时候是参考了以下资料:

我买的J1900是低配版,¥659(2GB内存+8GB存储SSD),今天收到快递就开刷了。

虽然店家已经预装好系统,但是我还是想自己体验一番安装软路由系统 ::aru:cheer::


第一步:制作U盘启动

把U盘插在电脑上,打开老毛桃软件,默认即可,点击一键制作
制作U盘启动.png


第二步:准备安装固件&工具

我们需要下载下边两样东西并拖进U盘根目录下面:

1.一个固件:koolshare Lede

#下载链接
https://firmware.koolshare.cn/LEDE_X64_fw867/虚拟机转盘或PE下写盘专用/

#里面的
openwrt-koolshare-mod-v2.31-r10822-50aa0525d1-x86-64-uefi-gpt-squashfs.img.gz

下载完成后解压,随便重命名(一定要短名字)后拖进U盘。为什么重命名?方便后面进入命令行界面执行该文件时,少打字符 ::aru:knife:: )

2.一个写盘工具:physdiskwrite

我把固件包重命名为了kool
准备安装包.png


第三步:开始安装

给小电脑插上键盘,U盘和显示器

进入PE系统
1.J1900开机按键盘F7,进入BIOS启动选项;
2.选择U盘启动(就是你的U盘名字,不要选择那个带UEFI标识的),回车;

删除分区
3.打开PE系统下的DiskGenius程序,选中要安装系统的那块硬盘,右击直接删除分区即可;

进入命令行
4.Win+R调出运行命令窗口,输入CMD,回车进入命令行工具;
5.PE系统将U盘盘符识别为“U”,那就在命令行里面输入u:,回车,进入U盘目录;
6.输入physdiskwrite -u kool.img,回车;(前面将固件重命名为kool.img就在这儿用上了。)
7.接下来你就会看到界面提示Which disk to you want to write? <0..1>,选0;接下来还会提示一个警告信息,硬盘容量大于2GB之类的,下方会有提示About to overwrite the contents of disk 0 with new data. Proceed?,输入y,回车确认安装;

小插曲:我乱按选1,你猜发生什么事情?我把系统安装到了U盘上面...后面重启系统时发现把U盘拔了路由页面就访问不到了,原来如此那个尴尬 ::aru:shy::

设置启动项
8.等待进度条跑完后,就可以重启J1900主机了,先进入BOIS设置第一启动选项为硬盘启动,保存退出即可;
9.再次重启后便会进入LEDE软路由系统,好像卡住不动的时候,按下键盘enter就会出现root输入界面,这个时候你就可以把键盘和U盘都拔掉了!


二、配置lede

第一步:更改路由器的IP地址

为什么?因为一般家用光纤猫的IP是192.168.1.1,为避免软路由和光纤猫之间会冲突,那么,就给软路由改个IP地址吧。

操作:

  • 把网线一头接电脑,另一头网线插到J1900的lan2网口(貌似主板原因,默认lan2就是lan口了);
  • 手动修改电脑网络IP为同个网段比如192.168.1.100;浏览器访问192.168.1.1,登陆密码koolshare进入管理界面;
  • 依次点击:网络-接口-LAN,在一般设置下的基本设置,把IPv4地址改一个你想要的;
  • 比如我改成了192.168.100.1,点击保存(先不要保存应用),因为我们还要配置wan口和lan口。

第二步:配置wan口和lan口

配置wan口操作:

  • 依次点击:网络-接口-WAN-一般设置下-物理设置
  • 接口选项勾选以太网适配器:“eth3”,保存。

为什么选eth3?我自己的喜好,这个eth3对应地就是我这个软路由的lan4网口,它靠近电源比较好记它就是wan口;接着我们再把剩下的3个网口(lan1,lan2,lan3)设置为lan口即可。

如果你是在自家有宽带的话,需要操作:`WAN-一般设置下-基本设置,更改协议选项为PPPoE,填写宽带账号及密码`,保存。

如果你是在出租屋的话(总路由器设置了自动分配IP),需要操作:`WAN-一般设置下-基本设置,更改协议选项为DHCP客户端`,保存。

配置lan口操作:

  • 依次点击:网络-接口-LAN-一般设置下-物理设置
  • 接口选项勾选以太网适配器:“eth0”、“eth1“、”eth2“

OK点击保存并应用


第三步:测试联网

最终点击保存并应用后,管理界面应该是没有反应了的,因为你修改了管理IP地址,电脑与软路由不在同个网段下了。

为了能够连上网络,我们还需要以下操作:

  1. 把电脑的网络设置回自动获取IP的状态;
  2. 把网线一头插到刚配置了wan口的lan4网口,另一头接到房间里有网络的网口;
  3. 再找2条网线依次从软路由剩余的lan口,连上台式电脑,路由器等其他设备。

稍等几秒,应该就可以上网了。

不行的话,先重启电脑;不行?再重启路由器;还不行!?重启软路由!


三、更换为恩山Lean's OpenWrt

更新日期:2020-01-07

我的痛点:自从入坑koolshare的固件以来,使用了将近4个多月挺舒服的,但最后2个月总感觉挺多BUG的,包括但不限于:

  • 新增/删除fq服务器节点的操作次数多起来后,会莫名地保存/删除不了;
  • 日常fq时,几乎每天会不定时地、持续一小会儿地不稳定fq不了...

于是经过一番google探索后,今天我终于下定决心来重刷一个稳定的固件:恩山L大的OpenWrt!体验了一段时间,确实轻量、高效、稳定!

简单记录下我到底做了什么?

1.编译固件

嫌麻烦的话,你可以直接网上搜索下载别人已经编译好的openwrt固件。

我当然是选择了困难的道路,跟着L大Github的README来编译固件。

我是这么操作的:

  • 新开一个临时的谷歌云实例,选择Ubuntu 14 LTS x64,八核15GB,磁盘80GB;
  • 跟着REAADME操作,耗时大概半小时到一小时;
  • 编译好的固件在这个路径下:lede/bin/targets/,连上FTP拉回电脑。

2.优化操作

简单记录操作

1.制作PE启动盘,放入编译好的固件和写盘软件到该启动盘,重启进入软路由的PE环境下;

2.格式化软路由分区,优化操作:使用写盘软件DiskImage 写入新编译好的固件(比起之前用physdiskwrite通过敲命令行来写入固件,DiskImage可视化界面写入固件很方便!

3.重启J1900(显示器和键盘先不拔掉)优化操作:在shell界面直接修改IP地址,WAN口和LAN口们

vim /etc/config/network

#1.把默认的192.168.1.1修改为自己想要的地址
option ipaddr '192.168.12.12'

#2.定义LAN口为J1900上哪些网口(比如我设置了eth0 eth1 eth2,分别对应物理网口的lan1,lan2,lan3)
config interface 'lan'
        option ifname 'eth0 eth1 eth2'

#3.定义WAN口为J1900上哪个网口(比如我设置了eth3,对应物理网口的lan4)
config interface 'wan'
        option ifname 'eth3'

#esc:wq保存退出

#重启网络
/etc/init.d/network reload

4.用网线连接电脑和软路由,浏览器进入后台界面,设置下面内容。

四、配置OpenWrt

1.开启 Turbo ACC 网络加速

2.将发行版软件源

#发行版软件源
src/gz openwrt_core https://openwrt.proxy.ustclug.org/snapshots/targets/x86/64/packages
src/gz openwrt_base https://openwrt.proxy.ustclug.org/snapshots/packages/x86_64/base
src/gz openwrt_luci https://openwrt.proxy.ustclug.org/snapshots/packages/x86_64/luci
src/gz openwrt_packages https://openwrt.proxy.ustclug.org/snapshots/packages/x86_64/packages
src/gz openwrt_routing https://openwrt.proxy.ustclug.org/snapshots/packages/x86_64/routing

修改为国内源

#http://mirrors.ustc.edu.cn/lede/
#http://mirrors.ustc.edu.cn/lede/releases/19.07.1/targets/
#Released: Fri, 31 Jan 2020

src/gz openwrt_core http://mirrors.ustc.edu.cn/lede/releases/19.07.1/targets/x86/64/packages/
src/gz openwrt_base http://mirrors.ustc.edu.cn/lede/releases/19.07.1/packages/x86_64/base/
src/gz openwrt_luci http://mirrors.ustc.edu.cn/lede/releases/19.07.1/packages/x86_64/luci/
src/gz openwrt_packages http://mirrors.ustc.edu.cn/lede/releases/19.07.1/packages/x86_64/packages/
src/gz openwrt_routing http://mirrors.ustc.edu.cn/lede/releases/19.07.1/packages/x86_64/routing/

opkg update更新下

[email protected]:~# opkg update #输出如下
Downloading http://mirrors.ustc.edu.cn/lede/releases/19.07.1/targets/x86/64/packages//Packages.gz
Updated list of available packages in /var/opkg-lists/openwrt_core
Downloading http://mirrors.ustc.edu.cn/lede/releases/19.07.1/packages/x86_64/base//Packages.gz
Updated list of available packages in /var/opkg-lists/openwrt_base
Downloading http://mirrors.ustc.edu.cn/lede/releases/19.07.1/packages/x86_64/luci//Packages.gz
Updated list of available packages in /var/opkg-lists/openwrt_luci
Downloading http://mirrors.ustc.edu.cn/lede/releases/19.07.1/packages/x86_64/packages//Packages.gz
Updated list of available packages in /var/opkg-lists/openwrt_packages
Downloading http://mirrors.ustc.edu.cn/lede/releases/19.07.1/packages/x86_64/routing//Packages.gz
Updated list of available packages in /var/opkg-lists/openwrt_routing

3.设置ShadowSocksR Plus+

4.挂载SSD上剩余的磁盘空间以及SATA连接的另一块磁盘

  • 磁盘分区:fdisk
  • 格式化分区:mkfs.ext4
  • 挂载分区:mount

5.设置网络共享Samba

  • 在编辑模板里边加#注销invalid users = root,即#invalid users = root
  • 设置root密码,即smbpasswd -a root

6.opkg安装到非根目录下以避免根目录空间捉急

挂载SSD上剩余的磁盘空间到任意目录,比如/root

#对应修改sda5
mount /dev/sda5 /root
#并在系统启动项里添加该挂载命令,以防止重启

新建文件夹optware,专门放自定义下载的软件

mkdir /root/optware

修改opkg配置文件

vim /etc/opkg.conf

#默认如下
dest root /
dest ram /tmp
lists_dir ext /var/opkg-lists
option overlay_root /overlay

#关键字dest后跟着目的位置名称(可以随便起),然后就是文件系统位置
#例如:dest opt /root/optware
#最终文档如下
dest root /
dest ram /tmp
dest opt /root/optware
lists_dir ext /var/opkg-lists
option overlay_root /overlay

#保存退出

配置环境变量

vim /etc/profile

#在export PATH上边新增了一行,如下:
export LD_LIBRARY_PATH="/root/optware/usr/lib:/root/optware/lib"

#在export PATH里面新增了/root/optware/usr/bin和/root/optware/usr/sbin,如下:
export PATH="/usr/sbin:/usr/bin:/sbin:/bin:/root/optware/usr/bin:/root/optware/usr/sbin"

让修改后的profile立即生效:

source /etc/profile

最后就有空间可以安装了:

#格式
opkg install somepackage -d destination_name

#例如
opkg install vim -d opt

五、在OpenWrt上为所欲为

安装rclone

1.官方安装脚本运行不成功,于是乎就跟着手动教程来了:

#下载解压到家目录下
cd ~
curl -O https://downloads.rclone.org/rclone-current-linux-amd64.zip
unzip rclone-current-linux-amd64.zip

#将里边的rclone复制到/optware/usr/bin/
cd rclone-current-linux-amd64
cp -r rclone ~/optware/usr/bin/

#修改权限
chown root:root /optware/usr/bin/rclone
chmod 755 /optware//usr/bin/rclone

2.初次在openwrt上rclone挂载网盘时会提示错误:

Fatal error: failed to mount FUSE fs: fusermount: exec: "fusermount": executable file not found in $PATH

我们需要安装:fuse-utils,直接 opkg install fuse-utils -d opt 安装到我上面自定义的软件目录下。

捣鼓docker

我编译的固件已经预先安装了docker,现在来配置下:

1.修改docker存储位置为/root/docker(因为根目录空间捉急啊!)

#建立文件夹
mkdir /root/docker

#修改/etc/docker/daemon.json,自定义"data-root"后的路径即可
vim /etc/docker/daemon.json
"data-root": "/root/docker/"

#重启dockerd
/etc/init.d/dockerd restart

#看看储存地址是否已生效
docker info

2.方便打字,我将/etc/init.d/dockerd restart别名为了dr

alias dr=“/etc/init.d/dockerd restart”

3.折腾docker运行centos部署lnmp跑WordPress

3-1.新建container,随意命名如gmt,设置开机自启,映射到宿主机端口8080,选择官方centos:7.7.1908版本,后台运行shell防止没活动而导致该container自动关闭:

docker run --name gmt --restart always -p 8080:80 -dit centos:7.7.1908 /bin/bash

3-2.在该镜像上安装lnmp一件安装包:

#进入镜像的命令行
docker exec -it gmt /bin/bash

#更新下系统
yum update -y

#安装下wget
yum install wget -y

#安装lnmp1.6
wget http://soft.vpser.net/lnmp/lnmp1.6.tar.gz -cO lnmp1.6.tar.gz && tar zxf lnmp1.6.tar.gz && cd lnmp1.6 && ./install.sh lnmp

#大概耗时77分钟,看到以下输入后`ctrl c`退出:
Install lnmp takes 77 minutes.
Install lnmp V1.6 completed! enjoy it.

试试在宿主机浏览器访问:http://路由器IP:8080应该可以看到欢迎界面了!

3-3.再安装WordPress,先访问:http://路由器IP:8080/phpmyadmin去新建个数据库,排序规则选择 utf8_general_ci;这里不新建虚拟机,直接修改脚本的默认站点目录 default 即可(本地测试站点,怎么方便怎么来啊~)

#进入default目录,删除无关的index.html文件
cd /home/wwwroot/default
rm -rf index.html

#下载WordPress
wget https://wordpress.org/latest.zip

#可能提示ERROR 429: Too Many Requests,只能迅雷下载后用宿主机的shell用docker cp上传到这里了(或者直接在共享文件夹里找到该镜像目录拖进来)
docker container list #查看该镜像的id
docker cp ~/latest.zip 镜像的id:/home/wwwroot/default #从家目录把该压缩包复制进镜像

#解压,把WordPress所有文件都移动到default根目录下
unzip latest.zip
mv ./wordpress/* ./

#设置下default文件夹权限,以防止安装插件主题等出问题
chmod -R 777 /home/wwwroot/default

最后在宿主机浏览器访问:http://路由器IP:8080出现熟悉的wp安装页面,开始装吧~


PS:在捣鼓上边操作之前,我还参考过这里用不同container组网,如下汇总下:

#安装并运行mysql、phpmyadmin和WordPress

docker run --name mysql -e MYSQL_ROOT_PASSWORD=root -d -p 3306:3306  mysql:5.7

docker run --name phpmyadmin -d -e PMA_ARBITRARY=1 -p 8081:80 phpmyadmin/phpmyadmin

docker run --name wordpress -p 8080:80 -d wordpress:latest

#组网
docker network create wordpress 
docker network connect wordpress mysql
docker network connect wordpress phpmyadmin
docker network connect wordpress wordpress

后面没用这种方式,总发现网页反应有点慢,可能我个人原因啊~

其他配置,有空再更新咯。

Last modification:July 12th, 2020 at 10:52 am
如果觉得我的文章对你有用,请随意赞赏