软路由 OpenWRT

TODO

  1. 蓝牙网络连接,什么作用?删掉或禁用有影响吗?
  2. 如何自动切换网关
  3. 将 共享目录从台式机移到笔记本中,使用网线已经没有带宽限制了。

装机

Windows预先安装环境(英语:Microsoft Windows Preinstallation Environment),简称 Windows PE 或 WinPE,是 Microsoft Windows 的轻量版本。

关于装机的知识,通过 微PE优盘使用说明书 可以学习,虽然我们并不购买他家的优盘。以下摘录部分笔记。

搞清楚 UEFI 和 Legacy (俗称 BIOS )启动方式区别很重要:

  • 当您的机器支持 UEFI 的话(新机器一般同时支持 Legacy 和 UEFI ),在这个启动项中一般会出现两个 U 盘的选项,一个是 UEFI 开头的,另一个是不带 UEFI 开头的或叫 Legacy 的:
  • 当您的机器(老机器)只支持 Legacy 时,在这个主板的启动项中就只会出现一个 U 盘的选项:

一些新机器默认了只开通了 UEFI 启动,如果需要打开 Legacy 启动,需要进 BIOS 设置中关闭 SecureBoot。

硬盘分区表有两种类型:

  • GPT 新型分区表类型,需对应 UEFI 启动,支持快速启动,支持 2TB 以上硬盘
  • MBR 传统分区表类型,需对应 Legacy 启动,旧机器上比较常见

原版的 Windows7 比较老,原生连 USB3.0 驱动都没有,只能装到比较老的机器上。在新机器上要么蓝屏,要么鼠标键盘动不了。

优盘量产的概念有二:恢复和分区。后者可以在淘宝店的介绍 U 盘 PE 的写入方式 中了解。

虚拟机

虚拟机在宿主机上模拟的两张 VMnet1 和 VMnet8 分别是什么作用?参考 虚拟机vmnet0、vmnet1和vmnet8的区别

  • vmnet1,Host-Only 网络模式下虚拟机的网关
  • vmnet8,NAT 方式下虚拟机的网关
  • 桥接模式,和这两张网卡无关

开机后自动启动虚拟机

网上很容易就能查到启动虚拟机的脚本,和一些开机自启的设定。分为计划任务和组策略两种方式。

需要注意的是,好多帖子里并非开机自启动,而是要求用户登录的“登录后自动启动”。比如 Windows 设置 VMware workstation 虚拟机开机启动

目前是通过计划任务实现的:开机启动虚拟机计划任务,以及每周固定时间的关机任务,都不要使用默认的“只有在用户登录时运行”选项,要切换到“不管用户是否登录都要运行+不存储密码”。

虽然 Windows中实现不依赖账户登录的开机启动程序 提到要使用 SYSYTEM 用户,但我实际操作后并不需要。

组策略分为计算机配置和用户配置:前者包含脚本(启动/关机);后者包含脚本(登录/注销)。我自己尝试组策略-计算机配置(而非用户配置),也不行的。计划任务能实现,也就没有再深究。使用组策略可能以下问题:

软路由

先区分两类网口:

LAN,全称Local Area Network,中文名叫做局域网。WAN,全称Wide Area Network,中文名叫做广域网。

OpenWrt 介绍

OpenWrt 分支:

  • lede, OpenWrt 另有一个复刻分支项目,名为 LEDE,两者于 2018年1月合并,合并后的项目使用 OpenWrt 的名字、LEDE 的源代码。
  • Lean 的 Openwrt 源码,另立门户
  • lienol 的 openwrt,群雄乱起。PassWall和Clash怎么安装,由此问题了解到 passwall 是 lienol 项目的。但大神因为政策已经从源码中删掉科学上网插件了
  • eSir 的精品小包和高大全,基于 Lean 的源码编译

在虚拟机中安装 openwrt 参考 在VMWare虚拟机下创建Openwrt LEDE软路由系统

帖子里端口给了个 8080 是错的,默认使用的就是 http 协议的 80 端口。

kookshare 网站 是提供了虚拟机 vmdk 文件的。

openwrt 安装完毕之后,更新不了酷软中心怎么做?如何科学上网呢?

  • 按照网上的说明自定义了 DNS 还是无法更新。非关键步骤,暂缓处理 忘了设置网关
  • 科学上网的插件从酷软中心移除,只能 屏蔽关键词 进行 离线安装,这个插件识别 v2ray 合法配置时报错,增删改配置存在重大 BUG,也不是大佬们常用插件,放弃

由于软路由一般不带无线 WIFI,我们得自己连接无线路由器或无线 AP,设置为 AP 模式或静态地址,路由器 AP 模式只做无线转发,我们就能让他变成无线软路由啦!

热门科学上网插件 ssr+ 和 passwall 不是 koolshare 上固件配套的,分别是国内两位 L 大神在各自分支中支持的。

Openwrt 开发与 Luci 介绍

https://www.jianshu.com/p/bfb93c4e8dc9

Luci 是 Lua ConfigurationInterface的简称,意在 OpenWrt 整个系统的配置集中化。

旁路由和单臂路由

旧笔记本可以做软路由吗?可以。先考虑做旁路由(网关服务器)而非主路由。

  • 网卡数量的限制,
  • 百兆无线网口的限制。
  • 有线网口是千兆的
  • 两个 usb3.0 数据口

