简介
**OpenWrt **是适用于嵌入式设备的一个 Linux 发行版。
相对原厂固件而言,OpenWr t不是一个单一、静态的固件,而是提供了一个可添加软件包的可写的文件系统。这使用户可以自由的选择应用程序和配置,而不必受设备提供商的限制,并且可以使用一些适合某方面应用的软件包来定制你的设备。对于开发者来说,OpenWrt 是一个框架,开发者不必麻烦地构建整个固件就能得到想要的应用程序;对于用户来说,这意味着完全定制的能力,与以往不同的方式使用设备,OPKG 包含超过3500个软件。 默认使用 LuCI 作为 web 交互界面。
安装
因为拨号上网和 dhcp 服务由Openwrt接管,所以硬路由被我改成了中继模式。我选择的Openwrt固件版本是官方的 23.05RC3(不建议各种花里胡哨的其他编译版本)。
先上传要安装的固件,因为是 CPU 为 Intel 的软路由,所以固件架构选择 X86_64 ,版本通常选择 combined-efi ,格式则按需选择,如果你只装一个固件不需要额外扩容去安装各种插件,那么选择 squash,反之选择 ext4,我选的就是 ext4。
将镜像导入lvm:
qm importdisk 100 /var/lib/vz/template/iso/openwrt2305.img local-lvm #这里的 100 对应的是上图中openwrt的VM ID
导入lvm后硬件会得到一块未编辑的硬盘,双击,在总线处选择SCSI,添加,紧接着选择磁盘操作为该硬盘增加需要的容量,我这里添加了1G。
直通4个网口,添加一个 vmbr1 网桥,选项处调整引导顺序,将硬盘打勾上挪第一位,开启虚拟机。
扩容
进入 Openwrt 的控制台执行以下命令:
# 按顺序安装
opkg update
opkg install block-mount e2fsprogs
opkg install fdisk blkid vim
# 查看安装时挂载的硬盘(刚刚添加的1G容量)
fdisk -l
# 为挂载的硬盘分区
fdisk /dev/sda # 这里的 sda 注意看上一步骤的信息
# 按顺序按键
n # 新建分区,期间回车配置默认
p # 查看分区信息
w # 写入分区
# //格式化分区
mkfs.ext4 /dev/sda3 # 这里的 sda3 在查看分区信息时确定,记住格式化后回显的UUID
# 如果忘记UUID用这个命令重新查看
blkid
# 重启
reboot
# 配置 sftab 按顺序执行
uci add fstab mount
uci set fstab.@mount[-1].uuid=UUID #UUID为刚才格式化的分区的UUID
uci set fstab.@mount[-1].options=rw,sync,noatime
uci set fstab.@mount[-1].fstype=ext4
uci set fstab.@mount[-1].enabled_fsck=1
uci set fstab.@mount[-1].enabled=1
uci set fstab.@mount[-1].target=/
uci set fstab.@mount[-1].device=/dev/sda3 # sda3 如上
uci commit fstab
# 将根目录复制到新的分区下,sda3 如上
mkdir /mnt/sda3
mount /dev/sda3 /mnt/sda3
mkdir -p /tmp/cproot
mount --bind / /tmp/cproot
tar -C /tmp/cproot -cvf - . | tar -C /mnt/sda3 -xf -
umount /tmp/cproot
umount /mnt/sda3
# 启用引导
/etc/init.d/fstab enable
/etc/init.d/fstab start
# 重启
reboot
配置
进入 Openwrt 的控制台执行以下命令:
# 配置网卡
vi /etc/config/network
config interface 'loopback'
option device 'lo'
option proto 'static'
option ipaddr '127.0.0.1'
option netmask '255.0.0.0'
config globals 'globals'
option ula_prefix 'fd86:5269:b1fb::/48'
config device
option name 'br-lan'
option type 'bridge'
# 绑定除了作为 WAN 口的 eth1
list ports 'eth0'
list ports 'eth2'
list ports 'eth3'
list ports 'eth4'
config interface 'lan'
option device 'br-lan'
option proto 'static'
option ipaddr '192.168.30.1' # 保持和PVE管理地址在同一个网段
option netmask '255.255.255.0'
option ip6assign '64' # 如果要开启Ipv6,这个要配置
config interface 'wan'
option device 'eth1'
option proto 'pppoe'
option username 'AAAAA' # 宽带拨号账号
option password 'BBBBB' # 宽带拨号密码
option ipv6 'auto'
# 如果要开启Ipv6,这个要配置
config interface 'wan6'
option device 'eth1'
option proto 'dhcpv6'