从0到1搭建好用的OpenWRT系统
- 通过PVE虚拟平台搭建OpenWRT系统
- 在PVE上创建OpenWRT虚拟机
- 下载OpenWRT镜像文件
- 上传镜像到PVE
- 创建虚拟机
- 安装OpenWRT系统
- 修改OpenWRT的ip地址,使得OpenWRT可以被前端访问
- 配置OpenWRT的网关和dns,使系统可以访问外网
- 修改为国内镜像源
- 修改语言为中文
- 设置主题
- 磁盘扩容
- 配置ipv6访问
通过PVE虚拟平台搭建OpenWRT系统
OpenWRT是一款及其好用的软路由系统,很多it大拿可以通过该系统玩出各种好玩的花样,由于OpenWRT详细的部署过程以及一些初始化配置过程相对较少,因此本博客会将OpenWRT再pve虚拟平台下的安装部署过程,已经后续的磁盘扩容,主题更换,中文配置等详细的配置过程记录下来,以便小白们通过这一篇博客即可以搭建一套入门级别的好用的OpenWRT。
这里使用PVE平台,是因为PEV是一个给予Debian的开源平台,对各硬件平台的支持度相对较高,而相对应的ESXI平台则是更倾向于商业化的,而且对硬件平台的要求也相对较高,一些小众的硬件平台(例如各种工控机、迷你小主机等)可能无法安装,同时对网卡的厂商要求也较高。综合考虑,还是用PVE平台更加实际和高效。
我们最终的目的是,通过pve搭建好OpenWRT后,可以得到如下的效果,甚至通过公网的ipv6地址访问(如果有域名的话,通过域名映射后还可以通过域名进行访问)OpenWRT的各项界面效果,如下图:
本博客默认你已经掌握了pve的安装和基本使用方法,可以到网上找到对应的相关教程。
废话不多说,让我们开始有趣的旅途吧。
在PVE上创建OpenWRT虚拟机
下载OpenWRT镜像文件
可以到OpenWRT官网上下载对应的连接,由于该网站处在国外,下载可能会比较慢,但是即便如此,官网上依旧提供了各种国内代理地址,如下:
可以选择相对较为稳定的腾讯的网址(由于网址的目录比较多,为避免找不到,我已经给大家找好了对应的路径,直接点击进入即可下载(该链接默认是x86平台64位系统,可以根据自身需要到上一层目录中下载自己硬件平台对应的版本,截止本博客发布时间,OpenWRT的最新版本是23.05.2): https://mirrors.cloud.tencent.com/openwrt/releases/23.05.2/targets/x86/64/)
下载并将其进行解压得到img文件
上传镜像到PVE
将img文件上传到pve,PVE控制台首页,点击local(pve)
标识要上传到PVE的哪块磁盘,点击ISO镜像
,点击上传
按钮,选择解压得到的img文件作为上传文件,点击“上传”
待上传结束后,在弹出窗口中可以看到对应的文件路径,复制这个路径,该路径后续会用到
创建虚拟机
登录PVE的前端控制台界面,右击pve节点,创建新的虚拟机,如下图:
输入节点名称,点击下一步
选择不使用任何介质
系统的默认“下一步”即可
磁盘直接删除掉,后面会重新手动创建磁盘
cpu尽可能选择2核火以上(无须太高,2核足够)
内存保持默认的2g即可
网络也保持默认(后续可以根据需要进行修改)
点击完成
按钮
可以看到虚拟机已经创建完成,但是目前OpenWRT系统还没有安装到创建的虚拟机,下一步我们将对该虚拟机进行OpenWRT的安装。
安装OpenWRT系统
由于OpenWRT的系统官方没有提供对应的iso镜像包,通过img镜像包需要使用命令行的方式进行安装,具体操作如下(准备好前面复制好的img镜像路径):
在PVE平台点击pve
节点,点击shell
,如下图:
在命令行控制台中输入如下命令:
qm importdisk <虚拟机id> <img镜像路径> <安装到pve的哪个磁盘位置>
例如:
qm importdisk 102 /var/lib/vz/template/iso/openwrt-23.05.2-x86-64-generic-ext4-combined.img pve_servers
我这里的
102
代表id号为102的虚拟机,/var/lib/vz/template/iso/openwrt-23.05.2-x86-64-generic-ext4-combined.img
表示我的img镜像上传后的路径,pve_servers
表示我要安装到pve的“pve_servers”磁盘空间中(默认是“local-lvm”,由于我的“local-lvm”磁盘空间已经安装了其他东西,为避免磁盘空间不足,我另外加了一块硬盘,并将其创建成“pve_servers”)。
回车,可以看到命令执行完成,若失败的话,请检查一下镜像文件路径和安装路径是否准确(不可以直接安装在“local”,可以安装在“local-lvm”)
重新点击创建的虚拟机,点击硬件
,发现虚拟机多出了一块硬盘,这就是刚刚的命令执行后新增的,即OpenWRT已经被写入到了该磁盘下
点击该磁盘,再点击编辑
按钮,将总线/设备
修改为“SATA”,勾选SSD仿真
和丢弃
,点击添加
点击选项
,双击引导顺序
,修改磁盘作为第一引导顺序(勾选该磁盘并取消勾选其他两项,将磁盘拖动到第一个位置)
点击“控制台”,点击Start now
发现已经成功引导并进入系统界面
接下来只需要对OpenWRT进行相关配置即可
修改OpenWRT的ip地址,使得OpenWRT可以被前端访问
待OpenWRT系统启动完成(log不再刷时表明系统启动完成),在OpenWRT的控制台界面敲入回车,可以操作对应的linux命令
输入如下命令,修改网卡ip地址
vi /etc/config/network
将ip地址修改为何pve同一网段的其他地址(注意要避免与其他及其ip地址冲突),按ESC
输入“:wq”,回车即可保存,然后输入“reboot”重启OpenWRT,待重启完成后,即可在浏览器前端访问OpenWRT
浏览器前端输入刚刚配置好的ip地址,我这里配置的是192.168.1.202,所以我直接范文这个地址即可
初始密码不知道的话,可以在后台控制器上,直接输入passwd
修改初始密码
前端浏览器输入后,进入OpenWRT首页
至此,OpenWRT已经安装完成,但是我们的任务还没有结束,OpenWRT默认安装完成后是不可访问外网的(通过后台控制器ping baidu.com
发现ping不通),因此需要手动配置一下网关和dns。
配置OpenWRT的网关和dns,使系统可以访问外网
OpenWRT首页点击“network→interfaces”,点击第一个网卡的“edit”按钮
修改网关
点击“Advanced Settings”,修改DNS服务器相关配置,填入正确的DNS服务器(默认第一个为网关,第二个为公有DNS服务器(网上可以找到很多))。
点击Save
按钮,再点击Save & Apply
按钮生效。
到后台控制器中输入ping baidu.com
验证外网可达性
发现外网已经可以ping通,至此网络配置结束
修改为国内镜像源
由于OpenWRT的官方镜像为国外网址,网速非常慢,经常会出现访问超时的现象,因此需要将OpenWRT的镜像源修改为国内,测试这么多个下来,发现清华大学的镜像源是最稳定可靠的,这里给大家提供已经参考,具体如下:
src/gz openwrt_core https://mirrors.tuna.tsinghua.edu.cn/openwrt/releases/23.05.2/targets/x86/64/packages
src/gz openwrt_base https://mirrors.tuna.tsinghua.edu.cn/openwrt/releases/23.05.2/packages/x86_64/base
src/gz openwrt_luci https://mirrors.tuna.tsinghua.edu.cn/openwrt/releases/23.05.2/packages/x86_64/luci
src/gz openwrt_packages https://mirrors.tuna.tsinghua.edu.cn/openwrt/releases/23.05.2/packages/x86_64/packages
src/gz openwrt_routing https://mirrors.tuna.tsinghua.edu.cn/openwrt/releases/23.05.2/packages/x86_64/routing
src/gz openwrt_telephony https://mirrors.tuna.tsinghua.edu.cn/openwrt/releases/23.05.2/packages/x86_64/telephony
在后台控制器中修改镜像源地址,将原来的镜像源地址全部注释掉,填充以上清华大学的镜像源地址
vi /etc/opkg/distfeeds.conf
执行更新命令
opkg update
至此,镜像源更新完成。
修改语言为中文
在OpenWRT首页点击“system→Software”,点击update lists
更新镜像源包目录
在Download and install package
中输入“luci-i18n-base-zh-cn”,点击OK
退出重新登录系统,发现语言已经变成了中文。
设置主题
OpenWRT原生的主题界面可能不是很美观,可以通过安装新主题的形式,实现对界面主题的更改,具体操作步骤如下:
用相同的方式先安装luci-compat
和luci-lib-ipkg
包
通过链接 https://github.com/jerrykuku/luci-theme-argon/releases/download/v2.3.1/luci-theme-argon_2.3.1_all.ipk 从github上下载对应的主题安装包,得到如下文件:
在OpenWRT前端点击Upload package...
按钮,选择刚刚下载好的文件
安装完成后,重新退出系统,即可看到登录页面已经更新成了新的主题
至此,主题的修改到此结束
磁盘扩容
前面的步骤我们知道,这种方式进行安装OpenWRT时,磁盘空间会非常小,只有几十上百兆,显然不足以支持我们后续的业务需要,因此,需要对OpenWRT的磁盘进行扩容,具体步骤如下:
和前面的方法一样,安装block-mount
工具
安装完成后,需要重新启动OpenWRT,重启后,重新登录OpenWRT前端,即可在左边导航栏中看到挂载点
选项,这个工具我们后面会用到
在pve上创建并关联新的磁盘给到OpenWRT
选择磁盘物理路径,默认是local-lvm
,这里我选择和系统同在的pve_servers
,大小输入10GB即可,后续不够可以再扩
系统后台安装cfdisk
、fdisk
、e2fsprogs
三个工具,命令行执行
opkg update
opkg install cfdisk fdisk e2fsprogs lsblk
接着就可以通过fdisk -l
看到OpenWRT的所有磁盘
PVE上看,这块磁盘是黄色的
这里发现刚刚新增的磁盘并没有添加进来,没关系,直接系统关机,然后重新开机(不要直接在命令行用reboot)
这里发现,新磁盘颜色也已经正常
重新输入fdisk -l
发现磁盘已经可以看到
直接给新磁盘创建新的分区
fdisk /dev/sdb
输入n
后,一直回车,最后输入w
保存配置
格式化新创建的分区
mkfs.ext4 /dev/sdb1
前端到挂载点
处,点击生成配置
按钮
可以在下面的列表中看到新创建的磁盘
点击编辑
按钮,勾选“已启用”,选择挂载点为作为根文件系统使用
,复制下面的配置信息,点击保存
按钮。
点击保存并应用
按钮
将以上修改后的内容,重新粘贴到后台控制台执行
mkdir -p /tmp/introot
mkdir -p /tmp/extroot
mount --bind / /tmp/introot
mount /dev/sdb1 /tmp/extroot
tar -C /tmp/introot -cvf - . | tar -C /tmp/extroot -xf -
umount /tmp/introot
umount /tmp/extroot
重启OpenWRT,进入前端首页“”,发现磁盘已经完成扩容
reboot
若以上步骤操作完成后,依旧没有生效,可从
点击“生成配置”按钮
处开始,重复执行1~2次即可,我测试过程中也出现了不生效的情况,重复执行1次后就生效了。
配置ipv6访问
我们知道,现在ipv4资源已经枯竭,如果想要让自己的系统组件可以给外部互联网访问,配置ipv6的方式是已经较为可行的方法(前提是你家的电信运营商已经给你开通了ipv6,并且需要手动关闭ipv6spi,否则会被运营商的路由器光猫拦截下来,最新的带宽默认都支持并开通了ipv6),具体步骤如下:
在OpenWRT前端新增一个接口
协议选择DNCPv6客户端
,名称随便写,设备选择桥接口,点击创建接口
点击保存
点击保存并应用
可以看到已经拿到了ipv6
电脑连接其他网络(例如手机开通热点),浏览器这个ipv6地址,发现即便外网的条件下,也可以访问该系统了
这就证明,我们的ipv6是可达可访问的,下一步就是要设置静态ipv6地址,避免由于运营商修改ipv6地址导致我们后续无法访问该ip,点击新网卡的编辑
按钮
修改协议类型为静态地址
,点击切换协议
填入ipv6地址(ipv4不要填写),可以直接拿原来的ipv6地址作为静态ip地址,输入网关(默认为:fe80::1
),点击保存
按钮
在外面点击保存并应用
使配置生效
点击“应用并保留设置”
发现原来的ipv6地址仍然可以通过手机热点进行访问,至此,所有配置结束。
补充一点,可以通过阿里云域名,将域名解析到这个ipv6地址,实现域名访问