标签归档:openwrt

Proxmox VE环境,运行一个原版openwrt的虚拟机

前缀、文档修改记录

20250522 初始化编辑此文章,完稿
20250803 更新文章,镜像版本24.10.2
20250804 更新Y2B视频讲解,PVE中创建1个Openwrt虚拟机,能通网络
20250805 更新文章,增加语言,源等配置 

章节1、需求描述

一个独立的PVE环境,最常见的all in one玩法,PVE中,是需要一个路由器系统的,优先选择openwrt作为路由器系统。

章节2、测试环境

PVE 8.1.4   // 这个不是最新版本的,不过没事
Openwrt 24.10.2 x86-64    // 这个是最新版本

章节3、 镜像文件

openwrt镜像文件下载,新版本的pve基本都是使用UEFI启动,优先下载使用 EFI 启动的openwrt镜像。 24.10.2 Tag-2025-8-3时间最新的版本

文件系统类型(ext4 vs squashfs)、是否支持 UEFI 启动,以及是否是 完整系统(combined) 或只是 根文件系统(rootfs)

https://downloads.openwrt.org/releases/24.10.2/targets/x86/64/openwrt-24.10.2-x86-64-generic-ext4-combined.img.gz

factory:用于硬件首次刷机
sysupgrade:用于升级现有 OpenWrt
combined.img(如 SquashFS):适合虚拟机或 USB 安装 

章节4、上传镜像

将gz格式的镜像解压缩为.img格式,然后,点PVE页面的上传按钮,进行文件上传

可以观察到文件在PVE中的位置 /var/lib/vz/template/iso/openwrt-24.10.2-x86-64-generic-ext4-combined.img

章节5、创建openwrt虚拟机

这里可以通过qm命令或者网页常规方式,创建一个无磁盘的虚拟机。

创建虚拟机 / 名称 OpenWRT

操作系统 / 不使用任何介质

系统 / 全部默认

磁盘 / 删掉默认,空白

核心 / KVM64 或者 host, +AES

内存 / 512MB ~ 2048MB

网卡 / virtio

章节6、 导入系统的img

qm importdisk $VMID /var/lib/vz/template/openwrt-*.img local-zfs

其中 $VMID,我这里是100,你们根据实际的填

执行命令为:
qm importdisk 102 /var/lib/vz/template/iso/openwrt-24.10.2-x86-64-generic-ext4-combined.img local-zfs

导入成功后,会出现“未使用的磁盘0”

双击未使用的磁盘,点击“添加”,并调整大小,增加10G的磁盘容量

并在 “选项”,”引导顺序” ,将刚刚增加的磁盘vm-100-disk-0拉到最上,让它“启用”,为第一优先级的引导

做完后,我一般直接把这台虚拟机转换为模板,这样方便后期的调试,按这个模板,创建各种测试用途的openwrt虚拟机。模板上右击,选择克隆,模式(完整),名称(自定义一个新名字)即可。

章节7、Openwrt地址段修改

修改文件 /etc/config/network ,我这里只有1个网卡,默认为LAN,如果需要WAN,可在控制台再增加一个网卡口,用于WAN的上联。

章节8、网页登录,修改网卡的配置参数

因为主路由开了DHCP SERVER,这个就关闭DHCP SERVER;

指定网关到当前网络的主路由IP

指定DNS到当前网络的主路由IP

(可选)我这里旁路由用,关闭IPv6

章节9、配置Openwrt的国内镜像源

网页登录Openwrt,系统System,软件Software,选择Configure opkg,修改 /etc/opkg/distfeeds.conf 中的内容

国内的源很多,一般清华,阿里,中科大……,这个你们随意选择。

//  原参数
src/gz openwrt_core https://downloads.openwrt.org/releases/24.10.2/targets/x86/64/packages
src/gz openwrt_base https://downloads.openwrt.org/releases/24.10.2/packages/x86_64/base
src/gz openwrt_kmods https://downloads.openwrt.org/releases/24.10.2/targets/x86/64/kmods/6.6.93-1-1745ebad77278f5cdc8330d17a3f43d6
src/gz openwrt_luci https://downloads.openwrt.org/releases/24.10.2/packages/x86_64/luci
src/gz openwrt_packages https://downloads.openwrt.org/releases/24.10.2/packages/x86_64/packages
src/gz openwrt_routing https://downloads.openwrt.org/releases/24.10.2/packages/x86_64/routing
src/gz openwrt_telephony https://downloads.openwrt.org/releases/24.10.2/packages/x86_64/telephony


