前言

原本家里日用的是一个华硕的 RT-AC86U 路由器(小一千的路由器竟然不支持链路聚合,迷惑鸭.),正常情况下应该都够用了,但是可能家里联网的智能设备过多,总是会让高负载路由器重启.
安装了梅林固件和内存扩展插件并添加了散热扇也不太行,故而准备现在 NAS 上搞一个软路由,后续有机会再上独立机器的软路由.(NAS 上搞也有烦人的地方,一更新固件就容易全体崩溃)

一、资源准备

  • 威联通 NAS 一台(至少有两个网口才行,本文使用的型号是 453B-mini)
  • Koolshare 版 OpenWrt 固件: koolshare Lede X64. (由于是虚拟机安装,所以可以直接使用虚拟机转盘或 PE 下写盘专用目录下的openwrt-koolshare-mod-v2.36-r14941-67f6fa0a30-x86-64-generic-squashfs-combined.vmdk)

二、安装过程

2.1 NAS 软硬件配置

由于要安装软路由并接管所有网络流量,所以首先要对 NAS 的网络端口进行调整.

  • 打开网络与虚拟交换机,切换到高级模式.在网络设置选项卡中进入虚拟交换机页面.(建议操作过程通过网线直连 NAS,否则容易出现网络无法访问的问题)

  • 新增虚拟交换机,选择高级模式,绑定实体网络适配器Adapter 1,下一步选择动态IP,随后一路下一步到应用.(可以将虚拟机适配器名称改为Virtual Switch wan)

  • 新增虚拟交换机,选择高级模式,绑定实体网络适配器Adapter 2,下一步选择固定IP,下一步选择使用以下的DNS服务器地址,随后一路下一步到应用.(可以将虚拟机适配器名称改为Virtual Switch lan)

    • 固定 IP 地址设置为192.168.xxx.yyy.(xxx 和 yyy 可以自行在 2-255 范围内选择,192.168.1.yyy一般情况下是光猫所属网段,为避免冲突不进行选择,192.168.xxx.1将留给后续的 OpenWrt 软路由作为网关地址进行保留,后文将使用192.168.50.2作为 NAS 的 IP 地址,192.168.50.1作为 OpenWrt 的地址)
    • 子网掩码使用默认的255.255.255.0(/24).
    • 默认网关填写192.168.50.1.
    • 主要 DNS 服务器与默认网关相同192.168.50.1.
    • 次要 DNS 服务器可以使用各大公司的公共 DNS 服务,这里选择的是阿里云旗下的233.5.5.5.(其他 DNS 服务商可参考已知 DNS 提供商列表)
  • 在设置完成后与 NAS 的连接可能会断开,这里需要用网线连接电脑网口和 NAS 的Adapter 2网口,并在电脑设置中手动设置 IP 地址,子网掩码,网关,DNS 服务器,IP 地址设置为192.168.50.200,其他配置与前文相同.

  • 网络与虚拟交换机网络适配器选项卡中,将Virtual Switch lan设置为默认网关.

随后对虚拟机进行安装和配置

  • 首先在 QNAP 的官方App Center中选择安装Virtualization Station 虚拟机工作站.

  • 通过File Station 文件总管上传提前准备好的 vmdk 文件到系统任意目录.

  • 打开Virtualization Station 虚拟机工作站,点击右侧导入按钮并选择映像转换器对之前上传到 vmdk 文件进行转换.

  • 通过Virtualization Station 虚拟机工作站建立按钮创建虚拟机

    • 虚拟机名称: LEDE(任选名称即可)
    • 描述 (非必要): 留空即可
    • 操作系统: Generic
    • 版本: Generic
    • 启动固件: 原有BIOS,若在前文中下载了-efi结尾的固件,这里需要选择UEFI.
    • CPU 核心数: 2
    • 内存: 2G (根据 NAS 的内存情况进行选择即可,一般情况下 1G 就已经足够默认的 OpenWrt 系统使用,个人将 NAS 内存上到了 16G,所以 2G 在我这里也不多)
    • 光盘映像文件: 不选择
    • 磁盘位置: 使用现有映像,文件地址选择之前转换后的文件目录.
    • 网络: 选择连接至Virtual Switch wan
    • 其他:启动 VNC 控制,自行设置密码.
  • 创建完成后不要直接启动,点击左侧虚拟机列表,选择之前创建的LEDE虚拟机

    • 设定-一般设定中,将 CPU 型号选为Passthrough,点击套用.
    • 设定-网络中,选择新增装置,添加Virtual Switch lan,点击套用.
    • 设定-储存空间中,将界面修改为SATA,点击套用.
    • 设定-其他中,将自动启动改为延迟启动 120s,点击套用.(这样可以错开 NAS 重启时的资源占用高峰)
  • 启动虚拟机,在讯息页面点击中间的虚拟机界面,进入 VNC 开始 OpenWrt 的配置.

2.2 OpenWrt 命令行配置

  • 在 OpenWrt 系统启动后,首先要进行网络地址的设置,通过vi /etc/config/network修改局域网地址信息,重点是option ipaddr.

    1
    2
    3
    4
    5
    6
    7
    config interface 'lan'
    option type 'bridge'
    option ifname 'eth1'
    option proto 'static'
    option ipaddr '192.168.50.1'
    option netmask '255.255.255.0'
    option ip6assign '60'
  • 由于 LEDE 默认用户为root,且屏蔽了登录页面用户名输入框,导致无法修改用户名后无法登录系统,造成一定的安全隐患,所以此处对 LUCI 页面进行修改,使登录页面支持显示用户名,并修改登录用户名.

    1
    2
    3
    4
    5
    6
    7
    8
    9
    vi /usr/lib/lua/luci/view/sysauth.htm
    将22-27行对username的注释解除掉

    vi /etc/passwd
    root:x:0:0:root:/root:/bin/ash修改为
    username:x:0:0:root:/root:/bin/ash

    vi /etc/shadow
    root:xxxxxx:0:0:99999:7:::修改为username:xxxxxx:0:0:99999:7:::

2.3 OpenWrt 网页配置

在命令行进行配置后,通过浏览器输入http://192.168.50.1 即可访问 OpenWrt 的管理后台.

  • 网络-接口中找到wan接口,点击编辑,将协议修改为PPPoE,输入宽带运营商提供的用户名和密码,即可连接互联网.
  • 网络-接口中找到wan6接口,点击编辑,将协议修改为DHCPv6客户端,请求 IPV6 地址修改为try,即可在运营商支持的情况下使用 IPv6.

2.4 插件推荐

  • 在有公网 IP 或获取到 IPv6 地址的情况下,推荐使用酷软的Let's EncryptKoolddns插件,构建公网域名访问.也可以使用酷软提供的DDNSTO插件进行内网穿透访问.

三、参考文档