当前位置: 首页 > news >正文

将OpenWrt部署在x86服务器上

61ea53461e026bd66011702469212b57.gif

正文共:1234 字 40 图,预估阅读时间:2 分钟

如果你问ChatGPT有哪些开源的SD-WAN方案,他会这样答复你:

1192b7184bd34b8747cd44f8930378b6.png

我们看到,OpenWrt也属于比较知名的开源SD-WAN解决方案。当然,在很久之前,我就发过几篇和OpenWrt相关的文章软路由是啥?OpenWrt又是啥?长啥样?在VMware装一个瞅瞅在ESXi上把OpenWrt变成真正的路由器。包括我们公司,目前也有一些基于OpenWrt开发的网络工具。

我们之前使用OpenWrt是因为暂时缺少ARM架构下的适配工具,所以临时选择了OpenWrt,直到最近有人员说OpenWrt只能在ARM架构下使用,让我颇为震惊。

8f46ed4fd72ddb4580bfaeeff57adf96.png

制作OpenWrt镜像

da361acf9607873295c2152439bac720.png

难道真是只有ARM架构才能用吗?我不禁想再去验证一下。

e4aa917b97ba894bdf6c8b52ab07f8f1.png

首先,我们可以看到,目前比较稳定的版本是22.03.2版本,比之前的21.02又提升了好几个版本。

9fe27b433d44cb3cd95910047e759e7d.png

在架构选择页面,可以看到有很多选项,多到竟然没几项是认识的,但是我们依旧可以从中很轻易的找到x86架构选项。

ac348ad7a9dcb9f43fc81f767acf8823.png

在x86下面又可以选择64位版本。

dbd9e046c8c141c4430a52cf35ff4283.png

下载的时候,理论上讲前两个文件应该都是可以用的,我用第二个试一下,该文件的下载链接如下:

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

下载完成后,解压得到openwrt-22.03.2-x86-64-generic-ext4-combined.img这个文件。

9080a8753f58535dddaa3d15e956176b.png

压缩包有所增加,但是解压出来的镜像之前小了。

然后用StarWindConverter这个工具来把IMG镜像文件转换成VMWare支持的vmdk文件。

6d52e969a558111c7aea3d8953822b13.png

选择合适的转换后的镜像格式,我选择的是VMWare growable image版本的VMDK,磁盘空间按需增长。

e612473a3c5a890d9559ee13a957bd6b.png

磁盘类型选择“IDE”,也可以选择“SCSI”。这个跟创建虚拟机时的选项要对应。

fe62eee3f3e7ced0a98af62a3c2e7390.png

选择输出文件位置,默认是和源文件在同一目录下。

17411c1edf8aaa7c7f87c910a36e6db7.png

转换过程很快,可以看到转换完成的vmdk文件。

7963af95ab26c06561a8b9b8b133c68b.png

a02abbebff8039152d3800cde8d0c1df.png

创建VMware虚拟机

9ae2ca2a737ee5e68a16a801ac201ce3.png

创建新的虚拟机,类型选择“自定义(高级)”

c2126380b38d8a9b74fce6926208780e.png

选择兼容性,因为我们要将其迁移到VMware ESXi 6.7,所以我的硬件兼容性选择了“ESXi 6.5”

a5f70737787a5e3da81b028e03e1df3b.png

稍后安装操作系统。

1a7c9a7ec4703d3e35f04a65d061bb4e.png

系统选择“Linux”→“其他Linux 4.x或更高版本内核64位”。(实际内核版本为5.10.146)

5510fa6a7887f55fc6f25e501c515944.png

命名虚拟机并选择存储位置。

ecfa32dd0bff59ab6705c3a66d6e77eb.png

处理器配置选择2核CPU。

5da444eb88c87eb2e2b0c048e3149332.png

推荐内存768 M,还是分2G给它吧。

b62b3d1774c0ccb462aa9c7e652e21a2.png