// 更新参数,清华大学源
src/gz openwrt_core https://mirrors.tuna.tsinghua.edu.cn/openwrt/releases/24.10.2/targets/x86/64/packages
src/gz openwrt_base https://mirrors.tuna.tsinghua.edu.cn/openwrt/releases/24.10.2/packages/x86_64/base
src/gz openwrt_kmods https://mirrors.tuna.tsinghua.edu.cn/openwrt/releases/24.10.2/targets/x86/64/kmods/6.6.93-1-1745ebad77278f5cdc8330d17a3f43d6
src/gz openwrt_luci https://mirrors.tuna.tsinghua.edu.cn/openwrt/releases/24.10.2/packages/x86_64/luci
src/gz openwrt_packages https://mirrors.tuna.tsinghua.edu.cn/openwrt/releases/24.10.2/packages/x86_64/packages
src/gz openwrt_routing https://mirrors.tuna.tsinghua.edu.cn/openwrt/releases/24.10.2/packages/x86_64/routing
src/gz openwrt_telephony https://mirrors.tuna.tsinghua.edu.cn/openwrt/releases/24.10.2/packages/x86_64/telephony

配置完源,点击update lists,更新即可。

章节10、配置中文语言包

在输入框Filter 这里搜索 zh-cn

在luci-i18n-base-zh-cn 下载并安装,安装完成,刷新页面,应该就是中文了。

章节11、扩容/分区

系统默认的存储空间也就120MB总大小,我前面分配了16G的容量,没有充分用上,本章节讲解如何扩容/分区空间

原来各路径的容量信息:

下面参照官方的操作指引,更新扩容分区

https://openwrt.org/docs/guide-user/advanced/expand_root

如下都为命令行操作,先安装必要的软件

#注释 Install packages  安装必要的软件
root@OpenWrt:~# opkg update
root@OpenWrt:~# opkg install parted losetup resize2fs blkid unzip
 
#注释 Download expand-root.sh 下载官方的脚本代码,其中这个可选用电脑下载好后,手工上传到openwrt系统
root@OpenWrt:~# wget -U "" -O expand-root.sh "https://openwrt.org/_export/code/docs/guide-user/advanced/expand_root?codeblock=0"
 
#注释 运行脚本Source the script (自动生成 /etc/uci-defaults/70-rootpt-resize and /etc/uci-defaults/80-rootpt-resize, and adds them to /etc/sysupgrade.conf so they will be re-run after a sysupgrade)
root@OpenWrt:~# . ./expand-root.sh

#注释 执行分区扩容,并自动重启Resize root partition and filesystem (will resize partiton, reboot resize filesystem, and reboot again)
root@OpenWrt:~# sh /etc/uci-defaults/70-rootpt-resize
因为实际为ext4文件系统,且没有必要全部容量扩进/分区,实际执行命令如下,增加16GB容量到/分区即可:
opkg update
opkg install parted losetup resize2fs blkid unzip lsblk losetup
parted -s /dev/nvme0n1 resizepart 2 16GB
losetup -a
losetup /dev/loop0 /dev/nvme0n1p2
resize2fs -f /dev/loop0
reboot

再次登录Openwrt,命令 df -h ,看到Available容量为~16GB,表示扩容完成。

章节12、安装软件 Passwall

必要的依赖软件

root@OpenWrt:~# opkg update
root@OpenWrt:~# opkg install coreutils 
root@OpenWrt:~# opkg install coreutils-base64
root@OpenWrt:~# opkg install coreutils-nohup
root@OpenWrt:~# opkg install curl
root@OpenWrt:~# opkg install ip-full
root@OpenWrt:~# opkg install libuci-lua
root@OpenWrt:~# opkg install lua
root@OpenWrt:~# opkg install luci-compat
root@OpenWrt:~# opkg install luci-lib-jsonc
root@OpenWrt:~# opkg install resolveip

去这里,搞一份文件,https://github.com/xiaorouji/openwrt-passwall/releases

本次2025-8-5下载的版本,25.8.5-1,根据各自的CPU架构&Openwrt版本,我这里要x86-64下载语言包和软件包

https://github.com/xiaorouji/openwrt-passwall/releases/download/25.8.5-1/luci-24.10_luci-app-passwall_25.8.5-r1_all.ipk

https://github.com/xiaorouji/openwrt-passwall/releases/download/25.8.5-1/luci-24.10_luci-i18n-passwall-zh-cn_25.216.51224.3ce0762_all.ipk

https://github.com/xiaorouji/openwrt-passwall/releases/download/25.8.5-1/passwall_packages_ipk_x86_64.zip

