百度360必应搜狗淘宝本站头条
当前位置:网站首页 > IT知识 > 正文

win11下搭建openwrt学习环境

liuian 2025-02-07 18:19 28 浏览

openwrt是一个插件式的路由器系统,现在市面上很多路由器都是基于此系统来封装的。对于喜欢研究或者学习的同学,本文介绍了常见windows系统下怎么搭建一个学习的环境。

环境信息

先说下我的环境信息

  • AMD R7 低功耗处理器
  • win 11 操作系统
  • 虚拟化平台:window 自带的hyper-v

如果环境不是以上的,没有参考意义,可以忽略了。

说点题外话,简单说下为啥选择hyper-v,

  1. 相比起来VMware workstation,或者virtualbox之类的平台,hyper-v是windows自家软件,虽然性能可能有一定折损,但是也基本够用。
  2. 安装了第三方的虚拟化软件,windows自带的WSL功能受限,极其不方便。
  3. hyper-v的虚拟化管理功能已经非常完善了,而且动态内存分配,还有存储共享本地磁盘,磁盘精简置备等都能够方便的管理
  4. hyper-v的磁盘可以直接挂在到windows的磁盘管理器上,方便进行固件刷新,或者文件查看等。

镜像下载

官方地址:https://downloads.openwrt.org/ 不过这个比较慢。推荐国内的镜像站,比如阿里的https://mirrors.aliyun.com/openwrt(这里腾讯的镜像站很多是403)。


根据当前最新的release的版本,选择「23.5.4」, 另外根据处理器的架构,我这里因为是在windows电脑上测试,所以我选择x86架构64位的。

这里说下各种格式的说明

?