网络类型选择“使用桥接网络”

446c277b4fe8742c897471f503ebd65f.png

I/O控制器类型保持默认推荐的“LSI Logic”

7d292422c581313cd6a2557989a7230b.png

虚拟磁盘类型跟转换的镜像保持一致,选择“IDE”

71b2fd1bd6fce857fca44ca5739ce626.png

磁盘选择“使用现有虚拟磁盘”

3665ce2affe1ddf45cf9f3ce5841db5d.png

选择刚才转换好的vmdk文件,可以看心情决定是否转换为最新格式。

0f8710ac66f18117d7a9a419f246fead.png

我选择了“转换”

d8e8018b4b1e311cba8b8fb0a11a124b.png

确认虚拟机配置,没有问题的话,点击“完成”即可。

14eae1bab6b3f861a81312a23133dccb.png

启动OpenWrt虚拟机

8a7c95a0e32efc3b6dea3ac04d45b403.png

直接启动虚拟机,启动保持默认选项即可。

984b3880e9e4df35474f7535af439ac2.png

注意:系统在启动完成后不会自动进入系统,一般当我们看到启动页面加载出“br-lan:link becomes ready”基本上就是已经启动完成了,并且页面会停在这里。

59a4228401fe105180a840504eacf395.png

然后按一下回车键即可进入系统。

1332c73e867739ece6692ce64f1c221d.png

可以看到启动欢迎页面显示的“OpenWrt”字样,以及版本号22.03.2。并且提示说明当前的root账号没有密码,需要使用passwd命令来设置新密码。

aeb465a76cd8a39407650825c89f0690.png

注意,新系统中二层口br-lan的默认地址是192.168.1.1,需要确认是否存在地址冲突,比如和我现有的网段冲突了,就需要进行修改。

并且我这次打算做一个单臂的场景,所以,我在配置文件“/etc/config/network”中,将网卡eth0的地址修改成了192.168.1.224/24,网卡lan的地址移除掉了。

dfb9744c1130a505a7212477d147c87e.png

修改完成后,执行命令重启网络服务。

service network restart

75956fbb16760cb9f369986ff8581e90.png

迁移到ESXi

47aeb981700bf4bebad336069ae0f023.png

关闭虚拟机,然后选择“文件”中的“导出为OVF”

8b251143261a9180dd328ee89b70e24d.png

得到我们需要的OVF和vmdk文件。

f9ce83b86f684c64ab3b8347255d30b4.png

来到ESXi中,新建虚拟机,创建类型选择“从OVF或OVA文件部署虚拟机”

a692a1cd6b0e796c3f6e26175d349be8.png

选中导出的OVF文件和VMDK文件,再给虚拟机起个名。

9b5022743dd2234057a981f4562c874f.png

选择存储。

a4c50ca8404c56f2ea640e8321e7d9a8.png

在“部署选项”中,网络映射选择到管理网,磁盘置备选择为“精简”,关闭“自动打开电源”

3c588ae15716b80441de0287aee571d3.png

确认主机配置,点击“完成”

18d6475c92d0c5fee03d3c168296f260.png

导入成功后,启动虚拟机。

b31258b72d053918c32ca34bd674417c.png

从本地测试访问192.168.1.221,连通性正常。

814804888a02faac22b658be066e687b.png

虽然在启动时要求我们输入密码,但是我们没有设置,可以直接点“login”登录系统。

a00dead642c6e2da16378fc2ed5eb737.png

查看主机状态信息,一切正常。

37d3d4e93de89e65557ec29a52e0aeaf.png

OK,这不就在x86上面部署完成了吗?

8f42689a43e7e0a357dcc70d179c8de6.gif

长按二维码
关注我们吧

7b20b790517e19afd236e2b6c3031521.jpeg

00e510eb525837cd37acbcfdf9ac7c33.png

openVPN+SmartDNS=openDNS or smartVPN?