root@OpenWrt:~# opkg update
root@OpenWrt:~# opkg unzip
root@OpenWrt:~# unzip passwall_packages_ipk_x86_64.zip
// 依次安装如下
root@OpenWrt:# opkg install chinadns-ng_2025.06.20-r1_x86_64.ipk
root@OpenWrt:# opkg install dns2socks_2.1-r2_x86_64.ipk
root@OpenWrt:# opkg install geoview_0.1.10-r1_x86_64.ipk
root@OpenWrt:# opkg install hysteria_2.6.2-r1_x86_64.ipk 
root@OpenWrt:# opkg install ipt2socks_1.1.4-r3_x86_64.ipk
root@OpenWrt:# opkg install microsocks_1.0.5-r1_x86_64.ipk
root@OpenWrt:# opkg install naiveproxy_138.0.7204.35-r1_x86_64.ipk
root@OpenWrt:# opkg install shadow-tls_0.2.25-r1_x86_64.ipk
root@OpenWrt:# opkg install shadowsocks-rust-sslocal_1.23.5-r1_x86_64.ipk
root@OpenWrt:# opkg install shadowsocks-rust-ssserver_1.23.5-r1_x86_64.ipk  // 一般不需要安装
root@OpenWrt:# opkg install shadowsocksr-libev-ssr-local_2.5.6-r11_x86_64.ipk
root@OpenWrt:# opkg install shadowsocksr-libev-ssr-redir_2.5.6-r11_x86_64.ipk
root@OpenWrt:# opkg install shadowsocksr-libev-ssr-server_2.5.6-r11_x86_64.ipk  // 一般不需要安装
root@OpenWrt:# opkg install simple-obfs_0.0.5-r1_x86_64.ipk
root@OpenWrt:# opkg install sing-box_1.11.15-r1_x86_64.ipk
root@OpenWrt:# opkg install tcping_0.3-r1_x86_64.ipk
root@OpenWrt:# opkg install trojan-plus_10.0.3-r2_x86_64.ipk
root@OpenWrt:# opkg install tuic-client_1.0.0-r1_x86_64.ipk
root@OpenWrt:# opkg install v2ray-geoip_202507310022.1_all.ipk
root@OpenWrt:# opkg install v2ray-geosite_202507302215.1_all.ipk
root@OpenWrt:# opkg install v2ray-plugin_5.37.0-r1_x86_64.ipk
root@OpenWrt:# opkg install xray-core_25.7.26-r1_x86_64.ipk
root@OpenWrt:# opkg install xray-plugin_1.8.24-r1_x86_64.ipk
// 安装完各软件后,再安装这俩
root@OpenWrt:# opkg install luci-24.10_luci-app-passwall_25.8.1-r1_all.ipk
root@OpenWrt:# opkg install luci-24.10_luci-i18n-passwall-zh-cn_25.213.59897.f0cc846_all.ipk
2025-08-05 02:23:01: 系统未安装iptables或ipset或Dnsmasq没有开启ipset支持,无法使用iptables+ipset透明代理!
2025-08-05 02:23:01: 透明代理基础依赖 kmod-nft-socket 未安装...
2025-08-05 02:23:01: 透明代理基础依赖 kmod-nft-tproxy 未安装...
2025-08-05 02:23:01: 运行完成!

把缺的这俩在软件包里搜索安装,并重启一下即可。
删除 dnsmasq
安装 iptables-nft kmod-nft-socket kmod-nft-tproxy dnsmasq-full
并修改 passwall/高级设置/转发设置/防火墙/nftables

~ ~~~~~~~ 分割线 ~ ~~~~~~~

附录0、离线安装软件 fdisk

软件1、fdisk

//   terminfo_6.4-r2_x86_64.ipk
opkg install terminfo_*.ipk   
//   libncurses-dev_6.4-r2_x86_64.ipk  libncurses6_6.4-r2_x86_64.ipk  
opkg install libncurses6_*.ipk
//   fdisk_2.40.2-r1_x86_64.ipk
opkg install fdisk_*.ipk

软件2、resize2fs

//   resize2fs_1.47.0-r2_x86_64.ipk
opkg install resize2fs*.ipk

软件3、blkid

//   blkid_2.40.2-r1_x86_64.ipk      libblkid1_2.40.2-r1_x86_64.ipk
opkg install *blkid*.ipk

软件4、lsblk

//   libmount1_2.40.2-r1_x86_64.ipk lsblk_2.40.2-r1_x86_64.ipk
root@Router:~# opkg install libmount1_2.40.2-r1_x86_64.ipk
Installing libmount1 (2.40.2-r1) to root...
Configuring libmount1.
root@Router:~# opkg install lsblk_2.40.2-r1_x86_64.ipk
Installing lsblk (2.40.2-r1) to root...
Configuring lsblk.
root@Router:~# 

软件5、e2fs

root@Router:~# opkg install e2fsprogs_1.47.0-r2_x86_64.ipk 
Package e2fsprogs (1.47.0-r2) installed in root is up to date.
root@Router:~# 

附录1、视频操作演示

章节1-8,初始化1个openwrt虚拟机

000161. Proxmox VE环境,安装原版Openwrt系统 2025-08-04

本期博客地址 https://dasmz.com/?p=4625
本期视频地址 https://youtu.be/iqgECX1cGQw

附录2、@Dasmz

博客内,所有教程为手打原创教程,如果技术教程对您有所帮助,欢迎打赏作者。技术层面,闻道有先后,如有疏漏、错误,欢迎指正。技术博客的内容,一般具有一定的环境依赖,具有一定的年代依赖,酌情参考其中的内容,请勿完全照搬照抄。

对于博客内已提及的专业知识,如果需要技术指导,欢迎联系我,仅需支付工时费

Twitter: Dasmz

Youtube: @DasmzStudio

Telegram: @Dasmz

Donate
云乞讨