手机呢?

不能用无线网卡:网上搜到的文字教程或视频教程,我按部就班操作之后,配置宿主机或者手机之后就是无法上网。后来发现相同操作与配置,换用有线网卡之后没问题。

作为主路由的两种方法:旧笔记本改装软路由作为家里主路由

  • 单臂路由,单一网口同时作为 WAN 口和 LAN 口
  • 购买 usb 转千兆网口的线

定时开机

因为 x240 系统是 win10,从稳定性和能耗两个角度希望能够定时关机、定时启动。比如每晚十一点关机,每天早上七点开机

定时关机使用系统定时任务能够完成,操作并不复杂。但定时开机就需要考虑外部操作了。

  • 使用手机的 Tasker app 做局域网唤醒。多引入一套设备,不作为优先选项。
  • 路由器的局域网唤醒。手动唤醒我之前就使用过,在后台管理 web 页面傻瓜式操作

但如何自动化呢?参考了好多篇帖子,踩了两个大坑之后总算补全了技术路线:其实就是三步走

  1. 远程 SSH 登录进去
  2. 局域网唤醒的命令行 ether-wake
  3. 增加定时任务 cru,还得自行启动 crond 服务
  4. 重启路由后定时任务依然有效

首先要 SSH 进入路由器系统,需要先在“系统管理-系统设置-服务-Enable SSH” 中开启登录,用户名和密码就是 web 控制台的用户名和密码。

参考 写个脚本让路由器网络更可靠 学到日志:

1
2
3
# 打印日志,可以在路由器 web 控制台“系统记录”中查看
logger -c "log message"
/usr/bin/logger -c "log message"

定时自动唤醒,这篇帖子的内容在我的路由器 AC1200G 上不适用,WOL 的指令在 /usr/bin/ether-wake 而非 /usr/sbin/ether-wake 中。创建定时任务,不是常用的 crontab 命令,而是 cru 指令,它并不是 crontab 的别名。

增加定时任务之后,任务不执行。是因为 crond 服务默认并未启动 ps | grep crond,需要手动执行。

以下定时任务执行完毕后,能够成功 wol 关机的台式机。但现在重启路由后,定时任务丢失

1
2
3
4
5
6
7
8
9
10
11
12
13
14
#!/bin/sh
touch /tmp/home/root/created_by_jffs.autorun_.txt
logger 'run jffs.autorun script, by x1502.'
#cru a main "* * * * * /usr/bin/logger 'wol main of x1502' && /usr/bin/ether-wake -i br0 2C:F0:5D:0A:CE:B4"
cru a x240 "10 7 * * * /usr/bin/logger 'wol x240 of x1502' && /usr/bin/ether-wake -i br0 28:D2:44:E9:0D:91"
# start only one crond
ps | grep crond | grep -v grep
if [ $? -ne 0 ]
then
logger "start crond by x1502"
crond
else
logger "crond process is running. do nothing."
fi

单独验证每条指令的有效性,再拼装:

  1. cru 指令的 “min hour day month week command” 如果 使用了两个空格间隔就会失效,ε=(´ο`*)))唉,command 不要使用 #tag# 等特殊字符
  2. 外接移动硬盘触发 script_usbmount= 脚本时,如果移动硬盘分区 n 个,也就会挂载 n 次,启动 n 个 crond 进程。所以需要判断 crond 进程是否存在

路由器启动后自动执行脚本

翻阅了好多帖子,都是中高端路由器或梅林系统,技术路线也都是 jffs 分区,启用 jffs2_exec= 配置。但我屡次尝试就是不执行,难免怀疑是不是低端路由器不支持(硬件架构差异或阉割软件):

付出是有回报的,我也是幸运的。jffs2_exec= 配置项已经不再支持(被阉割了),改用挂载 usb 设备触发脚本执行:

私有云 NAS

谷歌相册即将停止无限上传高质量画质的服务,考虑 NAS

备选的方案有三个,每个都有亮点和痛点,似乎只能逐一尝试:

  • 黑群晖,传说插件完善,但 app 的评分都不及格,似乎只能亲自下场试试了
  • Windows 阵营,吃资源,台式机还行,x240 的笔记本就有点捉急了。Windows server 2019 启用 SMB 分析了好多,但落地也就只用了 SMB,作为媒体中心只读够用,但照片同步、外网访问怎么办呢
  • OMV,OpenMediaVault 用作家用 NAS 和 HTPC 有哪些插件呢,也是的亲自下场一试

针对相册功能的讨论:自建 NAS 相册管理软件的选择

Kodi 刮削器最近(2021年1月22日)都不能用了,需要“绕过局域网地址”翻墙才能够正常使用,如果还是异常就重启 kodi 再次“扫描新的内容”。

科学上网

两个目标,稳定和简单。链路稳定,配置稳定,速度稳定;操作简单,家人使用时不晓得它的存在最好。

YouTubekids 的画质

youtube 720p 视频都无法流程播放

网关

作用

为什么要将上网设备的 DNS 改成软路由的 ip 地址呢?

科学上网速度

vultr 是不是废了?为什么我的下载速度只有几百 K

谷歌云

双系统

解决双系统 Windows 10 更新后进入 grub rescue 模式

Debian 忘记密码重置

Win10 访问局域网中计算机共享文件要求输入网络凭据,但安卓手机等就不用用户名、密码,能够直接访问文件。