All in One mini主机搭建全屋主路由方案----自己实现自己的路由器,实现路由器自由!

1 接线

首先,需要保证家里当前状态是有网的状态(路由器有网并正常工作)

  1. 将鼠标键盘接在mini主机的USB口,HDMP/DP/VGA等接上显示器。
  2. 从路由器的lan口接一根网线出来接在mini主机的ETH0上,接在mini主机上保证mini主机在安装PVE以及虚拟路由器OpenWRT的时候有网。
  3. 用网线将mini主机的最后一个编号的网口(我的是ETH3)接在电脑上(可以用其他接口,我喜欢用最后一个口)。该网口将会作为mini主机宿主机部分的网口,负责给mini主机宿主机部分供网,以及后续管理该mini主机的宿主机。该网口一定不要在虚拟路由器开启了开机自启动的情况下直通给OpenWRT/爱快等虚拟路由器,否则将会无法管理mini主机了。

2 安装PVE

安装PVE操作系统。
这里有几个注意事项:

2.1 管理网口设置

  1. 管理网口设置为刚刚连接电脑的最后一个网口,我的mini主机是四网口,最后一个网卡对应于enp4s0。如果你的是6网口,一般是enp6s0。
  2. 设置管理网络ip地址,设置为192.168.99.2/24(之所以设置为192.168.99.2是应为192.168.99.1是准备留给虚拟路由器的,该虚拟路由器将会作为整个家庭主路由器。)
  3. 设置网络的网关为192.168.99.1(现在安装系统的时候这个没有用处,但是系统装完,虚拟路由器配置完成以后,上网需要使用网关与外界通信)

