在QNAP NAS上创建用做科学上网旁路由的openwrt虚拟机

·

创建虚拟机

需要用到的东西

  1. openwrt官方img文件,切记下载x64版本,有牛逼人下载x86的导致虚拟机无法识别img。
  2. qemu-img

QNAP的虚拟化工作站无法直接使用openwrt官网下载的img格式,需要用qemu-img工具进行转换。命令如下:

qemu-img convert -p -f raw -O qcow2 openwrt-23.05.5-x86-64-generic-ext4-combined-efi.img openwrt.img
  1. 先用Virtualization Station创建一个无硬盘的虚拟机。
  2. 把qemu-img转换后的镜像openwrt.img复制到虚拟机目录。
  3. 在Virtualization Station中将openwrt.img添加进虚拟机,并设置好容量,比如10GB。如果无法在QNAP虚拟机界面修改磁盘空间,可以在添加img文件之前使用命令qemu-img resize openwrt.img 8G来调整img的空间大小(不是img文件的实际大小)。

给文件系统扩容

默认的文件系统大概只有104MB空间,这会导致很多应用无法正常使用。所以需要给文件系统扩容,磁盘容量已经在上一步虚拟机相关设置里完成扩容了,现在只需要在Free Space上创建文件系统。

先安装必要的工具

opkg update
#分区前可能需要使用parted -l命令修复一下
#如果不安装block-mount,openwrt是没有挂载选项的
opkg install fdisk cfdisk parted block-mount

使用fdisk和cfdisk将剩余空间分配并格式化为EXT4格式。

在openwrt网页端的System菜单下选择挂载点,并把新创建的文件系统挂载为“/”。而后openwrt会给出一系列命令,如下所示:

mkdir -p /tmp/introot
mkdir -p /tmp/extroot
mount --bind / /tmp/introot
mount /dev/vda3 /tmp/extroot  #将这行中的/dev/vda3改为实际的设备路径
tar -C /tmp/introot -cvf - . | tar -C /tmp/extroot -xf -
umount /tmp/introot
umount /tmp/extroot

执行上述命令并重新启动openwrt即可完成扩容。

关于网卡

X710的驱动是i40e,默认就有,SR-IOV的网卡可以直接识别到。

CX4网卡驱动为mlx5,默认未安装,SR-IOV的CX4网卡无法直接使用。这时候需要先用虚拟交换机的网卡让openwrt可以联网,然后执行下面的命令安装CX4网卡驱动:

opkg install kmod-mlx5-core

至此就可以使用CX4的SR-IOV了,也可以把虚拟交换机的网卡移除掉。

修改lan口IP

# 将 LAN 接口的协议设置为静态
uci set network.lan.proto='static'
# 设置新的 IP 地址
uci set network.lan.ipaddr='192.168.2.1'
# 设置子网掩码 (可选,若不设置则可能使用默认值)
uci set network.lan.netmask='255.255.255.0'
# 设置网关 (对于 LAN 接口通常不需要)
# uci set network.lan.gateway='192.168.2.254'
# 设置 DNS 服务器 (可选)
# uci set network.lan.dns='8.8.8.8 8.8.4.4'

# 提交更改
uci commit network

# 重启网络服务以应用更改
/etc/init.d/network restart

关于旁路由

只需要一个lan口即可,设置好IP,网关设置为出口路由IP,关闭DHCP和IPv6。千万别忘了修改/etc/resolv.conf中的DNS地址。

科学上网

安装openclash,过程非常简单,如果因为dnsmasq冲突导致openclash安装失败,可以删除系统自带的dnsmasq再安装openclash。

openclash的配置很简单,配置订阅即可。

客户端使用这个旁路由上网时只需要将网关和DNS都设置为旁路由lan口IP地址即可。

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注