Truenas iKuai主路由 OpenWrt旁路由搭建
本文最后更新于:2022年6月4日 凌晨
由于我家有上百个智能设备,并且我自己对网络的要求很高,之前买了一些路由器单独组网,在路由器上直接跑一些服务总是会不太稳定的问题存在,因此借助上次升级NAS配置的机会,直接将路由搬到了TrueNas上,目前已经跑了有一个月左右,整体延时稳定性都好非常多,是一次不错的改造。
本文主要是在TrueNas Scale上安装iKuai作为主路由做整体路由管理,安装OpenWrt作为旁路由负责科学上网做一个介绍。
I. 前言
确保至少有2个网口,一个wan输入,一个lan输出。
主路由iKuai搭建
1. 下载ikuai
这里我下载64位的下载img: https://www.ikuai8.com/component/download
下载后,通过smb或者scp之类的拷贝到nas上,这里我拷贝到了/tools/system-img/
下:
2. 加载ikuai的iso到对应的ZVOL上
创建用于装载ikuai的zvol数据集,创建 4G,这里我们创建的zvol在data下的router:
然后通过ssh到nas上,然后进入ikuai的img所在目录,这里我们在/mnt/ext/tools/system-img/
,然后执行以下指令,以下指令就是直接将对应img写入到我们创建的数据集中:
1 |
|
3. 配置Nas中的网络走桥接
这里可以直接参考我的配置,实际情况根据实际情况调整就好,原则就是让所有网络走了桥接再走物理接口连接网络:
创建一个br0,绑定到当前可以连接外网的接口:
4. 在Nas上创建ikuai虚拟机
以下是我的配置,可以作为参考:
启动方法需要使用Legacy BIOS
:
CPU模式我是使用Host passthrough这种模式也会比较开销CPU,但是给到的性能也是最高的,你根据你实际需要就行:
磁盘需要选用VirtIO
模式,数据集选用刚刚创建的那个,这里我们是data/router
:
网络也是用VirtIO
模式,附加到刚创建的br0
上:
其他基本默认配置就行。
5. 配置ikuai使内网可访问
启动ikuai这个虚拟机,运行后进入期VNC界面,配置其IP以及网关,使其可以内网访问,这里当时我网关IP是: 10.0.0.2,我配置我ikuai的ip是: 10.0.0.1,具体大家根据实际情况配置即可:
具体大家根据实际情况操作就好,这里比较简单,比如配置LAN的地址,就输入2,然后根据实际提示配置就好。到这里就可以内网访问ikuai了。
6. 将nas上其他的网口映射到ikuai上
直接在ikuai的虚拟机里,添加PCI设备,这里我的另一个网卡接口的PCI名是: pci_0000_05_00_0
7. 在ikuai上绑定新添加的直通的网卡接口
可以直接直通绑定到lan1上:
参考我lan1的配置:
我的wan口是绑定了之前那个桥接的网口
然后直接将光猫桥接到这个wan口上,进行PPPoE拨号登录:
至此所有网络都可以从ikuai输出了,你可以将lan口连接到你的无线路由器上。
旁路由OpenWrt搭建
1. 下载与装载k9 img
旁路由主要是为了科学上网,当然功能也可以很多,这里我推荐直接使用k9的方案(当然qs也可以),k9可以直接在这里下载: https://supes.top/?version=21.02&target=x86%2F64&id=generic
下载后拷贝到nas上,然后创建用于该openwrt的数据集,通过dd
装载到对应数据集上,操作方法与上面主路由类似这里不重复赘述。
2. 创建openwrt虚拟机
启动方法需要选用UEFI:
另外这里CPU采用你想要的方式就好,我还是选用最高性能开销的方案:
磁盘一定记得使用AHCI
然后绑定你刚创建的数据集,这里我是/data/k9
:
网络使用VirtIO
还是绑定我们的桥接口,这里我是上面创建的那个br0
:
其他默认就好,然后启动。
3. 配置openwrt内网可访问
启动后,通过vnc访问到op的命令界面,然后修改/etc/config/network
这里我配置我的openwrt的ip是10.0.0.169
,配置好网关与dns。
至此openwrt就可以在内网访问了。
4. 让openwrt成为旁路由
这里我的openwrt的ip是:
10.0.0.169
在ikuai中,将网关与dns都配置为openwrt的ip:
在nas中,将所有的网关与dns都配置为openwrt的ip:
在nas的k8s将的网关配置为openwrt的ip:
另外需要参考这里确保k8s中的服务与应用可以正常访问外网。
最后的最后需要特别注意的是,如果需要外网访问nas服务需要留意做两层转发,一层是从ikuai转发到openwrt,另一层是从openwrt转发到nas中的服务,具体可以参考这个案例。
5. 科学上网,完美8k低延时墙外访问
最后还是简单说下,k9自带的bypass已经很完美了,但是我认为目前国内最佳体验的翻墙方案依然是kcptun,默认的bypass是不支持kcptun的,需要安装对应软件包:
安装后就默认有了,参考其中一个配置(需要留意kcptun参数的格式是: --key=xxx --crypt=xx
类似这样):
最后翻墙,整个服务将会运行非常稳定,这里的kcptun的服务端搭建可以参照这篇文章,我目前依然是采用这样的配置,依然稳定,有任何问题欢迎评论:
全局情况
最后简单画了下当前的网络情况,虽然还有一些优化的想法,不过目前情况也还算稳定可靠,大家可以做个简单的参考。