2.1.1 相关原理

  1. IP地址 (Internet Protocol Address)
    定义:
    IP地址是互联网上唯一标识网络设备(如计算机、打印机、路由器等)的逻辑地址。它遵循TCP/IP协议族的规定,确保全球范围内的设备能够互相通信。
    格式:
    对于IPv4(目前最常用的一种版本),IP地址由四个字节组成,每个字节的值介于0到255之间,各字节之间用点号(.)分隔,例如 192.168.1.10。
    示例:
    设备IP地址:假设有一台个人电脑,其IP地址被配置为 192.168.1.100。这表示该电脑在网络中被赋予了这个唯一的标识符,用于与其他设备进行网络通信。
  2. 子网 (Subnet)
    定义:
    子网是在一个较大的IP地址空间中,通过应用子网掩码划分出的逻辑上的小网络。子网内的设备共享相同的网络前缀,可以相互通信而无需通过路由器转发。通俗来说,就是局域网。在一个子网内,就是在同一个局域网内。
    示例:
    如果一个网络的ip地址为192.168.99.10,子网掩码为255.255.255.0,则表明192.168.99.10这台设备与192.168.99.0~192.168.99.255范围内的所有设备均在同一子网内。
  3. 子网掩码 (Subnet Mask)
    定义:
    子网掩码通常见到的是255.255.255.0这样的格式。实际上子网掩码是一个与IP地址长度相同的32位二进制数,其值由连续的“1”和“0”组成,用于标识IP地址中哪一部分属于网络地址,哪一部分属于主机地址。例如子网掩码255.255.255.0表示,ip地址的前3个数字的为网络地址,最后一个数字是主机地址,例如192.168.99.10,子网掩码为255.255.255.0表示192.168.99为网络地址,10为主机地址。所以,192.168.99.x的所有机器均为同一子网中的机器。
    子网掩码与IP地址进行逻辑与运算,可以确定该IP地址所属的网络和子网。
    通常还有一种写法,192.168.99.10/24,/24表示前24为为“1”,后8为为“0”(定义中所说,32为二进制数,即11111111.11111111.11111111.00000000。所以转换成10进程,则是255.255.255.0。
    示例:
    子网掩码表示:对于子网A(192.168.200.0/24),其子网掩码为 255.255.255.0,二进制表示为 11111111.11111111.11111111.00000000。前24位为“1”,表示网络地址部分;后8位为“0”,表示主机地址部分。
    子网掩码应用:如果有一个设备的IP地址为 192.168.200.2,通过与子网掩码 255.255.255.0 进行逻辑与运算,可以得知其网络地址为 192.168.200.0,因此该设备属于子网192.168.200.0。
  4. 网关 (Gateway)
    定义:
    网关是网络层设备(如路由器)的一个接口,它作为不同网络之间的桥梁,负责将源自一个网络的数据包转发到另一个网络。网关通常具有路由功能,能够根据目标IP地址和路由表信息决定数据包的转发路径。
    示例:
    家庭网络中,我的路由器ip地址是192.168.99.1,我的PC电脑的ip地址为192.168.99.5,如果此时我想通过PC电脑访问github网站,可以通过打开网站 http://tool.chinaz.com/dns/,在A类型中填写github.com,再点击监测按钮查询ip地址得知,github的ip地址为20.205.243.166,通过前面的子网知识可知,PC电脑与github服务器并不在同一个子网中,因此,PC将把与github的连接转发给网关,即PC将数据包发给192.168.99.1的路由器,随后路由器再将数据包发给20.205.243.166的github网站。

2.2 PVE宿主机上创建网桥

  1. 由于我的mini主机有4个网卡,已经存在一个网桥,用于管理pve,因此,我们再创建3个网桥,分别对应其余3个网卡。
  2. 将vmbr0对应enp1s0,vmbr1对应enp2s0,vmbr2对应enp3s0,vmbr3对应enp4s0。
  3. 重启

3 安装虚拟路由器(家庭主路由器)OpenWRT

  1. 创建虚拟机
  2. 给虚拟机创建网络,将接着路由器网络的ETH0对应的enp1s0所对应的vmbr0借给虚拟机使用。使用E1000网卡模式(当前安装OopenWRT阶段用来连接互联网,保证可以正常下载所需要的各种安装包以及驱动)。
  3. 导入虚拟路由器的硬盘
  4. qm importxxxxx
  5. 给虚拟机创建网络,将路由器管理网络的ETH3对应的enp4s0所对应的vmbr3借给虚拟机使用,使用E1000网卡模式(后续有望以后将使用该网络来给mini主机PVE宿主机部分供网)
  6. 直通剩下的两个网口ETH1和ETH2给OpenWRT。

3.1 安装网卡驱动

3.1.1 PC电脑访问OpenWRT路由器

PC使用浏览器访问192.168.99.1,默认用户名为root,默认密码为空(不填)

3.1.2 判断虚拟路由器OpenWRT是否有网

使用命令

opkg update

进行更新,如果报错,则表示虚拟路由器OpenWRT无法连接互联网。

3.1.3 设置OpenWRT的lan口和wan口

  1. 在PVE的管理页面上,打开OpenWRT控制台窗口,输入vi /etc/config/network,br-lan口设置为eth0,br-wan口设置为eth1。
  2. reboot

3.1.4 安装驱动

我直通给OpenWRT的网卡是英特尔i226,因此

  1. 安装kmod-igc驱动。
  2. 安装中文语言包(搜索zh),安装lua-base的zh简体中文语言包
  3. reboot

3.2 接入互联网

接线

将PVE迷你主机中ETH0上的从路由器接过来线拔掉,把路由器上的WAN口的线拔掉,接到mini主机上的ETH0口上,删除PVE中的vmbr0,在PVE管理界面删除OpenWRT的网络vmbr0,再将EHT0直通给OpenWRT虚拟路由器

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/4790.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Leetcode—1329. 将矩阵按对角线排序【中等】(unordered_map、priority_queue)

2024每日刷题&#xff08;121&#xff09; Leetcode—1329. 将矩阵按对角线排序 实现代码 class Solution { public:vector<vector<int>> diagonalSort(vector<vector<int>>& mat) {const int m mat.size();const int n mat[0].size();unorder…

OceanBase 分布式数据库【信创/国产化】- OceanBase 集群配置项

本心、输入输出、结果 文章目录 OceanBase 分布式数据库【信创/国产化】- OceanBase 集群配置项前言OceanBase 数据更新架构OceanBase 集群配置项OceanBase 配置项级别配置项的生效方式查看配置项的级别和生效方式OceanBase 分布式数据库【信创/国产化】- OceanBase 集群配置项…

主流的虚拟机推荐

昨天提到微软与 IBM 合作在 MIT 许可证下发布了 MS-DOS 4.00 的源代码。此次发布的源代码包含了 MS-DOS 4.00 Beta版源码以及相关编译文档。 地址&#xff1a;https://blog.csdn.net/bugsycrack/article/details/138267118?spm1001.2014.3001.5501 感兴趣的人可以在各种虚拟…

【Spring AI】04. 转录 API-OpenAI

文章目录 OpenAI 转录功能先决条件自动装配&#xff08;Auto-configuration &#xff09;转录选项参数 运行时选项参数手动配置示例代码 OpenAI 转录功能 Spring AI 支持 OpenAI 的转录模型。 先决条件 您需要使用 OpenAI 创建一个 API 才能访问 ChatGPT 模型。在 OpenAI 注册…

【Vue】监听div宽高的变化(动态渲染echarts宽高)

一、问题 echarts 未监听到 echarts 宽高变化而动态变化 <template> <div id"echart" ref"echart" style"width: 100%; height: 300px"></div> </div> </template> <script> export default { data() {…

R语言--图形绘制

一&#xff0c;绘制简单图形 c1<- c(10,20,30,40,50) c2<-c(2,7,15,40,50) plot(c1,c2,typeb) 具体参数请参考R语言中的绘图技巧1&#xff1a;plot()函数参数汇总_r语言plot参数设置-CSDN博客 c1<- c(10,20,30,40,50) c2<-c(2,7,15,40,50) plot(c1,c2,typeb,col#…

这些小众工作软件让你事半功倍

大家好&#xff0c;我是追求高效工作的小红书种草小能手&#xff01;今天要和大家分享几款超实用的工作软件&#xff0c;它们可能不像那些大牌软件那样家喻户晓&#xff0c;但绝对能让你的工作生活焕然一新&#xff01;&#x1f31f; 1️⃣《亿可达》- &#x1f5a5;️自动化办…

中信银行深耕养老金融,构建多支柱养老金体系新格局

在应对人口老龄化这一全球性挑战的过程中&#xff0c;养老金融已成为中国金融领域的重要篇章。2024年4月25日&#xff0c;中信银行行长刘成在财新传媒主办的“2024中国养老产业论坛”上发表主旨演讲&#xff0c;深入阐述了养老金金融、养老服务金融、养老产业金融互促互进的大趋…

第8章 软件工程

一、软件工程概述 &#xff08;一&#xff09;软件危机 1、含义&#xff1a;落后的软件生产方式无法满足迅速增长的计算机软件需求&#xff0c;从而导致软件开发与维护过程中出现一系列严重问题的现象。 2、解决方案&#xff1a;引入软件工程的思想。 &#xff08;二&#x…

【Qt】无法创建或打开CMake项目

无法创建或打开CMake项目 没有CMake选项 原因 卸载重装了qt&#xff0c;安装时勾选了cmake&#xff0c;发现还是一样没有。。。 后面发现是插件里没有勾选上CMake。。。很无语 不是应该默认就有的吗 不懂了 解决 插件勾选重启就好了

加密,解密 crypto-js、 计算哈希值,js-sha3

加密&#xff0c;解密 crypto-js、 计算哈希值&#xff0c;js-sha3 文章目录 加密&#xff0c;解密 crypto-js、 计算哈希值&#xff0c;js-sha3crypto-js安装 crypto-js使用 crypto-js js-sha3安装 js-sha3使用 js-sha3 在项目中一些不能明文传输&#xff0c;就需要把明文进行…

Java List 获取部分组成new list,获取两个list相同/不同的内容

获取List中的一项 List<String> _outingCntry list.stream().map(OSzItem::getGroup). collect(Collectors.toList()); 获取List中的多项 List<vo> list new ArrayList<>(); Map<String, String> map list.stream().collect( Collectors.toMap(v…

Python 操作PDF图片 – 添加、替换、删除PDF中的图片

PDF文件中的图片可以丰富文档内容&#xff0c;提升用户的阅读体验。除了在PDF中添加图片外&#xff0c;有时也需要替换或删除其中的图片&#xff0c;以改进视觉效果或更新信息。文本将提供以下三个示例&#xff0c;介绍如何使用Python 操作PDF文件中的图片&#xff1a; 目录 …

qt学习篇---界面按键关联(信号和槽)

目录 1.qt基础 2.做一个界面 创建project UI界面设计 信号和槽 1.控件改名字 2.什么是信号和槽 3.怎么关联信号和槽 自动关联 手动关联 1.qt基础 qt可移植性强&#xff0c;不久会用到MCU。很有意义学习 2.做一个界面 创建project 不要中文路径 选择QWidget .pro文件…

机器学习之K-medians聚类

K-medians聚类是一种聚类算法,类似于K-means,但是它使用中位数来确定簇的中心,而不是平均值。这种方法在处理数据中存在离群值或异常值时比较有用,因为中位数对离群值不敏感。K-medians的步骤与K-means类似,但在每次迭代中,它使用中位数来更新簇的中心。 K-medians的算法…

基于Lucene的搜索引擎设计与实现:技术总结与展望

论文、答辩资料、源代码见下 引言 在大数据时代背景下&#xff0c;如何快速有效地从海量网络信息中检索出有价值的信息&#xff0c;是当前技术领域面临的一大挑战。本次毕业设计的核心工作是设计并实现一个基于Lucene的搜索引擎&#xff0c;旨在提高信息检索的效率和准确性。…

强力的应用容器引擎---------Docker的资源控制

目录 一、CPU 资源控制 1.1cgroups有四大功能 1.2设置CPU使用率上限 1.2.1查看CPU使用率 1.2.2进行CPU压力测试 1.2.3设置50%的比例分配CPU使用时间上限 1.3设置CPU资源占用比&#xff08;设置多个容器时才有效&#xff09; 1.3.1创建两个容器为hua1 和hua2&#xff0c…

怎么检查ubuntu22.04服务器机器被挖矿了

如果怀疑你的 Ubuntu 22.04 系统被挖矿程序占用&#xff0c;可以通过一系列检查步骤来确认这一疑问。这些步骤可以帮助你发现系统是否存在未授权的挖矿活动&#xff1a; 1. 检查CPU和GPU使用率 挖矿程序通常会导致CPU或GPU的使用率异常升高。使用以下命令检查系统资源的使用情…

秋招后端开发面试题 - Java多线程(下)

目录 Java多线程前言面试题synchronized&#xff1f;作用&#xff1f;synchronized 怎么使用&#xff1f;构造方法可以用 synchronized 修饰吗&#xff1f;synchronized 底层原理了解吗&#xff1f;除了原子性&#xff0c;synchronized 可见性&#xff0c;有序性&#xff0c;可…

限流--4种经典限流算法讲解--单机限流和分布式限流的实现

为什么需要限流 系统的维护使用是需要成本的&#xff0c;用户可能使用科技疯狂刷量&#xff0c;消耗系统资源&#xff0c;出现额外的经济开销问题&#xff1a; 控制成本>限制用户的调用次数用户在短时间内疯狂使用&#xff0c;导致服务器资源被占满&#xff0c;其他用户无…