带认证的openVPN连接/断开操作指南

配置openVPN使用用户名密码认证

解决openVPN的递归路问题还是要从服务器端下手

通过Nginx做一个openVPN配置文件下载页面

配置优化:将openVPN的配置文件合4为1

Kali Linux开启SSH远程登录

配置Kali通过MSTSC连接远程桌面

使用Python批量处理Excel的内容

如何使用Python提取Excel中固定单元格的内容

Ubuntu编译安装VPP23.02

相关文章:

将OpenWrt部署在x86服务器上

正文共:1234 字 40 图,预估阅读时间:2 分钟 如果你问ChatGPT有哪些开源的SD-WAN方案,他会这样答复你: 我们看到,OpenWrt也属于比较知名的开源SD-WAN解决方案。当然,在很久之前,我就发…...

计算机视觉:卷积神经网络(CNN)基本概念(一)

第一章:计算机视觉中图像的基础认知 第二章:计算机视觉:卷积神经网络(CNN)基本概念(一) 第三章:计算机视觉:卷积神经网络(CNN)基本概念(二) 第四章:搭建一个经典的LeNet5神经网络 一、引言 卷积神经网络&…...

企业文件共享中的权限管理与安全风险防范

在企业的日常运营中,文件共享是必不可少的一项工作。然而,文件共享过程中如果权限管理不当,极易引发安全风险,导致企业敏感信息泄露。因此,加强文件共享中的权限管理与安全风险防范,对于保障企业信息安全至…...

使用DeepSeek建立一个智能聊天机器人0.12

为了确保这段代码能够在Windows和Linux系统上都能正常运行,我考虑以下几个方面: 路径分隔符:在Windows和Linux中,文件路径的分隔符不同。Windows使用反斜杠(\),而Linux使用正斜杠(/)。我们可以使用 os.path.join 来处理路径,以确保跨平台兼容性。 消息框:tkinter.…...

国家队出手!DeepSeek上线国家超算互联网平台!

目前,国家超算互联网平台已推出 DeepSeek – R1 模型的 1.5B、7B、8B、14B 版本,后续还会在近期更新 32B、70B 等版本。 DeepSeek太火爆了!在这个春节档,直接成了全民热议的话题。 DeepSeek也毫无悬念地干到了全球增速最快的AI应用。这几天,国内的云计算厂家都在支持Dee…...

Deep seek学习日记1

Deepseek最强大的就是它的深度思考,并且展现了它的思考过程。 五种可使用Deep seek的方式(应该不限于这五种,后续嵌入deepseek的应该更多,多了解一点因为官网容易崩~~): 1.deep seek官网 2.硅基流动silicon…...

乐理笔记(持续更新)

单音与音程 单音:由一个音组成。 音程:由两个音组成,表示两个音之间的音高距离。 如何数音程: 单音程:9 - X,性质相反。例如,9度音程减去某个数,性质会相反。 复音程&#xff1a…...

【动态路由】系统Web URL资源整合系列(后端技术实现)【nodejs实现】

