华为CT6100双千M路由记录
该文章仅仅记录使用CT6100的流程,不提供任何参考和建议。
一、简介
- 设备:华为CT6100瘦客服端,J1800cpu,不包含外壳,有双千M网口,2G内存+8G硬盘。
- 系统:esir的高大全openwrt版本
- 用途:对lan设备进行学习上网和广告拦截,跑一些docker应用,以及尽可能低功耗(6W,一点也不低)
二、系统安装
1. 设备连接
问题:收到就发现不对劲了,上面没有HDMI接口。
解决:幸好的是,具有24P+5P的DVI接口,购买后接上即可成功显示。
2. BIOS设置
问题:最开始的时候,由于跳不进去系统,进行了默认配置操作,结果开机进入boot menu跳不出来
解决:在BOOT CSM设置中,将BOOT NC设置成Disable,其他看情况设置。
3. 系统烧录
问题:由于openwrt是IMG文件,只能烧录到U盘中,但是想要转移到系统硬盘中。
解决:使用dd命令,参考博客:openwrt如何写入硬盘,具体步骤如下:
- 首先U盘烧录一个系统,比如ubuntu或者直接openwrt,我这直接用的是openwrt高大全
- 扩容op:由于op内存不够,上传不了待烧录的img设备,需要先扩容。方法就是磁盘管理->修改->挂载点到/overlay
- 上传到op:使用文件管理,将文件上传到/opt或者/overlay文件夹中
- 格式化硬盘:烧录前需要对硬盘进行格式化,使用命令行cfdisk,对sda硬盘进行删除。
- 烧录op:使用dd命令:
dd if=/overlay/openwrt.img of=/dev/sda
- 启动系统:拔掉U盘重启,或者在BIOS中设置启动为HDD
- 端口:默认外面ETH1接wan,里面ETH0接lan
4. 系统扩容
问题:由于OP的默认容量不够,剩余6G硬盘没有用上,需要进行扩容,包括两方面:/overlay和/opt。其中/overlay是软件包的占用空间,建议至少分配到1.6G,然后/opt是docker的空间,将剩余空间全部分配。
注意:以上系统结构是基于ESIR的固件进行配置的,其他OP可能不是同一个类型的空间分配。更多了解ESIR的扩容,可以看油罐的EISR专栏,里面介绍了为啥是/overlay和/opt,以及他们的作用。
解决:具体步骤如下:
- 剩余磁盘分区并格式:磁盘管理中,对磁盘进行修改,将剩余空间进行分区,分别1.6和5.2G,并格式化为EXT4。
- 重启:强烈建议重启,多个步骤可能一下子完成不了导致各种问题。
- 挂载磁盘:在挂载点进行磁盘挂载,分别挂载/overlay和/opt。挂载一个重启一次,防止失败。
- 查看软件包和docker中的空间,应该分别为1G和4.8G,这是由于初始化文件已经占用了一部分了。
- 同样方法可以挂载其他硬盘或者U盘。
5. DNS服务
问题:前面提高共有两个需求,分别为学习上网和广告拦截,使用的分别是Adguard home和OPC,如果让他们共同处理呢?
解决:使用的网络逻辑为:客户端->dnsmsq->Adguard->OPC,据说是比较好的结构,然后DHCP还是由OP实现。具体方法如下:
- 启动Adguard,设置为54端口(因为dnsmsq是53已经占用了),并作为dnsmsq的上有服务器,设置如下:
- Adguard上游 DNS 服务器和Bootstrap DNS 服务器设置为:127.0.0.1:7874,表示数据会进入OPC。如果不走OPC,则分别使用以下DNS:
223.5.5.5 114.114.114.114 8.8.8.8 8.8.4.4 101.226.4.6 tls://dot.360.cn https://doh.360.cn/dns-query https://dns.alidns.com/dns-query tls://dns.alidns.com tls://dns.google
61.139.2.69 211.137.96.205 8.8.8.8 8.8.4.4
- Adguard DNS黑名单设置:推荐以下:
https://easylist-downloads.adblockplus.org/easylistchina.txt
https://easylist-downloads.adblockplus.org/easyprivacy.txt
https://raw.githubusercontent.com/cjx82630/cjxlist/master/cjx-annoyance.txt
https://www.i-dont-care-about-cookies.eu/abp/
- OP DNS设置:设置DNS转发为:127.0.0.1#54,表明dnsmsq的上游是Adguard
- OPC设置:启动OPC,在DNS中设置本地 DNS 劫持为停用。
- 综上,设置完毕
三、系统优化
1. 上电自动开机
待解决
2. 外壳设计
打算便宜到底,使用3D打印
3. 功耗优化
看能不能通过设置CPU频率,降低工号
4. 散热设置
加一个小小的散热风扇
5. docker应用
看看这个2G+8G能跑个啥docker应用来
6. 最后卖掉
如果真的是6W功率,还不如用ALL in Boom好,一个N5105的才9W功耗,还能跑NAS等
相关文章:

华为CT6100双千M路由记录
该文章仅仅记录使用CT6100的流程,不提供任何参考和建议。 一、简介 设备:华为CT6100瘦客服端,J1800cpu,不包含外壳,有双千M网口,2G内存8G硬盘。系统:esir的高大全openwrt版本用途:对…...

【AcWing-Python-785】快速排序
题目:https://www.acwing.com/problem/content/description/787/对应视频讲解:https://www.acwing.com/video/227/题目描述注意本题数据已加强。快速排序过程中,如果每次取区间起点或者终点作为分界点,则会超时。分界点换成随机值…...

从 JDK 8 到 JDK 18,Java 垃圾回收的十次进化
经历了数千次改进,Java 的垃圾回收在吞吐量、延迟和内存大小方面有了巨大的进步。 2014 年3 月 JDK 8 发布,自那以来 JDK 又连续发布了许多版本,直到今日的 JDK 18 是 Java 的第十个版本。借此机会,我们来回顾一下 HotSpot JVM 的…...

虚拟机VMware Workstation Pro环境搭建
VMware Workstation Pro是一款虚拟化工具,允许用户在Windows PC上运行多个操作系统。这个平台提供一个安全和独立的环境,让用户在使用前,可以建立和测试应用程序、检查修补程序,以及尝试不同的操作系统。它附有虚拟机库 它允许用户…...

