onecloud玩客云盒子刷armbian后装docker版openwrt做旁路网关和NAS
本文接前面给onecloud玩客云盒子刷armbian装网心云docker容器魔方赚电费一文,如下面留言所述,如果只是挂网心云就不如直接刷了,没有必要刷armbian再去容器中装网心云了。
一、装docker版openwrt
前文已经详述了玩客云刷armbian和装docker的过程了,这里就直接从装docker版openwrt开始了。
什么是旁路网关呢? 我们经常在各种文章和视频里面看到听到「旁路由」这个词,但并不清楚他究竟是何方神圣。其实「旁路由」这并不是一个严谨的词汇,在官方的技术用语里,正确的叫法应该是「旁路网关」(为了方便,后续将依旧以旁路由为准)。 而所谓的「旁路网关」,是指挂靠在主路由网络下的一个旁系网络,他分担了一部分路由器的功能,因此被大众简称为「旁路由」,本质上它是一个通过 LAN 口与主路由连接的一个客户端设备。 这种主旁路由构成的网络架构可以分成两种,一种是发烧友在软路由系统中,通过虚拟化的形式,安装两套路由系统,它们各司其职,在软件层面上形成了主旁网络架构。另一种就是通过使用两个实体路由器,通过连接和配置打造的硬件形式上的主旁网络结构。虽然他们形式上有一定区别,但这种双路由系统(硬件或虚拟化)的网络布局,殊途同归,最终目的都是为了将家庭网络带宽进行合理的分配利用,并提供更强的扩展性,以实现更多强大的功能。 普通的路由器往往集无线信号转发、网关、DNS 服务器等角色为一身,其中的“网关”角色负责路由器内部数据的处理。但因为一般家用的路由器硬件性能很有限,在运行一些比较吃资源的应用(如酸酸乳、去广告等)时,几乎会占满所有硬件资源,导致路由器网络/系统不稳定等诸多问题。既然路由器的硬件性能有限,那可不可以把网关的重任交给硬件性能更好的设备去做,让路由器安安心心地做好它的老本行 – 无线转发呢? 完全可以。 所谓的旁路网关,就是在路由器之外的其他硬件设备上搭建一个网关环境,把路由器肩负的网关重任交给其他更适合的设备来做,同时,旁路网关处理完的结果会返回给路由器,由路由器继续进行无线转发。 这样,每个角色各司其职,路由器肩上的任务轻了,即使是油管 4K 也能轻松跑满网速了,而旁路由也结束了它吃灰的命运。由此资源的充分利用,一举两得。
打开SSH工具FinalShell或putty连接上armbian系统。
拉取docker版openwrt镜像,我安装的这个集成服务很多,省去后面再去装软件包的麻烦了。
docker pull xuanaimai/onecloud:21-09-15 #123MB OpenWrt R21.8.6
如果认为集成的服务不是你想要的,想要自已去装自己需要的软件包的话,我这里推荐:
https://dl.openwrt.ai/releases/targets/meson/meson8b/openwrt-02.01.2024-meson-meson8b-thunder-onecloud-rootfs.tar.gz
打开网卡混杂模式
ip link set eth0 promisc on
创建网络,创建名字为openwrt的macvlan网络。自己根据 玩客云 所在网段修改,如:玩客云IP:192.168.1.175,则192.168.2.192/24改成 192.168.1.0/24,192.168.1.1改成主路由地址
docker network create -d macvlan --subnet=192.168.2.192/24 --gateway=192.168.2.1 -o parent=eth0 openwrt
如果使用非docker的镜向,就需要多一步创建镜像,如:docker import openwrt-02.01.2024-meson-meson8b-thunder-onecloud-rootfs.tar.gz openwrt-02.01.2024
创建、运行docker容器
docker run --restart always --name openwrt -d --network openwrt --privileged xuanaimai/onecloud:21-09-15
这样docker版openwrt就装好了,在1panel可视面板里就可以看到了。到主路由中可以看到openwrt的IP地址了,可以在浏览器中输入该IP地址打开openwrt的后台了,一般默认密码是root或者pasword。
二、无法进入openwrt后台的解决方法
我之前刷了好些个版本的openwrt,但是有时,不知道什么原因,就是无法访问openwrt的后台,而且在主路由后台也看不到openwrt的存在。后来发现多数原因是openwrt没有获取到IP或者是你不知道他的IP地址是多少。
所以我们可以直接在armbian中修改openwrt的IP地址。
进入容器后台
docker exec -it openwrt bash
修改网络
vim /etc/config/network
修改部分选项
修改的内容,举例如下,可以根据自己的实际情况修改。
config interface 'lan'
option proto 'static'
option ipaddr '192.168.2.192'
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'
按需修改。按“i”输入 ; 按“ESC” ,输入":" ,"w" , "q" 保存退出。
修改好后重启网络,一般就可以正常访问openwrt后台了。
/etc/init.d/network restart
通过上面的操作,可以直接进openwrt后台配置你的旁路由了,这里就不展开了。
三、openwrt挂载硬盘共享当轻NAS使用。
1.安装Samba、检查软件包
登录openwrt,在“系统”选项卡-“软件包”。进入路由器web后台页面,系统–软件包,搜索samba查看软件包安装情况,下面三个软件存在就可以。
samba36-server
luci-app-samba
luci-i18n-samba-zh-cn
第一、二个必装,第三个是语言包,英文好的可以把“zh-cn”改成“en”装英文版的,装啥语言包界面就是啥语言的。
2.查看samba是否启动
我们要用ssh连接到openwrt路由器,输入命令service samba status,如果是running,说明已经启动。没有启动的话,输入service samba start启动。
3.查看路由器挂载情况
一般已经自动挂载好了。命令为df -h。这里可以看到我们的路由器挂载目录为/mnt/sda1。一般size比较大的那个就是我们的移动硬盘或U盘。
openwrt怎么挂载ntfs格式
首先需要安装ntfs-3g-utils以支持ntfs格式,它包含有mkfs.ntfs命令,然后会自动安装依赖ntfs-3g,它包含有ntfs-3g命令;使用方法:
mkfs.ntfs /dev/sda2
格式化d盘为ntfs格式;ntfs-3g /dev/sda2 /mnt/sda2
挂载d盘到/mnt/sda2目录。其次需要安装挂载工具mount-utils,它包括mount,umount,findmnt三个命令。
使用命令mount /dev/sda2 /mnt/sda2会提示:未知的文件系统类型ntfs,不能挂载;而使用命令mount -t ntfs-3g /dev/sda2 /mnt/sda2则可以挂载;
umount /dev/sda2
卸载sda2盘,但sda2盘共享后卸载会提示设备正忙,重启才能卸载;findmnt可以查看已挂载结果。
如果重启后不能自动挂载简单的办法是在启动项里加一条命令:
具体操作方法:系统-启动项-本地启动脚本 mount -t ntfs-3g /dev/sda1 /mnt/sda1
在使用过程中发现有中文乱码的解决: 挂载时加-o参数iocharset=gb2312或iocharset=utf8,如mount -o iocharset=utf8&gbk /dev/sda1 /mnt/sda1 该参数也可以直接填在挂载点-高级设置--挂载选项中,直接填入iocharset=utf8就可以
4.配置Samba服务
Samba服务的配置由两个文件组成,一是基本设置/etc/config/samba,二是/etc/samba/smb.conf.template,服务启动后会先读取一号文件,然后读取二号文件,生成/etc/samba/smb.conf文件,最后运行服务。
ssh到openwrt主机上,编辑一下这两个文件: 第一个文件/etc/config/samba(或者按上图设置好后保存应用也是一样的。)
config samba
option name 'OpenWrt'
option workgroup 'WORKGROUP'
option charset 'UTF-8'
option description 'OpenWrt'
option homes '1'config sambashare 'sda1' ## 引号中可改为想要的共享名称,建议不要有中文 option name 'sda1' ## 引号中可改为想要的共享名称,建议不要有中文,与上面相同
option path '/mnt/sda1' ## 引号中改为U盘挂载位置
option read_only 'no'
option guest_ok 'yes'
option create_mask '777'
option dir_mask '777'
第二个文件/etc/samba/smb.conf.template,直接删除原来的内容粘贴即可:
[global]
netbios name = |NAME|
display charset = |CHARSET|
interfaces = |INTERFACES|
server string = |DESCRIPTION|
unix charset = |CHARSET|
workgroup = |WORKGROUP|
browseable = yes
deadtime = 30
domain master = yes
encrypt passwords = true
enable core files = no
guest account = nobody
guest ok = yes
#invalid users = root
local master = yes
load printers = no
map to guest = Bad User
max protocol = SMB2
min receivefile size = 8192
null passwords = yes
obey pam restrictions = yes
os level = 20
passdb backend = smbpasswd
preferred master = yes
printable = no
security = user
smb encrypt = disabled
smb passwd file = /etc/samba/smbpasswd
socket options = TCP_NODELAY SO_RCVBUF=960000 SO_SNDBUF=960000
syslog = 2
use sendfile = yes
use mmap = yes
writeable = yes
disable spoolss = yes
host msdfs = no
strict allocate = No
重启Samba。
/etc/init.d/samba restart
至此,在其他电脑上输入服务器地址就可以访问Samba了,一般会提示要密码,如果没设置Samba密码,就直接输入服务器密码即可,否则输入Samba访问的密码。
5.设置Samba访问密码
可以自己设置Samba的用户和密码,不过一般来说改个密码就行了,没必要再重新整个用户,个人使用,没必要那么麻烦。
第二个文件/etc/samba/smb.conf.template,有一行被注释掉了(invalid users = root),去掉注释的话,将不能使用root账号添加密码,这样一来还需要为samba服务单独添加账号,其实没有这个必要。
在ssh窗口中,输入:
smbpasswd -a root
然后根据提示输入samba密码即可。
下面需要取消Samba服务中配置的允许匿名访问的选项,输入
vim /etc/config/samba
编辑一号文件,将option guest_ok 'yes’中的yes更改为no。
重启Samba服务
/etc/init.d/samba restart
然后就可以远程登录Samba服务器啦,
账户root,密码就是设置的密码。 在这记一条指令,
mount -t tmpfs -o remount,size=100% tmpfs /tmp 最近经常发生内存爆了,这条指令解决。
openwrt的可玩性是很高的,把玩客云用于赚点电费,顺便当个旁路由和NAS对于我来讲很好了,openwrt还有其它好多实用的功能。我用在用的还有下载工具、科学上网、打印机服务器、广告拦截等。
作者声明本文无利益相关,欢迎值友理性交流,和谐讨论~
XSBing
校验提示文案
虎子爱睡觉Dom
校验提示文案
loi2404
校验提示文案
维修小能手
校验提示文案
维修小能手
校验提示文案
loi2404
校验提示文案
虎子爱睡觉Dom
校验提示文案
XSBing
校验提示文案