③:所以,这次配置成功的配置,下次起来后就没有了。
④:因此,知道原因后,就可以将当前配置存放到掉电后不会掉数据的磁盘上,
可以放在/etc下,这个是设备的配置文件,掉电后不会丢失。
1、当前先配置好zerotier,保证可以拿到ip地址。
2、 将整个zerotier 复制到断电不掉数据的/etc下做备份。
cp -a /var/lib/zerotier-one /etc/zerotier
3、(关键步骤和解释)
①:复制后,删掉 /etc/zerotier/下的zerotier-one.pid文件
②:这个文件中记录了后台的zerotier的进程号
③:之所以要删掉,是因为路由器下次启动起来后,zerotier的进程号可能已经不是当前这个pid号了。
④:这个不删掉,我们下一步将/etc/zerotier文件夹的东西全部复制到/var/lib/zerotier-one后,
虽然环境都还原了上次配置成功的环境,但此时文件中记录的pid号和后台真实的pid号对应不上,
就会出问题,但是去官网查看时,设备确实mac地址也没变,分配的ip地址也没变,会导致设备拿不到
ip地址。此时你也可以尝试,重新再加入下网络,发现加入成功,ip地址也拿到了,它加入网络的时候,
会重新在/var/lib/zerotier-one下创建zerotier-one.pid。所以,要删掉!!!
4、设备重启后,启动脚本中需要将复制的东西还原到var下,命令:
cp -a /etc/zerotier /var/lib/zerotier-one
5、启动脚本中添加如下命令,保证下次重启,自动还原环境,然后重新加入网络。
vi /etc/rc.local 打开这个文件后:添加下面的内容:
cp -a /etc/zerotier /var/lib/zerotier-one
sleep 5
/usr/bin/zerotier-one &
sleep 5
zerotier-cli join 网络号
综上所述,你的路由器就可以重启,重启后也可以拿到ip地址,也不用去页面点击授权了,非常方便。
Zero
Tier
-
OpenWrt
Zero
Tier
已合并到官方软件包存储库中,可以使用opkg软件包管理工具进行选择。
是一个程序,用于创建独立于全球提供商的虚拟私有云。 该项目为
Zero
Tier
提供
OpenWrt
软件包。
下载并将其复制到您的
OpenWrt
安装中,最好复制到/ tmp文件夹中。
然后安装
ip
k软件包文件:
opkg install
zero
tier
_*.
ip
k
现在启动
Zero
Tier
:
/etc/init.d/
zero
tier
start
要将
Zero
Tier
One包含到您的
OpenWrt
映像中或创建.
ip
k包(相当于Debians .deb文件),您必须构建一个
OpenWrt
映像。
要在Debian上构建
OpenWrt
,您需要安装以下软件包:
sudo apt-get install subversion g++ zlib1g-de
from email.mime.text import MIMEText
from email.header import Header
from smtplib import SMTP_SSL
from threading import Timer
def GetWan
IP
():
Zero
Tier
是一款非常好用的内网穿透工具,不需要配置,就能实现虚拟局域网的组建,让你可以在外也能连回家中、学校、办公室的电脑获取资料,数据。配置与使用都非常简单,堪称「 无配置,零基础」。
Zero
Tier
支持 Windows、macOS、Linux 三大主流平台,iOS、Android 两大移动平台,以及 QNAP(威连通)、Synology(群晖)、Western Digital MyCloud NAS(西部数据)三个 NAS 平台,还支持 LEDE开源
路由器
项目。
# 使用步骤
要使用Python配置
OpenWrt
路由器
的网关并远程
重启
OpenWrt
路由器
,您需要使用Python的 paramiko 库和
OpenWrt
路由器
的 SSH 访问。
以下是一个示例代码,它使用 paramiko 库连接到
OpenWrt
路由器
并执行命令来设置网关和
重启
路由器
。
```python
import paramiko
# 连接到
OpenWrt
路由器
ssh = paramiko.SSHClient()
ssh.set_mi
ssi
ng_host_key_policy(paramiko.AutoAddPolicy())
ssh.connect('192.168.1.1', username='root', password='your_password')
# 设置网关
stdin, stdout, stderr = ssh.exec_command('uci set network.lan.gateway=192.168.1.254')
stdin, stdout, stderr = ssh.exec_command('uci commit network')
#
重启
路由器
stdin, stdout, stderr = ssh.exec_command('reboot')
# 关闭 SSH 连接
ssh.close()
请注意,您需要将代码中的
IP
地址、用户名和密码替换为您的
OpenWrt
路由器
的实际值。另外,使用此代码时,请确保您已经安装了 paramiko 库。