openwrt安装与旁路由 以玩客云为例

news2024/12/29 10:33:06

鉴于安了wfnb/onecloud 23年的bata版本 结果发现进入docker 连make config apt yum apk curl等命令都没有……而且curl下载很慢 得选6.0哪个版本
反正就是 安不了istore 所以 直接刷人家的成品算了 = =

为什么要使用软路由、旁路由

普通的路由器往往集无线信号转发、网关、DNS 服务器等角色为一身,其中的“网关”角色负责路由器内部数据的处理。但因为一般家用的路由器硬件性能很有限,在运行一些比较吃资源的应用(如酸酸乳、去广告等)时,几乎会占满所有硬件资源,导致路由器网络/系统不稳定等诸多问题。既然路由器的硬件性能有限,那可不可以把网关的重任交给硬件性能更好的设备去做,让路由器安安心心地做好它的老本行 – 无线转发呢?
这样,每个角色各司其职,路由器肩上的任务轻了,即使是油管 4K 也能轻松跑满网速了,而旁路由也结束了它吃灰的命运。由此资源的充分利用,一举两得。

在接下来的文章中,我们将在 Docker 容器中运行 OpenWrt,并通过设置,让 Docker 容器中的 OpenWrt 网关接管路由器自身的网关,减轻路由器的负担,同时,由于网关被 OpenWrt 接管,所以 OpenWrt 中的大部分应用都是可用的,比如酸酸乳,V2ray,去广告等。做个不恰当的比喻, OpenWrt 网关接管路由器自身的网关后,你可以理解为路由器是 OpenWrt 的一块外置网卡。

二、安装openwrt+旁路由设置一体版(推荐)

sulinggg/openwrt 的docker镜像
https://hub.docker.com/r/sulinggg/openwrt
https://mlapp.cn/376.html

这个版本包含了openclash、shardow、去广告等软件,且内置了旁路由 无需繁琐设置 但是不可网页上传ipk安装插件且clash需要手动安装内核

1.打开网卡混杂模式

sudo ip link set eth0 promisc on

2.创建网络

(须结合实际网络情况,不能照抄命令)

docker network create -d macvlan --subnet=192.168.1.0/24 --gateway=192.168.1.1 -o parent=eth0 macnet

这一条命令需要根据树莓派所处的网络环境来做修改,可以使用 sudo ifconfig命令来查看旁路由 eth0 网卡获得的 IP 地址,如果旁路由获得的 IP 地址为 192.168.2.154,那么说明树莓派处在 192.168.2.x网段,相应的,命令中的192.168.1.0和192.168.1.1需要被替换成 192.168.2.0和192.168.2.1:

docker network create -d macvlan --subnet=192.168.2.0/24 --gateway=192.168.2.1 -o parent=eth0 macnet

此时,我们使用 docker network ls命令可以看到网络macnet已建立成功:

$ docker network ls
NETWORK ID          NAME                DRIVER              SCOPE
10e676133746        bridge              bridge              local
f5308b94e8fa        host                host                local
16745ea66852        macnet              macvlan             local
5e72e41ea02a        none                null                local

3.拉取镜像

注意sulinggg/openwrt的其他本不行,会一直重启无法使用的。sulinggg/openwrt:arm_cortex-a5_vfpv4 只有这个版本可以

若身处国内,为提高拉取速度,请拉取阿里云仓库中的镜像:

docker pull registry.cn-shanghai.aliyuncs.com/suling/openwrt:latest

同时小苏也提供存放在 Docker 官方仓库 中的镜像:

docker pull sulinggg/openwrt:latest

镜像拉取完成后,我们可以执行docker images命令查看现存镜像:

$ docker images
REPOSITORY                                              TAG                 IMAGE ID            CREATED             SIZE
registry.cn-shanghai.aliyuncs.com/suling/openwrt        latest              4f4bc5dca2d9        3 hours ago         112MB
可见,镜像已成功拉取到本地。

4.创建并启动容器

docker run --restart always --name openwrt -d --network macnet --privileged registry.cn-shanghai.aliyuncs.com/suling/openwrt:latest /sbin/init

其中:

–restart always参数表示容器退出时始终重启,使服务尽量保持始终可用;

–name openwrt参数定义了容器的名称;