【华为OD机试模拟题】用 C++ 实现 - 敏感字段加密(2023.Q1)
最近更新的博客 华为OD机试 - 入栈出栈(C++) | 附带编码思路 【2023】 华为OD机试 - 箱子之形摆放(C++) | 附带编码思路 【2023】 华为OD机试 - 简易内存池 2(C++) | 附带编码思路 【2023】 华为OD机试 - 第 N 个排列(C++) | 附带编码思路 【2023】 华为OD机试 - 考古…...
关于Java方法重写的一些反思
最近在开发中遇到一个关于Java方法重写的一些问题,对于方法重写的用法以及可能导致的问题产生了一些思考,本文用于记录下这些想法。 问题场景 我们首先来看两段代码: Override protected void onActivityResult(int requestCode, int resu…...

【C语言进阶】文件的顺序读写、随机读写、文本文件和二进制文件、文件读取结束的判定以及文件缓冲区相关知识
📝个人主页:Sherry的成长之路 🏠学习社区:Sherry的成长之路(个人社区) 📖专栏链接:C语言进阶 🎯长路漫漫浩浩,万事皆有期待 文章目录1.文件操作1.1 概述…...

图形编辑器:拖拽阻塞优化
大家好,我是前端西瓜哥。在图形编辑器中,想象这么一个场景,我们撤销了一些重要的操作,然后想选中一个图形,看看它的属性。你点了上去,然后你发现你再也无法重做了。 你以为你点了一下,但其实你…...
c++ 的 Eigen库写 AX=XB的矩阵求解代码
1.AXXB的矩阵求解代码(3*3) #include <iostream> #include <Eigen/Dense>int main() {// 定义矩阵A和BEigen::MatrixXd A(3, 3);A << 1, 2, 3,4, 5, 6,7, 8, 9;Eigen::MatrixXd B(3, 3);B << 10, 11, 12,13, 14, 15,16, 17, 18;// 求解AXXBEigen::Mat…...

正点原子linux驱动篇
linux驱动开发与裸机开发的区别 裸机直接操作寄存器,有些mcu提供了库,但还是很底层 1、linux驱动开发直接操作寄存器很麻烦不现实,主要是根据linux驱动框架进行开发(就是有很多操作都是一样的,我们只需要对一个程序模…...

MATLAB绘制雷达图/蜘蛛图
雷达图/蜘蛛图 1 方法一 函数来源为MATLAB | 如何使用MATLAB绘制雷达图(蜘蛛图) 1.1 调用函数 1.2 案例 2 方法二 函数来源为MATLAB帮助-spider_plot 2.1 调用函数 语法(Syntax): spider_plot(P)spider_plot(P, Name, Value, ...)h …...
算法入门,十字路口选择的案例,如果是南方,则向前行
从if判断start; 十字路口的案例 class HelloWorld { static void Main(string[] args) { /* Write C# code in this online editor and run it. */ Console.WriteLine("Hello World!"); string f…...

父传子与子传父步骤
父传子: 问题:父页面中引入子组件 把想要传给子页面的值用在子组件中用 :值“值” (用同一个值好区分)来绑定。 在子页面中用props接收 子组件不能改变父组件传过来的值。(传多个页面的时候是,比如父传孙的时候我会…...
Java concurrency - Task Execution
1.在单个线程里处理所有的请求:接受请求-处理请求 优点:逻辑简单 缺点:吞吐量低,资源利用率低,响应时间长 2.每个任务分配一个单独的线程来处理: 接受请求-创建线程-在线程里处理请求 优点: …...

浅谈BOM
什么是BOM BOM对于每个前端都不陌生,但是很多人都停留在表面,而没有深层次的研究过它。JavaScript有一个非常重要的运行环境就是浏览器,而且浏览器本身又作为一个应用程序需要对其本身进行操作,所以通常浏览器会有对应的对象模型…...

每日学术速递2.24
CV - 计算机视觉 | ML - 机器学习 | RL - 强化学习 | NLP 自然语言处理 Subjects: cs.LG 1.BUAA_BIGSCity: Spatial-Temporal Graph Neural Network for Wind Power Forecasting in Baidu KDD CUP 2022 标题:BUAA_BIGSCity:百度KDD CUP 2022风电预测…...
SpringBoot 面试问答总结(VIP典藏版)
1. 什么是 Spring Boot? Spring Boot 是 Spring 开源组织下的子项目,是 Spring 组件一站式解决方案,主要是简化了使用Spring 的难度, 简省了繁重的配置,提供了各种启动器,使开发者能快速上手。 2. 为什…...

CSS 定位网页元素【快速掌握知识点】
目录 前言 一、position: static 二、position: relative 三、position: absolute 四、position: fixed 五、position: sticky 前言 当我们在设计网页时,经常需要对网页中的元素进行定位,以便它们出现在我们想要的位置。在 CSS 中,我们…...
构建Docker基础镜像(ubuntu20.04+python3.7.1+chrome101+chromedriver101)
文章目录 一、前置条件1.下载 chrome【google-chrome-stable_current_amd64.deb】2.下载 chromedriver【chromedriver_linux64.zip】3.创建 ubuntu 镜像源文件【sources.list】二、构建方法1.构建目录1.创建DockerFile2.打包镜像一、前置条件 要先下载一个支持 linux 的 浏览器…...

最新最全Java面试知识
工作也有好些年了,从刚毕业到前几年看过无数的面试题,在这个过程中也作为面试官面试过其他人,总想着自己写一个面试总结,随着自我认识的变化,一些知识点的理解也越来越不一样了。写下来温故而知新。很多问题可能别人也…...

突破不可导策略的训练难题:零阶优化与强化学习的深度嵌合
强化学习(Reinforcement Learning, RL)是工业领域智能控制的重要方法。它的基本原理是将最优控制问题建模为马尔可夫决策过程,然后使用强化学习的Actor-Critic机制(中文译作“知行互动”机制),逐步迭代求解…...
逻辑回归:给不确定性划界的分类大师
想象你是一名医生。面对患者的检查报告(肿瘤大小、血液指标),你需要做出一个**决定性判断**:恶性还是良性?这种“非黑即白”的抉择,正是**逻辑回归(Logistic Regression)** 的战场&a…...

Psychopy音频的使用
Psychopy音频的使用 本文主要解决以下问题: 指定音频引擎与设备;播放音频文件 本文所使用的环境: Python3.10 numpy2.2.6 psychopy2025.1.1 psychtoolbox3.0.19.14 一、音频配置 Psychopy文档链接为Sound - for audio playback — Psy…...

3-11单元格区域边界定位(End属性)学习笔记
返回一个Range 对象,只读。该对象代表包含源区域的区域上端下端左端右端的最后一个单元格。等同于按键 End 向上键(End(xlUp))、End向下键(End(xlDown))、End向左键(End(xlToLeft)End向右键(End(xlToRight)) 注意:它移动的位置必须是相连的有内容的单元格…...

Aspose.PDF 限制绕过方案:Java 字节码技术实战分享(仅供学习)
Aspose.PDF 限制绕过方案:Java 字节码技术实战分享(仅供学习) 一、Aspose.PDF 简介二、说明(⚠️仅供学习与研究使用)三、技术流程总览四、准备工作1. 下载 Jar 包2. Maven 项目依赖配置 五、字节码修改实现代码&#…...

网站指纹识别
网站指纹识别 网站的最基本组成:服务器(操作系统)、中间件(web容器)、脚本语言、数据厍 为什么要了解这些?举个例子:发现了一个文件读取漏洞,我们需要读/etc/passwd,如…...

【C++进阶篇】智能指针
C内存管理终极指南:智能指针从入门到源码剖析 一. 智能指针1.1 auto_ptr1.2 unique_ptr1.3 shared_ptr1.4 make_shared 二. 原理三. shared_ptr循环引用问题三. 线程安全问题四. 内存泄漏4.1 什么是内存泄漏4.2 危害4.3 避免内存泄漏 五. 最后 一. 智能指针 智能指…...

Git 3天2K星标:Datawhale 的 Happy-LLM 项目介绍(附教程)
引言 在人工智能飞速发展的今天,大语言模型(Large Language Models, LLMs)已成为技术领域的焦点。从智能写作到代码生成,LLM 的应用场景不断扩展,深刻改变了我们的工作和生活方式。然而,理解这些模型的内部…...
tomcat指定使用的jdk版本
说明 有时候需要对tomcat配置指定的jdk版本号,此时,我们可以通过以下方式进行配置 设置方式 找到tomcat的bin目录中的setclasspath.bat。如果是linux系统则是setclasspath.sh set JAVA_HOMEC:\Program Files\Java\jdk8 set JRE_HOMEC:\Program Files…...

C++_哈希表
本篇文章是对C学习的哈希表部分的学习分享 相信一定会对你有所帮助~ 那咱们废话不多说,直接开始吧! 一、基础概念 1. 哈希核心思想: 哈希函数的作用:通过此函数建立一个Key与存储位置之间的映射关系。理想目标:实现…...