选择N1原因

  • 满足日常折腾。
  • 玩法多样可玩性高。
  • 价格及相关配置满足我对主路由的需求。

N1相关配置

  • CPU:Amgoic S905D 、64位、4核心、Cortex-A53 1.5GHz。
  • 内存:2G。
  • 闪存:8G。a
  • WIFI:2.4G/5G。
  • 蓝牙:BT4.1。
  • 视频解码:H.265解码、4K。
  • 接口:1个千兆有线网口、1个HDMI、2个USB2.0、1个电源接口。

N1刷机

  • 由于N1可玩性很高,各类固件玩法多样。多刷不坏,砖也可以救砖。所以只要保证N1可U盘启动即可。
  • 准备OpenWrt固件及U盘。(PS:避坑指南多准备几个比较老的U盘,N1识别U盘玄学问题。)
  • OpenWrt固件写入U盘。

N1刷入OpenWRT

我这里使用的F大神固件“openwrt\_s905d\_n1\_R22.6.16\_k5.15.47-flippy-73+o”前期使用“59+o”已升级。

  • U盘插入靠近网口的USB插口,通电。使用有线、、N1WiFi、HDMI等进入shell。

    cd /root
    ./inst-to-emmc.sh //实际观察root目录下sh脚本文件名称
  • 写入成功后断电,拔出U盘重新启动N1。(PS:关于温度62.0 °C未使用风扇,气温较高N1目前正常运行,我忽略了)

OpenWrt设置

组网规划: 光猫(桥接模式)+N1主路由+垃圾WiFi路由器

OpenWrt主路由设置

  • 使用默认密码登录OpenWrt。
  • 配置网络-接口-LAN口:

    • 基本设置:网关、DHCP。
    • 物理设置:取消桥接。
  • 新增网络-接口-WAN口:

    • 基本设置:协议PPPoE、宽带账户及密码。
    • 物理设置:绑定物理网卡。
    • 防火墙设置:新增WAN区域。

配置完成: WAN口获取到公网IP,LAN口下终端获取到子网IP。(PS:如遇WAN口无法正常拨号保证相关设置及运营商拨号限制外,可在OpenWrt shell下抓取物理网口数据包排查是否正常拨号,如路由器两个口不是LAN或者自适应可能会出现不广播数据包到N1物理网口。怎么抓包?后面在记录。)

OpenWrt应用及服务

F大神固件已自带丰富相关插件及内置Docker,可玩性极高。先暂时分享DDNS、SSL证书、全能推送、FileBrowser。然后在分享IPSec VPN、OpenConnect VPN、Docker、WebDav&Docker等。

DDNS

使用阿里云DDNS,需自行购买域名。

  • 阿里云AccessKey管理中授权DDNS权限,获取accessKeyId和accesssKeySecret。
  • OpenWrt DDNS服务中添加相关域名及ID与密钥。
  • 防火墙中设置端口映射,由于运营商限制。建议使用其他端口映射LAN口80端口,使用域名+端口即可公网访问。(PS:公网访问,密码强度需要高,因为OpenWrt这个版本不会统计Luci登录记录,无法自动针对频繁IP进行封堵)

部署SSL证书

  • 阿里云申请免费SSL证书,申请完成后下载证书。
  • 防火墙中设置端口映射到LAN口443端口。
  • 将.pen 后缀修改为.crt后缀,打开OpenWrt uHTTPd删除旧证书及密钥。上传阿里云证书及密钥。重启uhttpd服务。

    /etc/init.d/uhttpd restart
  • 使用https://域名端口即可公网HTTPS访问。

全能推送(PushBot)

  • 使用“pushplus”服务推送,关注“pushplus 推送加”公众号。
  • 根据“pushplus”用户手册,配置相关参数即可。

FileBrowser

官方简介:文件浏览器是一种创建你自己的云的软件,你可以在服务器上安装它,将它指向一个路径,然后通过一个漂亮的web界面访问你的文件。您有许多可用的特性!

项目地址:github.com/filebrowser/filebrowser

  • 下载ARM版的项目文件包,解压到OpenWrt。(PS:存储位置挂载外部存储最好,USB2.0速度满足日常文件需求)
  • 配置项目存放目录、数据存放目录,监听端口。

  • 开启FileBrowser服务,数据存放目录会生成“filebrowser.db”文件,后续部署SSL证书及登录验证需要编辑。

  • 访问LAN口IP+监听端口,初始用户密码admin登录。

部署SSL证书及登录验证

  • 准备证书及密钥上传至项目存放目录。
  • shell项目存放目录,输入下面命令。

    ./filebrowser -d /mnt/sda1/filebrowser_data/filebrowser.db config set --cert /mnt/sda1/filebrowser/证书文件名.cert --key /mnt/sda1/filebrowser/密钥文件名.key

  • OpenWrt防火墙设置端口映射使用https://域名端口即可公网HTTPS访问。

部署谷歌人机验证reCAPTCHA

  • 先在www.google.com/recaptcha/admin申请密钥

相关注意点:(某度参考)

  • 设置filebrowser。这里注意,根据filebrowser下的issues所报告的,你应该使用2019-05之后的版本,否则下列命令很可能出现无效的情况。
    然而,根据该issues所言,暂时也无法在config.json中设置reCAPTCHA。但config.json中似乎有与此相关的参数,如果删掉config.json中相关参数,即使命令设置了也依旧不会生效,因此推荐保留config.json中与reCaptcha有关的两个参数。
  • 修改数据库文件:

    ./filebrowser -d /mnt/sda1/filebrowser_data/filebrowser.db config set --recaptcha.key=网站密钥 --recaptcha.secret=通信密钥
  • 这里需要注意一点,配置文件中recaptcha设置项中的默认的host由于特殊性无法在国内使用,须在shell中再执行格式如下的命令,详情参见filebrowser下的issues
    ./filebrowser -d /mnt/sda1/filebrowser_data/filebrowser.db config set --recaptcha.host https://www.recaptcha.net
  • 访问web页面,出现人机验证部署成功,可以愉快玩耍了。

部署完成

  • 在主路由部署完成后第一时间部署的DDNS达到公网访问OpenWrt需要,满足自己捣鼓的欲望,捣鼓的结果就是OpenWrt被我搞崩好几次其中就有手残“rm -rf /”执行命令时在根目录,导致巨多错误。结果就是重刷!
  • 记得养成备份习惯!记得养成备份习,备份文件可使重刷后固件自带应用的配置全恢复!升级时也游刃有余!
  • 后期也会记录OpenWrt的其他应用!

openwrt