-d参数定义使容器运行在 Daemon 模式;

–network macnet参数定义将容器加入 maxnet网络;

–privileged 参数定义容器运行在特权模式下;

registry.cn-shanghai.aliyuncs.com/suling/openwrt:latest为 Docker 镜像名,因容器托管在阿里云 Docker 镜像仓库内,所以在镜像名中含有阿里云仓库信息;

/sbin/init定义容器启动后执行的命令。

启动容器后,我们可以使用 docker ps -a命令查看当前运行的容器:

$ docker ps -a
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
a26cee7cade6        openwrt:latest      "/sbin/init"        3 hours ago         Up 3 hours                              openwrt

若容器运行信息STATUS列为 UP状态,则说明容器运行正常。

5.进入容器并修改相关参数

(须结合实际网络情况,不能照抄配置)

docker exec -it openwrt bash

其中:

openwrt为容器名称;

bash为进入容器后执行的命令。

执行此命令后我们便进入 OpenWrt 的命令行界面,首先,我们需要编辑 OpenWrt 的网络配置文件:

vim /etc/config/network

我们需要更改 Lan 口设置:

config interface 'lan'
        option type 'bridge'
        option ifname 'eth0'
        option proto 'static'
        option ipaddr '192.168.1.100'
        option netmask '255.255.255.0'
        option ip6assign '60'
        option gateway '192.168.1.1'
        option broadcast '192.168.1.255'
        option dns '192.168.1.1'

其中:

所有的 192.168.123.x 需要根据树莓派所处网段修改,option gateway和option dns填写路由器的 IP,若树莓派获得的 IP 为 192.168.2.154,路由器 IP 为192.168.2.1,则需要这样修改:

config interface 'lan'
        option type 'bridge'
        option ifname 'eth0'
        option proto 'static'
        option ipaddr '192.168.2.100'
        option netmask '255.255.255.0'
        option ip6assign '60'
        option gateway '192.168.2.1'
        option broadcast '192.168.2.255'
        option dns '192.168.2.1'

option ipaddr 项目定义了 OpenWrt 的 IP 地址,在完成网段设置后,IP最后一段可根据自己的爱好修改(前提是符合规则且不和现有已分配 IP 冲突)。

6.重启网络

/etc/init.d/network restart

7.进入控制面板

在浏览器中输入第 5 步option ipaddr 项目中的 IP 进入 Luci 控制面板,若option ipaddr 的参数为 192.168.123.100,则可以在浏览器输入 http://192.168.123.100进入控制面板。

用户名:root

密码:password

8.关闭 DHCP 服务

在 “网络 - 接口 - Lan - 修改” 界面中,勾选下方的 “忽略此接口(不在此接口提供 DHCP 服务)”,并“保存&应用”。
在这里插入图片描述

9.主路由 DHCP 设置

进入路由器后台中,将主路由的 DHCP 的默认网关和 DNS 服务器设置为第 5 步中option ipaddr 项目中的 IP。

10.重新连接路由器

完成以上操作后,断开设备(如手机,电脑)与路由器的连接,重新连接路由器,连接路由器的设备将获取到我们设置到的 IP。

如果有其他问题

https://mlapp.cn/376.html 看这个网页 可能提到

二(1)非一体化教程之——安装openwrt(仅针对旁路由版)

以下以玩客云为例 其他也可通用

打开网卡混杂模式

ip link set eth0 promisc on

创建docker网络

docker network create -d macvlan --subnet=玩客云的ip/24 --gateway=主路由的ip -o parent=eth0 macnet

[↑自己根据 玩客云 所在网段修改,如:玩客云IP:10.1.2.13,则10.1.1.0/24 改成 10.1.2.0/24,10.1.1.1改成主路由地址]

拉取 OpenWRT 镜像

版本1 wfnb版玩客云镜像

#必须指定版本号
docker pull wfnb/onecloud:22-4-4 # 有一些自带插件 但是没有网页上传安装插件功能
# 也可使用beta版  没啥自带插件 但是可以网页上传安装插件 
# docker pull wfnb/onecloud:23-01-25-beta

