在Proxmox VE中安装Openwrt作为软路由
最近一直种草软路由,从j1900看到i5 7200u,无奈囊中羞涩,最便宜的也得500以上,于是打算把大学时用的旧笔记本利用起来,i7 4702mq的处理器即使放到今天也不算过时(感谢牙膏厂)。但如果只是安装一个Openwrt的话,有点太浪费硬件性能,于是打算在Proxmox VE中安装Opnewrt虚拟机。
安装Proxmox VE
进入PVE下载页面,下载最新的iso镜像
使用ultraISO将ISO写入U盘,注意写入方式需要选择RAW,Linux用户可以直接使用dd命令
将U盘插入电脑,并从U盘引导系统
选择安装到哪个硬盘,注意硬盘数据会被全部清除
设置PVE的后台管理IP地址,这是一个静态地址,最好选择一个不容易冲突的,比如我设置的192.168.1.100
安装完成后,使用另一台设备接入相同的网络,打开https://192.168.1.100:8006,进入PVE的后台管理界面
安装Openwrt
首次打开时,将在左侧看到一个pve节点以及local和local-lvm这两个存储设备,其中
- local:存储虚拟机之外的数据,以文件形式存在于pve的文件系统之中,如iso镜像
- local-lvm:存储虚拟机磁盘文件,当为虚拟机分配磁盘后,相应的磁盘文件存储于此
设置桥接
在安装之前,我们首先要设置网卡桥接,因为虚拟机将会使用物理网口对应的网桥作为虚拟网口,从而实现网卡的虚拟化。
选择pve节点,再选择System->Network,检查是否每个网卡都有对应的网桥
如果有未设置桥接的网卡,需要手动创建桥接,选择Create->Linux Bridge,在Bridge ports中填入对应的物理网卡的名字,如enp3s0
创建虚拟机
由于Openwrt固件通常以image镜像的形式存在,因此并不能直接启动,我们首先要进入到一个LiveCD当中,然后把Openwrt的镜像写入到虚拟磁盘,LiveCD可以选择WinPE或者Linux,这里我选择Ubuntu Desktop。
上传LiveCD,选择local->Content,点击Upload,选择镜像文件,并上传
点击Create VM,在第二步选择LiveCD的镜像,其它步骤按提示进行
创建完成后,在左侧的pve节点下即可看到对应的虚拟机,点击Start启动虚拟机,选择左侧的Console,即可进入LiveCD
进入LiveCD后下载所需的Openwrt固件,使用dd命令写入虚拟磁盘即可,例如
1
dd if=openwrt.img of=/dev/vda bs=4MB && sync
重启虚拟机,即可进入Openwrt
配置Openwrt
我们首先来看一下网络拓扑结构,方便下一步的设置
为了方便使用软路由,要求至少有两张物理网卡,这里我使用一个USB网卡作为第二张网卡。
在Console中修改
/etc/config/network
,将192.168.1.1修改为192.168.50.1,避免与光猫的IP冲突为Openwrt的虚拟机配置两个网卡,因为Openwrt默认会将第一张网卡作为lan口,第二张网卡作为wan口,所以根据图示,需要将第一张网卡连接到bridge1,第二张网卡连接到bridge0,这样Openwrt的wan口就可以从光猫获取IP,而所有连接到bridge1,即Openwrt的lan口的设备,都会从Openwrt获取IP
将安装PVE的电脑的eth1,即Openwrt的lan口连接路由器的wan口,另一台电脑连接路由器,此时即可通过192.168.50.1这个IP地址进入Openwrt的后台
后续操作
PVE不仅可以运行Openwrt,比如我还安装了一个ubuntu server作为开发服务器,通过桥接bridge1从而与Openwrt的lan口连接,甚至还可以再安装一个windows作为下载机。
开发的时候需要很多硬盘空间,可以将物理硬盘直接映射进虚拟机,通过下面这个命令实现
1 | qm set VM-ID --virtio0 /dev/disk/by-id/DISK-ID |
其中VM-ID是虚拟机的编号,比如100;**–virtio**是映射类型,0是一个编号;最后一个参数是待映射的磁盘的ID。