需求说明 软件功能需求:反向代理功能(描述:apollo、eureka控、apisix、sentinel、普米、kibana、timetask、grafana、hbase、skywalking-ui、pinpoint、cmak界面、kafka-map、nacos、gateway、elasticsearch、 oa-portal 业务应用等多个web资…...

PHP高效、轻量级表格数据处理库 OpenSpout ,很好用

OpenSpout 是一个高效、轻量级的 PHP 库,用于处理电子表格文件(如 Excel 和 CSV)。它支持读取和写入大型文件,且内存占用低。本文将详细介绍如何安装和使用 OpenSpout。 目录 安装 基本使用 高级功能 参考文档 安装 OpenSp…...

2010年上半年软件设计师考试上午真题的知识点整理(附真题及答案解析)

以下是2010年上半年软件设计师考试上午真题的知识点分类整理,涉及定义的详细解释,供背诵记忆。 1. 计算机组成原理 CPU与存储器的访问。 Cache的作用: 提高CPU访问主存数据的速度,减少访问延迟。存储器的层次结构: 包括寄存器、Cache、主存和…...

EventSource的使用

什么是EventSource EventSource 是一个用于服务器推送事件(Server-Sent Events, SSE)的接口,它允许服务器推送实时更新到浏览器。与 WebSocket 不同,SSE 是单向的(服务器到客户端),适用于更新频…...

【第12章:深度学习与伦理、隐私—12.3 深度学习模型的透明性与可解释性提升策略】

凌晨三点的ICU病房,AI辅助诊断系统将一位患者的肺炎误判为普通感冒——当主治医生要求查看诊断依据时,系统只能给出冷冰冰的概率数值。这场惊心动魄的误诊事件,掀开了深度学习可解释性危机的冰山一角。 一、模型透明的"第一性原理" 1.1 可解释性的三维度量 ![可…...

RocketMq中RouteInfoManger组件的源码分析

1.前言 RouteInfoManager 是 RocketMQ 中 NameServer 的核心组件之一,主要负责管理和维护整个 RocketMQ 集群的路由元数据信息。里面包含一些非常核心的功能:存储和管理 Broker 信息(broker的注册,broker心跳的维护)&…...

java八股文-mysql

1. 索引 1.1 什么是索引 索引(index)是帮助Mysql高效获取数据的数据结构(有序).提高数据的检索效率,降低数据库的IO成本(不需要全表扫描).通过索引列对数据进行排序,降低数据排序成本,降低了CPU的消耗. 1.2 mysql索引使用的B树? 1. 没有使用二叉树,最坏情况o&…...

Cherno C++ P55 宏

这篇文章我们讲一下C当中的宏。其实接触过大型项目的朋友可能都被诡异的宏折磨过。 宏是在预处理当中,通过文本替换的方式来实现一些操作,这样可以不用反复的输入代码,帮助我们实现自动化。至于预处理的过程,其实就是文本编辑&am…...

MybatisMybatisPllus公共字段填充与配置逻辑删除

Mybatis/MybatisPllus公共字段填充与配置逻辑删除 在开发过程中,很多时候需要处理一些公共字段,例如:创建时间、修改时间、状态字段等。这些字段通常会在插入或更新数据时进行填充,以便记录数据的变化和状态。同时,逻…...

VS Code User和System版区别【推荐使用System版本】and VSCode+Keil协同开发之Keil Assistant

VS Code User和System版区别 Chapter1 VS Code User和System版区别1. 对于安装而言2. 结束语 Chapter2 VS Code 安装、配置教程及插件推荐插件: Chapter3 VSCodeKeil协同开发之Keil Assistant1. 效果展示2. Keil Assistant简介3. Keil Assistant功能特性4. 部署步骤…...

MongoDB:listDatabases failed : not master and slaveOk=false

个人博客地址:MongoDB:listDatabases failed : not master and slaveOkfalse | 一张假钞的真实世界 异常描述 如果在MongoDB的SECONDARY上查询数据时会报如下错误信息: > show databases; 2018-09-20T17:40:55.3770800 E QUERY [thread…...

Python的那些事第二十二篇:基于 Python 的 Django 框架在 Web 开发中的应用研究

基于 Python 的 Django 框架在 Web 开发中的应用研究 摘要 Django 是一个基于 Python 的高级 Web 框架,以其开发效率高、安全性和可扩展性强等特点被广泛应用于现代 Web 开发。本文首先介绍了 Django 的基本架构和核心特性,然后通过一个实际的 Web 开发项目案例,展示了 Dj…...

【ISO 14229-1:2023 UDS诊断(会话控制0x10服务)测试用例CAPL代码全解析④】

ISO 14229-1:2023 UDS诊断【会话控制0x10服务】_TestCase04 作者:车端域控测试工程师 更新日期:2025年02月15日 关键词:UDS诊断、0x10服务、诊断会话控制、ECU测试、ISO 14229-1:2023 TC10-004测试用例 用例ID测试场景验证要点参考条款预期…...

Python爬虫实战:研究MechanicalSoup库相关技术

一、MechanicalSoup 库概述 1.1 库简介 MechanicalSoup 是一个 Python 库,专为自动化交互网站而设计。它结合了 requests 的 HTTP 请求能力和 BeautifulSoup 的 HTML 解析能力,提供了直观的 API,让我们可以像人类用户一样浏览网页、填写表单和提交请求。 1.2 主要功能特点…...

深入浅出Asp.Net Core MVC应用开发系列-AspNetCore中的日志记录

ASP.NET Core 是一个跨平台的开源框架,用于在 Windows、macOS 或 Linux 上生成基于云的新式 Web 应用。 ASP.NET Core 中的日志记录 .NET 通过 ILogger API 支持高性能结构化日志记录,以帮助监视应用程序行为和诊断问题。 可以通过配置不同的记录提供程…...

css的定位(position)详解:相对定位 绝对定位 固定定位

在 CSS 中,元素的定位通过 position 属性控制,共有 5 种定位模式:static(静态定位)、relative(相对定位)、absolute(绝对定位)、fixed(固定定位)和…...

【HTML-16】深入理解HTML中的块元素与行内元素

HTML元素根据其显示特性可以分为两大类:块元素(Block-level Elements)和行内元素(Inline Elements)。理解这两者的区别对于构建良好的网页布局至关重要。本文将全面解析这两种元素的特性、区别以及实际应用场景。 1. 块元素(Block-level Elements) 1.1 基本特性 …...

基于TurtleBot3在Gazebo地图实现机器人远程控制

1. TurtleBot3环境配置 # 下载TurtleBot3核心包 mkdir -p ~/catkin_ws/src cd ~/catkin_ws/src git clone -b noetic-devel https://github.com/ROBOTIS-GIT/turtlebot3.git git clone -b noetic https://github.com/ROBOTIS-GIT/turtlebot3_msgs.git git clone -b noetic-dev…...

Java数值运算常见陷阱与规避方法

整数除法中的舍入问题 问题现象 当开发者预期进行浮点除法却误用整数除法时,会出现小数部分被截断的情况。典型错误模式如下: void process(int value) {double half = value / 2; // 整数除法导致截断// 使用half变量 }此时...

Git常用命令完全指南:从入门到精通

Git常用命令完全指南:从入门到精通 一、基础配置命令 1. 用户信息配置 # 设置全局用户名 git config --global user.name "你的名字"# 设置全局邮箱 git config --global user.email "你的邮箱example.com"# 查看所有配置 git config --list…...

【学习笔记】erase 删除顺序迭代器后迭代器失效的解决方案

目录 使用 erase 返回值继续迭代使用索引进行遍历 我们知道类似 vector 的顺序迭代器被删除后,迭代器会失效,因为顺序迭代器在内存中是连续存储的,元素删除后,后续元素会前移。 但一些场景中,我们又需要在执行删除操作…...

【从零开始学习JVM | 第四篇】类加载器和双亲委派机制(高频面试题)

前言: 双亲委派机制对于面试这块来说非常重要,在实际开发中也是经常遇见需要打破双亲委派的需求,今天我们一起来探索一下什么是双亲委派机制,在此之前我们先介绍一下类的加载器。 目录 ​编辑 前言: 类加载器 1. …...

深入浅出Diffusion模型:从原理到实践的全方位教程

I. 引言:生成式AI的黎明 – Diffusion模型是什么? 近年来,生成式人工智能(Generative AI)领域取得了爆炸性的进展,模型能够根据简单的文本提示创作出逼真的图像、连贯的文本,乃至更多令人惊叹的…...