# 作者 
#🔵墙裂建议使用 [ImmortalWrt 18.06] 版本的 23-01-25-alpha 镜像
#🔵体积小 超纯净 需要的插件皆可进入软件包自行安装  
#但是 自己安不是挺麻烦的··· 算了

如果不对 去看下dockerhub的镜像

然后 这些版本都没安yum、apt、apk等管理工具,make、curl等命令也没有 只有nano编辑 如果你之后想手动安装一些东西的话 估计很麻烦 比如istore 甚至curl下载也很慢 可以选择6.0那个小包 然后tar命令没添加gzip支持,用z参数也没用 反正你要折腾其他的就笔记麻烦

创建容器

docker run -d --name=openwrt --restart always --network macnet --ip 10.1.1.11 --privileged wfnb/onecloud:22-4-4 /sbin/init
  • name=OpenWrt 其中OpenWrt是容器名称,可以更改成你想要的,容器名称注意不要和其他容器一样,会冲突

  • ip 10.1.1.11 其中10.1.1.11是容器IP,可以更改成你想要的,是openwrt运行在哪个ip上,容器IP不要重复,这一项可删除

似乎改了也没用== 算了 就用默认的吧

修改OpenWrt IP

docker exec OpenWrt sed -e “s/10.1.1.13/你想分配给OpenWrt的IP/” -i /etc/config/network

OpenWrt 是容器名称,和你创建容器时的一致

镜像设置的默认IP是10.1.1.13,可通过该命令修改

beta版本的镜像的默认IP是10.1.1.13,需将上述10.1.1.11改为10.1.1.13

管理密码是 root 不是作者写的password

然后登录10.1.1.11即可

版本2 jyhking版玩客云镜像

教程地址 https://www.right.com.cn/forum/thread-8024126-1-1.html

拉取镜像

docker pull jyhking/onecloud:1.1

注意 只有1.1支持玩客云的arm32
1.2是arm64的 且只添加了 添加插件ttyd、netdata。 不用冒险去试1.2

创建容器

docker run -itd --name=OneCloud --restart=always --network=macnet --privileged=true jyhking/onecloud:1.1 /sbin/init

—name=OneCloud 其中OneCloud是容器名称,可以更改成你想要的,比如openwrt,容器名称注意不要和其他容器一样,会冲突

openwrt镜像运行成功,然后打开路由器后台,找到openwrt地址。
密码是password

版本3

xuanaimai/onecloud
这个 还没试过

二(2)非一体化教程之——设置旁路由

旁路由如何修改

因为是docker版 比较特殊 和直接安的不一样

简单来说就是 新建接口,选lan eth0的那个接口 应该是两个设备互相连接图标的 好像是桥接 然后静态地址
然后设置主路由地址和dns
忽略此接口
调整下防火墙

接口
网络 > 接口 > 修改
忽略此接口 ☑️ > 保存&应用
防火墙
网络 > 防火墙
基本设置 > 启用FullCone-NAT☑️ > 转发 - 接受 > 保存&应用

进入旁路由的管理界面。我们需要修改OpenWrt的LAN口的接口设置
如果有就直接编辑没有的话就新建,
在这里插入图片描述

特别注意设备选择在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

这里看上面新建那里 应该是一样的

拉到下面,一定要忽略此接口,就是记得打勾
在这里插入图片描述

设置好之后,请记得点击【保存】。这里划重点,不要点击【保存&应用】!不要点击【保存&应用】!不要点击【保存&应用】!不要点击【保存&应用】!不要点击【保存&应用】!不要点击【保存&应用】!不要点击【保存&应用】!不要点击【保存&应用】!
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

注意 这里 那三个应该都是允许

然后保存即可

到了这一步,我们玩客云这里的设置就算完成了。不过为了更保险,我们可以验证一下我们的设置有没有问题。
在这里插入图片描述

主路由如何修改

下一步我们就需要在路由器上进行一个简单的设置了。

进入路由器的后台,我们选择“内部网络—DHCP服务器”。

此时我们有两处需要更改:默认网关和DNS服务器!这两个地方全部改成玩客云的IP地址!

然后点击路由器的“保存或者应用”。此时我们的网络可能会有短暂的重启(大概10秒种),重启过后就正常了

Others

上网设备手动指定网关