combined-ext4.img.gz(rootfs工作区存储格式为ext4。

combined-squashfs.img.gz(squashfs相当于可以恢复出厂设置的固件,如果使用中配置错误,可直接恢复默认设置。)

generic-rootfs.tar.gz(rootfs的镜像,不带引导,可自行定义用grub或者syslinux来引导。)

rootfs-ext4.img.gz(rootfs的镜像,不带引导,可自行定义用grub或者syslinux来引导,需要存储区是ext4。)

rootfs-squashfs.img.gz(rootfs的镜像,不带引导,可自行定义用grub或者syslinux来引导,如果使用中配置错误,可直接恢复默认设置。)

?

如果对linux的内核加载不熟悉,担心麻烦,可以直接选择「squashfs」格式的。

另外还有一个带「EFI」和不带的,主要看你自己的选择,是否选择走EFI启动,不过需要bios相关设置, 在虚拟化场景下,有些可以设置(pve),而我这里用的hyper-v两种都支持,随便选吧。

安装过程

创建虚拟机

  1. 登录hyper-v的管理页面,右侧选择创建虚拟机



  1. 选择名称和保存位置这里注意下,默认是保存到c盘,如果自己电脑分区不合理,建议改下。另外根据你本地盘的性能情况,可以选择具体的分区



  1. 下一步,这里就是一些特性支持了,如果用efi的镜像,选择第二代



  1. 下一步内存,如果只是学习,直接「512」吧,很多地段商用路由器还达不到。



  1. 下一步配置网络,这里如果要模拟路由器的Lan口和WAN口,配置创建两个hyper-v下的虚拟机交换机,默认的Defaut Switch是跟随你电脑的网卡自己的,是一个NAT的网络交换机。可以创建一个存内网的交换机,可以叫LAN口,一个桥接的交换机,可以叫wan,默认的可以不用,比如我这里:




然后我虚拟机选择的网络的时候,可以先选择Lan交换机(因为默认安装镜像完成会配置路由器的lan口,完成之后,在手动添加wan口)



  1. 下一步磁盘信息,名称是签名虚拟机的名称,位置是选择虚拟机的位置带过来的,大小可以自己设置,在op下磁盘空间如果不用很多,可以直接选择2G或者4G都可以,或者不改也行,反正是精简置备的。



  1. 下一步,系统选择不安装,然后完成创建

至此一个虚拟机就创建完成了。

系统安装

这些需要使用「rufs」这个工具,从这里下载吧,不用安装,下载了直接可以用。

1. 打开磁盘管理 在使用工具之前, 需要先将虚拟机的磁盘挂到你自己的这台windows电脑上。打开windows自带的磁盘管理器:

方法一:按下键盘 win(alt旁边那个窗口) 键,弹出的框里面输入disk man,会看到一个「创建并格式化磁盘分区」



方法二:按下键盘 win(alt旁边那个窗口) 键,点所有应用,往下找到「windows工具」,然后选择「计算机管理」,找到下面的「磁盘管理」

2. 附加vhd文件 然后我们将刚刚创建的虚拟机的磁盘文件附加到这里来进行管理 选择「磁盘管理」,然后「更多操作」,选择「附加vhd」

弹出的对话框选择刚刚创建虚拟机的路径,下面有一个「Virtual Hard Disks」,点进去,然后选择后缀为vhdx的磁盘文件完成之后如下:


这个时候,就可以用rufs写入固件了。

4. 写入固件 打开rufs自动就看到设备,是刚刚我们附加的这个磁盘,下面进行选择刚刚我们下载下来的镜像(下载下来的是tar.gz格式,需要里面的img文件),具体如下

然后选择开始,就等待结束安装就完成了。


4 分离vhd 写入完成之后,会到磁盘管理页面,选择分离vhd,将磁盘从windows下踢出来。

配置openwrt

  1. 启动openwrt 回到hyper-v管理页面,找到我们创建的虚拟机,然后选中,右键选择「连接」,在打开的页面,选择启动。然后等待openwrt启动成功。



  1. 配置lan口地址 启动完成,看到lan口地址已经配置完成默认的192.168.1.1 .


这里需要改成你hyper-v的虚拟化交换机的一个段的地址。修改/etc/config/network文件,将其中lan部分的地址,修改成你hyper-v环境的地址。比如我这里10.20.30.6, 修改完成如下:

修改完成,重启network

/etc/init.d/network restart

3.登录openwrtweb页面 浏览器输入管理地址,输入密码password即可登录

登录之后,我们就是我们熟悉的页面了


后续工作

后续就是页面上的操作了。对着提示应该都能操作,主要包括

  1. 添加wan口
  2. 修改密码
  3. 配置opkg的源
  4. 安装配置使用其他插件。

这里解释下,为什么不先添加wan口,这个固件默认eth0是lan口,eth1是wan口。在虚拟化环境下, 同时添加,不一定能控制网卡顺序,所以我们手动添加。当然你要是熟悉配置,可以一次性把lan和wan都添加上,然后发现不对,再回来改network的配置。

总结

  1. 采用windows hyper-v, 可以非常方便的模拟各种网络环境,也不用额外的安装虚拟化软件
  2. 以上方法,「适用所有img格式的系统安装」,比如iStoreOS,或者一些NAS的固件等。
  3. 对openwrt固件的选择,建议选择官方纯净版,需要什么固件自己去安装。这个过程虽然麻烦,但是都用op了,我觉得应该都是不怕麻烦的。要是确实觉得麻烦,那就用iStoreOS一类的臃肿的固件吧。

相关推荐

python入门到脱坑函数—定义函数_如何定义函数python

Python函数定义:从入门到精通一、函数的基本概念函数是组织好的、可重复使用的代码块,用于执行特定任务。在Python中,函数可以提高代码的模块性和重复利用率。二、定义函数的基本语法def函数名(...

javascript函数的call、apply和bind的原理及作用详解

javascript函数的call、apply和bind本质是用来实现继承的,专业点说法就是改变函数体内部this的指向,当一个对象没有某个功能时,就可以用这3个来从有相关功能的对象里借用过来...

JS中 call()、apply()、bind() 的用法

其实是一个很简单的东西,认真看十分钟就从一脸懵B到完全理解!先看明白下面:例1obj.objAge;//17obj.myFun()//小张年龄undefined例2shows(...

Pandas每日函数学习之apply函数_apply函数python

apply函数是Pandas中的一个非常强大的工具,它允许你对DataFrame或Series中的数据应用一个函数,可以是自定义的函数,也可以是内置的函数。apply可以作用于DataF...

Win10搜索不习惯 换个设定就好了_window10搜索用不了怎么办

Windows10的搜索功能是真的方便,这点用惯了Windows10的小伙伴应该都知道,不过它有个小问题,就是Windows10虽然会自动联网搜索,但默认使用微软自家的Bing搜索引擎和Edge...

面试秘籍:call、bind、apply的区别,面试官为什么总爱问这三位?

引言你有没有发现,每次JavaScript面试,面试官总爱问你call、bind和apply的区别?好像这三个方法成了通关密码,掌握了它们,就能顺利过关。其实不难理解,面试官问这些问题,不...

记住这8招,帮你掌握“追拍“摄影技法—摄影早自习第422日

杨海英同学提问:请问叶梓老师,我练习追拍时,总也不能把运动的人物拍清晰,速度一般掌握在1/40-1/60,请问您如何把追拍拍的清晰?这跟不同的运动形式有关系吗?请您给讲讲要点,谢谢您!摄影:Damia...

[Sony] 有点残酷的测试A7RII PK FS7

都是好机!手中利器!主要是最近天天研究fs5,想知道fs5与a7rii后期匹配问题,苦等朋友的fs5月底到货,于是先拿手里现有的fs7小测一下,十九八九也能看到fs5的影子,另外也了解一下fs5k标配...

AndroidStudio_Android使用OkHttp发起Http请求

这个okHttp的使用,其实网络上有很多的案例的,但是,如果以前没用过,copy别人的直接用的话,可以发现要么导包导不进来,要么,人家给的代码也不完整,这里自己整理一下.1.引入OkHttp的jar...

ESL-通过事件控制FreeSWITCH_es事务控制

通过事件提供的最底层控制机制,允许我们有效地利用工具箱,适时选择使用其中的单个工具。FreeSWITCH是一个核心交换与混合矩阵,它周围有几十个模块提供各种功能特性。我们完全控制了所有的即时信息,这些...

【调试】perf和火焰图_perf生成火焰图

简介perf是linux上的性能分析工具,perf可以对event进行统计得到event的发生次数,或者对event进行采样,得到每次event发生时的相关数据(cpu、进程id、运行栈等),利用这些...

文本检索控件也玩安卓?dtSearch Engine发布Android测试版

dtSearchEngineforLinux(原生64-bit/32-bitC++和JavaAPIs)和dtSearchEngineforWin&.NET(原生64-bi...

网站后台莫名增加N个管理员,记一次SQL注入攻击

网站没流量,但却经常被SQL注入光顾。最近,网站真的很奇怪,网站后台不光莫名多了很多“管理员”,所有的Wordpres插件还会被自动暂停,导致一些插件支持的页面,如WooCommerce无法正常访问、...

多元回归树分析Multivariate Regression Trees,MRT

多元回归树(MultivariateRegressionTrees,MRT)是单元回归树的拓展,是一种对一系列连续型变量递归划分成多个类群的聚类方法,是在决策树(decision-trees)基础...

JMETER性能测试_JMETER性能测试指标

jmeter为性能测试提供了一下特色:jmeter可以对测试静态资源(例如js、html等)以及动态资源(例如php、jsp、ajax等等)进行性能测试jmeter可以挖掘出系统最大能处...