前言:
[极其详细]零基础小白一文搞定软路由概念,从刷机到配置,到做服务器环境以及内网穿透映射公网到sftp文件服务器,到docker基础,到docker home-assistant智能
那么这篇文章适合谁呢,
我想适合人群应该包含但不限于:
这篇文章是最近自己从零开始学习并使用openwrt的一些经历以及遇到的坑,以此来记录一下,以防以后忘记。本文由于篇幅并不会事无巨细,有些别人以及讲的非常出色的地方我就直接贴链接,并不会重复赘述。
//written by Bigonion welcome to my website
https://bigonion.cn
https://bigonion.cn/blog
//
一、软路由的购买与基础概念
首先:如果你不知道什么是IP地址,端口,DNS,内网网段,,光猫桥接模式他们都是什么,我十分建议你提前百度/Goole/必应/360/B站先了解一下:
IP地址、DNS(必懂):
光猫桥接(必懂):
Ipconfig基本命令(扩展,可以随便看看):
Linux系统基本命令行操作和基础文件结构(选看,当查表也可以)
我是分割线( ̄︶ ̄*))
首先,我想问,什么是软路由?当然他们都是路由器啦(~ ̄▽ ̄)~ 这里简单总结一下硬路由和软路由区别:
TP-WDR5620
Openwrt9.15固件 edge主题
关于软路由的购买,我也去B站搜了很多推荐视频,可以分成ARM和x86这两种架构的流派,下面是ARM和x86的区别,最不严谨的说法就是Windows属于X86平台,手机安卓系统属于ARM平台
首先我对ARM目前的兼容性不是很看好,其次我还想要顺便学习一下如何使用微PE系统对Windows装系统,所以我选择了J1900的工控机
还有一个问题:你想要软路由做主路由还是旁路由?他们的区别,优缺点和连接方法也许大概是这样的:
旁路由拓扑结构
}
没看懂? =>推荐阅读专栏网站:
于是在淘宝搜索花了300多2+16G下单了,我的J1900大概也许长这样:
如果你选择工控机的话,COM接口对你来说没啥用 0-0-
J1900工控机
二、软路由刷写Openwrt系统
首先,我是看别人的视频的,讲的非常详细,强烈推荐BRAVERU科技频道的讲解:https://www.bilibili.com/video/BV1w541157Uo?spm_id_from=333.337.search-card.all.click
看完自然就明白怎么刷了!有UI界面的软件操作非常的简单
固件的话我推荐大家去恩山论坛自己找,自己编译固件真的费时费力没必要了,在这个链接找也可以:
如果大家实在找不到可以发email到a454888395@gmail.com或者私信问我要链接
三、软路由启动Openwrt系统,并进行基本配置
我用的是U盘刷的系统,刷好后插入J1900主机u口,接入键盘,开机狂按F2,进入bios界面,在Advanced选项中更改boot启动顺序为从U盘启动,大家如果不会的话直接百度:bios怎么从U盘启动 。就可以了,这方面教程多如牛毛....
好的,你现在已经刷好Openwrt系统了,也设置好从U盘启动了,如果你选择把镜像.img刷入硬盘内的话,直接拔出U盘媒介,他就会从硬盘自动启动Openwrt系统了!
接HDMI到显示器,
插腚,开机( ̄︶ ̄*))
PS:你最好有一台显示器(不是必须的,但是很多时候都很重要)
{
但是,这个时候有可能你不能直接进入Openwrt系统,而是进入shell>命令行,只需要输入exit就可以退出,但如果是其他提示你找不到系统启动文件,那你一定是刷了错误的Openwrt镜像,或者没能成功设置Bios 从U盘/硬盘启动 。
不出意外的话,经过kernel启动,就会进入openwrt界面了!
进入之后会显示
这个样子,是你没有设置root密码导致的,你需要输入passwd去设置root密码
}
{
还有另一种方式是不需要你用额外的显示器操作的,但是这种方式的前提是你已经按照网络拓扑结构选择主路由/旁路由连线方式连接好软路由和硬路由了:
在 管理员:powershell (win10:依次按下win+x => A => 左键回车确定授权)使用telnet 或者ssh命令进行局域网连接
telnet因为明文传输的原因,十分的不安全,我更喜欢用ssh ,如果你输入ssh后提示找不到命令,请你先安装Openssh
Win10设置里开启Openssh微软官方文档:
开启ssh后,你需要在 管理员:powershell输入 :ssh root@软路由ip地址
例如:
来连接到你的软路由,
接下来输入 passwd 来设置你的root密码
如果你不知道IP地址是什么,怎么填,请往下看
}
{
如果很不巧,Openwrt默认的LAN口IP地址和你的主路由不在一个网段
这一点编译者会在他的文章里面告诉你默认IP是多少,请自己仔细阅读
比如说你的WIFI硬路由后台地址是:192.168.1.1
你的固件默认IP地址是10.0.0.1,那他们连起来如果没有NAT服务器的话,是没办法进行通信的,也就是说你必须先更改LAN口默认IP地址
有显示器的话输入ifconfig查询IP地址
ifconfig结果展示
可以看到我的eth0口IP地址是10.0.0.200
}
{
输入
用自带的vim编辑器,进入到网络配置文件编辑
在这里,修改interface,lan 的ipaddr(IP地址)后面 为你想要的IP地址,
{
如果主路由IP地址是192.168.1.1那么,更改为192.168.1.x ,
如果路由器地址是192.168.31.1,那么更改为192.168.31.x,
其中1<x<255随便挑一个你喜欢的就可以,不要和正在联网的设备分配到的IP重合就行,
其他随你在内网网段内挑选,然后电脑连接到WIFI,或者用网线连接电脑和路由器LAN口
}
{
软路由做主路由,可以随便你选内网网段,
10.0.x.x 或者192.168.x.x,172.16.x.x都可以,
这个时候必须把你的硬路由后台设置成自动获取IP地址,然后电脑连接到WiFi
或者用网线连接电脑和路由器LAN口
}
vim 编辑器操作方法:
按下A 进入编辑模式,修改完成后,按下ESC,按住shift 同时按下两次z 保存退出,或者按下ESC之后,输入一个冒号:然后再依次输入wq ,回车后就可以保存退出,
接着重启软路由
或者输入
重启网络服务
}
四、通过浏览器进入Openwrt 网络后台
恭喜你,你成功完成了安装和IP设置,现在是检验你设置和连接是否正确的时候,请你连上WIFI,或者把电脑用网线接到硬路由器的Lan口上,这样你和软路由就在同一个局域网了,如果你前面设置软路由IP地址是正确的话,此时你的电脑,和软路由,硬路由器,就处于同一个IP网段,同一个局域网内,能够相互进行通信了!(不信你ping一下它的IP😋)
可以通过在浏览器网址栏输入你的软路由IP地址进行访问WEB管理页面了!输入你前面设定的软路由IP地址,忘了的,邦邦给你两拳(っ °Д °;)っ
进入Web图形化管理后台
初始密码一般是
账号:root
密码:root
做主路由宽带拨号上网配置:
{
参考文章:
文章2:
LAN口配置
{
}
WAN口配置
{
WAN口配置
输入你的宽带账户和密码,然后DHCP里勾选忽略此接口,都保存后,重启路由器,不出意外的话,那你就能上网了!
}
}
//written by Bigonion welcome to my website
做旁路由配置:
{
LAN口配置
{
只需要对LAN口编辑,因为你只需要连接LAN口到硬路由嘛,所以WAN不需要配置,
}
}
此时,你已经配置好了,请让点击WAN和LAN口的重启按钮,LAN和WAN都重启
然后在Openwrt命令行里输入
如果能成功发送ICMP数据包,说明此时路由器已经正确联网了!
但如果一直卡住发不出PING包,请再尝试ping ip地址(223.5.5.5替换成8.8.8.8也可以)
输入
如果此时依旧没有能发出PING包,丢包率100%的话,请重启机器后再次检查你的配置!
如果能 对IP发出ping 数据包,有延迟和回应的话,证明此时已经接入了互联网,只是DNS服务器配置丢失,请在LAN口 => 编辑 => 高级设置 => 使用自定义的DNS服务器,填入
223.5.5.5 后,回车或者点击+号,重启LAN接口
再次尝试ping www.baidu.com
如果能够发出PING的数据包,证明此时已经可以正确解析域名IP,能打开浏览器浏览网页了!
五、使用Opkg 包管理工具安装常用插件,和常用局域网文件服务器搭建
{
能到这里实在是太棒了!现在你已经成功把Openwrt运转起来了,接下来是对Openwrt一些功能性插件,服务器的介绍,以及Opkg包管理工具的使用
OPKG软件图形界面
点击 系统 => 软件包 来到Opkg软件包网页管理界面,请先点击更新列表,获取所有软件的目录,或者通过ssh root@你的路由器局域网IP ,回车,输入密码后连接 输入:
这两个方法是等价操作
如果你遇到了以下报错:
或者网页报错说opkg 有任务,正在运行...
请输入
删除这个文件就可以使用opkg命令了
关于安装插件,你可以在网络UI界面筛选器内直接搜索软件名字
点击安装,你也可以使用
来搜索你想要的软件包命字grep 后跟着的是具体软件包名
然后通过
来安装软件包
}
{
命令行安装命令:opkg install
用法:iperf3 -s 当server监听,另一台网络设备 使用iperf3 -c IP 来发包测速
Onion的samba4WEB配置界面
更多插件推荐链接:
}
六、sftp文件服务器搭建,并通过内网穿透端口实现外网访问
虽然,以上的文件服务器samba4,ftp,很棒,但是他们不太好通过内网穿透来在公网访问,以下提供比较好用的方法:
{
首先你要了解内网穿透的原理:你的内网可以访问外网是因为公网IP你能找到,但是外网却没有办法直接找到内网里的设备,于是就有内网穿透技术的存在
我们通过一台大家都能访问到的公网服务器作为中转服务器,通过在你和公网服务器之间分别建立客户端client和服务端server,让服务端定期转发你的端口
(端口简单来说,就是一个窗口,如果说IP地址是你家的门牌号,那端口就是你家里能进出的地方,例如:你家的窗户,狗洞,门,烟囱,还有可能是你偷偷挖的通向外界的地道)
总而言之,它能够把运行在你电脑的软件通过双向转发的方式,让你的主机变相为外界提供服务,如果转发的公网服务器把你的电脑端口22(运行着ssh服务)转发走了,转发到了它自己的服务器端口:11451上面,此时我们访问这个网络地址:公网服务器IP:端口号
例如公网IP是114.114.114.114的服务器帮你转发那你访问:
就能通过对这个地址发数据包,间接给你自己的内网电脑的22端口发数据包,看起来你的内网服务器好像就能被直接访问到了一样!
想要实现内网穿透的前提是
我们需要先对Openwrt开启访问转发ssh的权限 系统 = > 管理权 => SSH访问 => 端口
打钩✔之后,你的设备的SSH端口才能被顺利转发(重要)
现在主流的协议就是开源的frp协议,不过要求你自己有一台公网服务器。
然而公网服务器确实很贵,我推荐有免费的服务方(没收钱,广告费结一下)
他们都有非常非常详细的用户文档,自行搜索他们官网查阅文档就可以很轻松的实现内网穿透了。等到你成功穿透后,会获得一个他们给你的IP地址:端口号的形式,你可以直接通过ssh root@IP地址:端口号 来链接你的openwrt命令行
或者通过Winscp这个软件或者finalshell等软件,输入这个IP:端口号来与你的openwrt服务器进行通信和传输文件,不过免费内网穿透服务的带宽很小就是了(1Mbps左右)
}
七、Nohup实现内网穿透后台运行,Nodejs环境搭建
{
你会发现,虽然你成功运行了内网穿透的软件,但是你没法关闭命令行,因为一旦你关闭了,内网穿透的服务同时被你关闭,你需要一个能不被杀掉的后台运行方法,Node.js里有pm2工具可以保持后台运行,但是有一些是没办法通过pm2管理的,你需要nohup!
先安装nohup ,命令行输入
找到nohup的完整名字再opkg install 包名,安装即可
使用方法:如果是cpolar的话本来运行的命令是:
使用nohup 后台运行命令是:
此时用命令
记住它的PID号,下一次想要停止这个内网穿透服务,可以用kill 命令:
如果jobs -l 显示PID是11451
就用
来终止此后台运行服务
}
{
安装好后输入node -v , npm -v ,如果出现版本号就说明node.js安装成功!
}
八、mount 命令挂载和umount取消挂载
linux下挂载很简单,首先通过
来查看所有物理硬盘
三块物理硬盘sda,sdb,sdc
如果没有分区请百度使用
(x指的是你的盘号,例如sda sdb sdc这样递增)来查看具体操作,再用
来格式化你选的分区
推荐fdisk使用方法链接:
分区后请用cd命令切换到根目录,mkdir命令创建一个想要叫的文件夹名字
最后用mount 命令来挂载,
如果你想要挂载的分区是sdb这块物理盘的第二个分区,参考代码:
最后用df -h /dev/sdb2 查看这块盘有没有成功挂载
如果报错了说已经挂载到/mnt/sdb2下了
请使用umount命令
取消挂载后再尝试重新挂载到/media 目录下
这一步是为了docker根目录做准备
(如果你看不懂什么叫挂载,什么叫分区的话,请百度)
九、Docker 部署home-assistant
Docker技术你得先了解为什么会出现,简单来说为了解决运行环境的问题,比如说,可能有些文件需要.net 框架,有的软件需要nodejs环境,有的软件需要Php5 有的要Php8 你不可能说一个环境就给他装上一个虚拟机吧(土豪哥除外)一般的电脑真够呛的,所以有人开发了Docker,在软件层隔离,而不需要硬件虚拟化所消耗的系统资源
参考链接:
了解了docker之后就可以开始了,依次安装,这里可能(极大可能)需要特殊的网络环境,要不然安装的速度极为缓慢,并且失败的可能性极高,依次输入:
如果实在没有特殊环境的小伙伴,请自行bing搜索如何更换opkg安装源
等他们都安装好了,此时请输入
来查看是否成功安装了docker
如果显示版本号了说明你成功安装docker了
此时请注意你的/overlay目录的空间所剩无几
/overlay目录大小就是软件包展示的空间
你必须更换docker 根目录到 至少2G剩余空间的目录下
此时你可以开始拉取镜像文件
参考文章(博主命令行有误):
首先搜索home-assistant源
接着docker pull 命令拉取下载镜像源
这一步,非常,久,硬等
安装好以后,输入
来查看所有安装好的镜像源
docker's image list
出现这个样子说明pull已经好了,没有的话,请重新多次尝试pull
参考链接里的原博主的docker run 跑容器的命令是不完全正确的,真这样跑没办法在任何容器上完美运行,评论区的命令也不完全正确,如果同时指定-p 端口:端口 和--net=host的话,docker反而会给你报错,告诉你不可以同时这么指定
应该大概可能也许正确的命令:
参数的话看docker官方文档可以知道:
稍等一会,你的docker 就成功跑起来docker 容器了,
输入
查看所有容器,如果看到你的home assistant,那么它已经成功跑起来了,
CONTAINER ID ,最左边的参数就是你的容器ID
想要停止容器可以输入:
来暂停容器运行
输入
来删除你的容器,删除容器并不会影响你的镜像库,输入docker image ls依然可以看到你的镜像,并可以重新docker run 建立新的容器
这时候请你在局域网内其他电脑打开浏览器输入:你的软路由ip:8123
如:
如果出现home assistant的web界面了,恭喜你!成功了!
如果没有反应,请你自行找到问题所在
十、Docker home-assistant安装Hacs插件
由于docker 官方给出的版镜像,没法直接安装Hacs 必须通过源文件的方式安装
参考视频(必看):
从此视频下分享链接下载源文件,这个视频用的samba的插件传输的源文件,但是docker版本没有办法直接下载samba插件,所以不可取,
但是,你可以通过Winscp或者finalshell软件ssh连接到你的openwrt文件目录下,找到你之前用docker run 命令里 -v 指定的路径 来到这个路径下,就是容器的根目录了,接下来把up主分享的文件通过up主所说的步骤来放置解压后的文件,
当然你也可以通过
直接进入你的docker 容器命令行内,通过scp 等命令直接传输解压后的文件目录,接着,请在网页端开发者工具一栏,选择重新启动,然后按照UP主所说的方式安装Hacs即可
注意:这里up主所说的文件夹名字,必须一字不差,否则无法识别,也就无法添加
接下来你就可以通过Hacs 添加 MiIoT设备,实现智能家居中心了!
后言:
至此,openwrt 的一些主流玩法,全部完成,非常感谢你能看到这里,
我们
有缘
江湖
再会____
本网信息来自于互联网,目的在于传递更多信息,并不代表本网赞同其观点。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,并请自行核实相关内容。本站不承担此类作品侵权行为的直接责任及连带责任。如若本网有任何内容侵犯您的权益,请及时联系我们,本站将会在24小时内处理完毕,E-mail:975644476@qq.com
本文链接:http://chink.83seo.com/news/1017.html