如果路由器固件不支持自定义 DHCP 服务的网关及 DNS 地址(常见于路由器官方固件),或者只希望局域网下的个别设备接入旁路网关时,须在接入设备上做以下配置

需要在安卓的 WIFI 设置内将 IP 获取方式更改为“静态”或“手动”,其中:

“IP 地址”项目需要更改为网段内不冲突的地址;

“网关”或“路由器”项目需要更改为旁路网关 IP 地址;

“前缀长度”项目填写“24”;

“DNS”项目需要更改为旁路网关 IP 地址(两个 DNS 输入框填写一个就可以)。

玩客云如何安装istore的单独说

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

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

相关文章

JMeter工具的介绍,安装

一、本文学习目标 1、能知道JMeter的优缺点 2、能掌握JMeter的安装流程 3、能掌握JMeter线程组的设置 4、能掌握JMeter参数化的使用 5、能掌握JMeter直连数据库操作 6、能掌握JMeter的断言. 二、JMeter简介 (1)Jmeter详细介绍 **JMeter(A…

RTC 时间、闹钟

实时时钟RTC是一个独立的定时器。RTC模块拥有一个连续计数的计数器,在软件配置下,可以提供时钟日历的功能。修改计数器的值可以重新设置当前时间和日期 RTC还包含用于管理低功耗模式的自动唤醒单元。 在掉电情况下 RTC仍可以独立运行 只要芯片的备用电源…

MySQL数据库基础回顾与复习

MySQL数据库 一、原理定义概念 定义 数据库(Database)是按照数据结构来组织、存储和管理数据的建立在计算机存储设备上的仓库 数据库是长期储存在计算机内、有组织的、可共享的数据集合 分类: (1)非结构化数据: 数据相对来讲没…

QFluentWidgets: 基于 C++ Qt 的 Fluent Design 组件库

简介 QFluentWidgets 是一个基于 Qt 的 Fluent Designer 组件库,内置超过 150 个开箱即用的 Fluent Designer 组件,支持亮暗主题无缝切换和自定义主题色。搭配所见即所得的 Fluent Designer 软件,只需拖拖拽拽,不用编写一行 QSS&…

腾讯云服务器简介和使用流程

腾讯云服务器在云服务器CVM或轻量应用服务器页面自定义购买价格比较贵,但是自定义购买云服务器CPU内存带宽配置选择范围广,活动上购买只能选择固定的活动机,选择范围窄,但是云服务器价格便宜比较省钱。腾讯云服务器网来详细说下腾…

driver.js 扩展下次“不再提示”功能

文档地址:https://github.com/kamranahmedse/driver.js 官方demo:https://kamranahmed.info/driver.js/ /*** Title: 页面引导 ……* Author: JackieZheng* Date: 2023-08-16 10:43:31* LastEditTime: 2023-08-16 10:55:08* LastEditors:* Description:*…

找不到msvcp110.dll是什么意思?总结msvcp110.dll丢失修复方法分享

随着电脑技术的不断发展,我们也会遇到各种各样的问题。最近,我就遇到了一个问题:电脑丢失msvcp110.dll的困扰。这个问题让我深感无奈,但同时也让我学到了很多关于电脑维修和系统修复的知识。在这篇文章中,我将分享我的…

前端JavaScript入门到精通,javascript核心进阶ES6语法、API、js高级等基础知识和实战 —— Web APIs(五)

思维导图 Bom操作 一、Window对象 1.1 BOM(浏览器对象模型) <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta http-equiv"X-UA-Compatible" content"IEedge"><meta name"vi…

macOS Sonoma 正式版系统已发布,macos14值得更新吗

北京时间9月27日macOS Sonoma 正式版系统发布&#xff0c;为 Mac 带来一系列丰富新功能&#xff1a;优化小组件、升级视频会议、沉浸式游戏体验等&#xff0c;最新macos14值得更新吗&#xff1f;这里根据我一个月的试用beta版本体验来分享一下。 我使用的是M1芯片的MacBook air…

Java架构师功能设计和架构设计

目录 1 架构设计理念1.1 架构定义1.2 文档编写1.3 维护和改进1.4 验证实现1.5 总结 2 深入理解和认识架构设计2.1 架构设计关注哪些东西2.2 架构设计是一系列的活动不断演化和完善的过程2.3 架构设计跨越软工的全流程2.3.1 软工的全流程的原因 3 功能设计概念4 理解和认识功能设…

【Vue3】定义全局变量和全局函数

// main.ts import { createApp } from vue import App from ./App.vue const app createApp(App)// 解决 ts 报错 type Filter {format<T>(str: T): string } declare module vue {export interface ComponentCustomProperties {$filters: Filter,$myArgs: string} }a…

openwrt使用教程

openwrt 插件安装 首先 我们需要明确自己什么版本的cpu 进入docker 然后 cat /proc/cpuinfo# 查看CPU信息 uname -m# 查看CPU架构 cat /proc/meminfo# 查看内存使用情况 df -h# 查看磁盘的使用率 uname -a# 查看内核信息 opkg print-architecture# 可接受的架构arm a5 比较奇…

Maven超细致史上最全Maven下载安装配置教学(2023更新...全版本)建议收藏...赠送IDEA配置Maven教程

Maven安装与配置 Maven 的主要目标是让开发人员能够在最短的时间内了解开发工作的完整状态。为了实现这一目标&#xff0c;Maven 处理了几个关注领域&#xff1a; 简化构建过程 提供统一的构建系统 提供优质的项目信息 鼓励更好的发展实践 基于项目对象模型 (POM&#xff0…

找不到msvcr110.dll丢失的解决方法-常见修复方法分享

在计算机使用过程中&#xff0c;我们可能会遇到 msvcr110.dll 丢失的问题。msvcr110.dll 是 Microsoft Visual C Redistributable 的一部分&#xff0c;是一个运行库文件&#xff0c;用于支持一些软件和游戏的运行。如果它丢失或损坏了&#xff0c;那么你就需要进行修复了。本文…

【C语言】循环结构程序设计(第二部分 -- 习题讲解)

前言:昨天我们学习了C语言中循环结构程序设计&#xff0c;并分析了循环结构的特点和实现方法&#xff0c;有了初步编写循环程序的能力&#xff0c;那么今天我们通过一些例子来进一步掌握循环程序的编写和应用。 &#x1f496; 博主CSDN主页:卫卫卫的个人主页 &#x1f49e; &am…

conda安装使用jupyterlab注意事项

文章目录 一、conda安装1.1 conda安装1.2 常见命令1.3 常见问题 二、jupyterlab2.1 jupyterlab安装和卸载2.2 常见错误2.2.1 版本冲突&#xff0c;jupyterlab无法启动2.2.2 插件版本冲突 2.3 常用插件2.3.1 debugger2.3.2 jupyterlab_code_formatter 2.4 jupyter技巧 一、conda…

聊聊分布式架构——Http到Https

目录 HTTP通信协议 请求报文 响应报文 持久连接 状态管理 HTTPS通信协议 安全的HTTPS HTTP到HTTPS的演变 对称加密 非对称加密 混合加密机制 证书机构 SSL到底是什么 HTTPS是身披SSL外壳的HTTP HTTP通信协议 一次HTTP请求的通信流程&#xff1a;客户端浏览器通过…

【C++】STL简介(了解)

一、什么是STL STL (standard template libaray- 标准模板库 ) &#xff1a; 是 C 标准库的重要组成部分 &#xff0c;不仅是一个可复用的组件库&#xff0c;而且 是一个包罗数据结构与算法的软件框架 。 二、STL的版本 原始版本 Alexander Stepanov 、 Meng Lee 在惠普实验…

swift加载h5页面空白

swift加载h5页面空白 problem 背景 xcode swift 项目&#xff0c;WebView方式加载h5页面本地h5地址是&#xff1a;http://localhost:5173/ 浏览器打开正常 Swift 加载h5&#xff1a; 百度官网 加载正常本地h5页面 加载空白&#xff0c;没有报错 override func viewDidLoad…

RabbitMQ-工作队列

接上文 RabbitMQ-死信队列 1 工作队列模式 xx模式只是一种设计思路&#xff0c;并不是指具体的某种实现&#xff0c;可理解为实现XX模式需要怎么去写业务代码。 之前的是简单的一个消费者一个生产者模式&#xff0c;下边是一个生产者多个消费者的情况&#xff1a; 这里先定义两…