使用第三方控制器ztncui私人化zerotier,打造安全的内网穿透环境

zerotier one是众多内网穿透工具平衡性最好的。方便速度快部署简单的比他贵的多,速度比他快比他便宜的部署麻烦,比他便宜部署容易的使用体验又不好。

但是zerotier one也有不好的地方。首先是连接速度和延迟表现不佳,主要受限于多重NAT和运营商UDP QOS的影响。当然两个通讯的节点都有ipv6的环境下,或是拥有私人MOON节点的时候变现会有所提升。另外就是zerotier one的安全性不是很好。zerotier one通过一串16字符的网络ID和管理面板授权,就可以让的节点加入虚拟局域网。一旦管理面板的的账号密码泄露,内网就有可能被入侵。另外zerotier one的免费版只能添加50个节点,而第三方控制器则不受限制。

ztncui是zerotier one众多开源第三方控制器中的一个,之所以选它是因为它是唯一一个拥有图形界面的。通过配置客户端的planet就可以跳过官方节点,使用ztncui完成各个节点之间的通讯和打洞。

准备工作

云服务器准备

ztncui&Zerotier安装与设置

ssh登陆到云服务器开始搭建,以下为centos安装命令。

配置moon服务器

配置ztncui

激活moon服务器,迁移控制器至ztncui

完成上面的操作,服务端的配置已经全部完成,接下来是客户端节点的配置。

ztncui管理界面配置

登陆到ztncui,首次登陆会要求你更改密码,更改好密码以后。点击ADD-NETWORK——输入网络名提交后建立完成——点击导航栏networks——找到刚才建立的网络——点击easy setup——点击Generate network address会自动建立一个虚拟网段,然后Submit。其他的选项不要去动,否则会无法分配IPV4地址。

Routes选项卡用于配置路由转发规则,用openwet需要设置好,才能访问内网。

网络名旁边的括号里是网络ID,各个节点通过这个ID加入虚拟网络

其他的操作和官方管理差不过

移动设备端设置

不能使用官方编译的Zerotier,需要使用kaaass大神Zerotier FIX。Zerotier FIX才能支持自定义moon节点和planet节点。目前Zerotier FIX只支持android设备。

将服务器上的world.bin和000000XXXXX.moon文件下载到本地,将world.bin更名为plannet。然后传送到手机

安装好Zerotier FIX,打开软件——右上角——设置——启动自定义planet——选择从文件导入——选择刚才的palnet文件。提示导入成功既切换planet成功。

加入moon服务器,打开软件——右上角——入轨——右下角加号——从文件导入——选择刚才的moon文件。提示成功,会在入轨界面看到moon服务的id。

主界面添加ztncui网络管理界面上的网络ID,并在ztncui上授权加入

openwrt设置

先停止openwrt上运行的Zerotier,winscp连接到openwrt。

替换planet,打开到/var/lib/zerotier-one——用刚才的planet文件替换目录下的planet文件(自行备份原文件)。

添加moon,打开到/var/lib/zerotier-one——新建一个文件夹“moons.d”文件夹,将moon文件复制过去。

回到Zerotier,填入网络ID,管理界面授权加入。

windows设置

找到Zerotier one安装目录,将planet文件替换目录下planet文件,新建moons.d文件夹,将moon文件复制过去。在服务管理器重启Zerotier one,添加网络ID,并授权加入。

我的windows设置后,被的其他节点无法ping windows节点。windows节点可以 ping其他节点。本人能力有限,非专业人员,排查不出问题。不过我主要是用openwrt的节点并配置路由规则来穿透。

linux设置

和openwrt设置一样

其它平台

下面是Debian/Ubuntu安装命令,请自行测试。

发表在 应用工具软件 | 标签为 , | 留下评论

如何在Ubuntu上安装VNC服务

1、在Terminal中输入sudo apt-get update更新软件源

2、安装vncserver

3、配置vnc密码,运行 vncpasswd 命令

4、启动vnc服务

5、创建vnc的启动服务,用于开机自动启动

然后填写以下内容

  • <你的用户名> 替换为你自己的用户名。
  • 根据你的需要调整 ExecStart 里的分辨率(-geometry 1920x1080)和颜色深度(-depth 24)。

6、重新加载 Systemd 配置

7、设置开机启动

使用以下命令让 VNC 服务在开机时自动启动(假设你要启动的显示编号为 :1):

启动 VNC 服务

检查服务状态

总结

通过上述步骤,你可以配置 VNC 服务在系统启动时自动启动,并使用 Systemd 管理它。如果需要修改分辨率或其他参数,可以直接编辑 /etc/systemd/system/vncserver@.service 文件。

发表在 系统分类 | 留下评论

[Proxy] Centos7中Dante Socks 安装与配置

Dante是一个免费的Socks代理服务器,当然,其实开发它的公司,是通过销售扩展Modules以及服务来赚钱的。如果只是需要代理,就不需要那些额外的Modules了(安全/流控之类会做在防火墙上,专业的设备做专业的事)

dante官方网站传送门

Dante官方网站上只给了源码和编译好的二进制文件,二进制文件有适配RHEL7的,也就可以用在centOS7上,但是,这些文件下载或者编译后,还需要自己去配置环境变量和启动配置,卸载起来也不容易(编译安装可以通过make uninstall来卸载),总之,不是很方便

centOS7的标准库中不包含Dante Socks,很蛋疼,我们需要用到GhettoForge库

通过扩展库安装的Dante的版本是1.4.1,虽然不是最新版,但也够用了(最新版也就是1.4.2)

通过yum安装时,会同时安装server和client端

Yum 安装

添加库

安装这个库之后,仍然会发现找不到……

因为dante-server默认在gf-plus库中,需要手动启用

搜索对应有安装包,开始安装

Dante安装后配置

添加一个用户,专用于Dante Socks使用;

创建下面这个文件夹,通过上述yum源安装的Dante Socks,不知为何不会创建这个目录,但启动的配置文件中,是需要这个目录的,Dante会在目录下创建一个sockd.pid的文件

启动服务配置文件在这里

Dante 配置文件说明

通过yum安装的Dante Socks会有一个默认的sockd.conf文件,存在/etc目录下

如果你熟悉Dante的配置文件语义,你就不需要这个文件,以防万一,还是先重命名一下

然后我们创建自己的conf文件

配置示例

Dante 配置文件的规则和语义参考这里

https://www.inet.no/dante/doc/1.4.x/config/server.html

启动服务

最后通过 systemctl 命令启动服务即可

发表在 应用工具软件, 操作系统相关 | 留下评论

解决Mac开机变慢异常(command +option + P + R)

Mac开机变慢/异常怎么办?

command option P R

重点是 开机 后 一直按 该4个键不放  听到3声音响 屏幕出现灰暗灰暗几次

开机速度 5s

重置PRAM和NVRAM的方法都是在系统启动后到出现灰色屏幕及转动光环之前这期间按住按住command、option、P和R这四个键,等屏幕从黑变灰再变黑两三次,或启动音响过两三遍,或电脑的白色供电指示灯闪过两三遍后再松手。但是,这个组合方式在具体使用上有两种选择。一种是先关机,然后按电源开关启动电脑后,按住这四个键。而另一种则是在系统没有关机的时候选择或强制重新启动,再按住这四个键。第一种方式将NVRAM包括PRAM都进行了重置,而第二种则仅重置了PRAM,NVRAM中的其他部分没有涉及。

NVRAM vs PRAM

  • Mac用户经常会听到一些故障清除步骤比如:重置参数缓存,重置NVRAM,按住command+option+P+R等等,这些步骤涉及了一些容易混淆的概念,其中包括NVRAM和PRAM。

NVRAM (Non-volatile RAM)不是苹果独创的术语。指的是一种静态内存,在电脑关机或断电时对数据进行存储,并在停机后继续保持其内容的记忆体。这种存储可以依赖备用或额外的电池将其内容保留下来,以便为机器的启动提供预置数据。

PRAM(Parameter RAM),又称参数缓存是苹果自己所使用的术语。从本质上,它就相当于PC上的CMOS以及SPARC工作站上的NVRAM。换言之,它是一小部分NVRAM,依靠电池的电力与real-time clock处于同一芯片的记忆体。多年前,苹果规定了PRAM的前20byte的内容,其剩余空间被成为XPRAM(扩展PRAM)为Mac OS所专用。 在采用了PCI以后,苹果机的PRAM容量增大,而这种扩容以后的PRAM就干脆被称做NVRAM,里面包含不同的区存储扩展PRAM,Open Firmware参数和Macintosh命名注册表等。从另一角度来讲,PRAM就成了NVRAM的一小部分。

NVRAM和PRAM里所存的数据内容根据机型和操作系统的内容而有所不同。在PowerMac构架的机型上,其内容要比Intel构架的内容多得多。而在Intel构架的电脑面世之初,NVRAM里几乎是空的(至少,我一年半前检查的时候是这样)。而现在Intel构架的电脑里的NVRAM中也有一些内容。

苹果公司的知识库提供的信息比较陈旧。Resetting your Mac’s PRAM and NVRAM一文称PRAM的内容包括:AppleTalk状态、系列端口设置和端口定义、示警时钟设置、应用字体、系列打印机位置、Autokey速率、Autokey延迟、喇叭音量、提示音、双击反应时间、嵌入点速率、鼠标速度、启动磁盘、菜单闪烁值、显示器深度、32-bit地址、虚拟内存、RAM disk、以及磁盘缓存。注意: 该文于2007年5月最后更新,而所涉及的硬件包括Powerbook、Powerbook G3、Powerbook G4、iBook、iBook G4、iMac、iMac (Slot loading)、PowerMac G3、PowerMac G4、PowerMac G5以及XServe。并不包括任何Intel构架的电脑。

而Mac OS X: What’s stored in PRAM?一文称PRAM里包括:显示器及视频设置、时区设置、启动音量、喇叭音量、最近的内核恐慌信息和DVD区码设置。该文最后更新时间为2004年11月,适用于Mac OS X 10.1到10.3(那时10.4还没有面市)。

而各个用户自己的PRAM或NVRAM里究竟都有什么内容,可以用终端命令NVRAM进行查看。方法是,从应用程序(Applications)下的实用工具(Utilities)文件夹内打开终端(Terminal),然后输入:

nvram -p 回车

用man命令来查看nvram的解释,就会发现该命令是用于处理Firmware(固件)NVRAM参数的。Firmware的概念已经在前文里有所说明,这里不再赘述。

了解NVRAM和PRAM的意义对于终用户来说莫过于故障清除。一些电脑故障,比如外置/内置磁盘不显示、出现四国语言等等,或可通过重置PRAM或NVRAM来恢复。客观地说,重置PRAM或NVRAM后,PRAM或NVRAM内的参数恢复到机器出厂时的数值,这一做法本身并不能帮助用户查找先前故障的原因,但是一旦故障是因为固件或参数数值不对所引起,重置这些参数,可以帮助用户及时恢复系统。

重置PRAM和NVRAM的方法都是在系统启动后到出现灰色屏幕及转动光环之前这期间按住按住command、option、P和R这四个键,等屏幕从黑变灰再变黑两三次,或启动音响过两三遍,或电脑的白色供电指示灯闪过两三遍后再松手。但是,这个组合方式在具体使用上有两种选择。一种是先关机,然后按电源开关启动电脑后,按住这四个键。而另一种则是在系统没有关机的时候选择或强制重新启动,再按住这四个键。第一种方式将NVRAM包括PRAM都进行了重置,而第二种则仅重置了PRAM,NVRAM中的其他部分没有涉及。

如果是PowerMac构架的机型,可以用另一种方式,利用Open Firmware(开放固件)界面对NVRAM进行重置,就是在启动时按住command、option、O和F,屏幕变黑,并显示白字。待光标停顿后,输入: reset-nvram回车。然后再输入:reset-all回车,系统即自动重起。

有部分Mac用户朋友可能会感觉到,自己的Mac在使用了一段时间后,开机也变得越来越慢了,我们该如何优化Mac的开机速度呢,下面小编给你推荐下面6个优化Mac开机速度的小技巧,希望能帮助到大家。

一、尽量删除桌面文件

每次Mac启动都要对桌面的内容进行索引,为桌面每个文件建立缩略图标(thumbnail icons )等等。

因此,建议你可以把桌面上的文件尽可能的放入相应文件夹,分门别类。一来加快开机速度,二来也更加有条理。

  二、去除启动加载程序

系统偏好的用户设定里可以去除一些不用的启动程序(System Preferences and User Accounts)你只需把那些程序前的钩子点去就行(比如iChat)。通过Activity Monitor程序,你可以看到后台运行程序的清单。

这个对于我来说,是一个习惯,平时有软件新安装后要求在启动时检查更新,我一般都会点击否。

 三、禁用Dashboard

如果你经常使用的话,dashboard固然好。然而,你也要清楚,每个widgets 和 web clips都非常占内存和资源。怎样禁止? 方法也很简单。

打开Terminal 敲入以下命令:

defaults write com.apple.dashboard mcx-disabled -boolean YES

然后你可以重启macbook或者敲入以下命令:

killall Dock

当你又需要dashboard的时候,以下命令可以逆转:

defaults write com.apple.dashboard mcx-disabled -boolean NO

再重启或敲入 :

killall Dock

如果启动 或 关闭 dashboard 不成功 尝试 再重复一次 一般就OK

 四、清除 PRAM (只适用于英特尔的苹果电脑)

这个方法不是根本的解决方法,但是可以除去一些不必要的开机设置。因而也节省了时间。方法是:重启你的电脑,同时按下 command + option + p + r 直到听到3 到4 声启动铃响之后松手。

 五、清除PMU (iMac不适用),对于Macbook, Macbook Pro用户,方法是:

1. 确保Macbook关闭.

2. 去掉电源适配器和电池.

3. 按下电源开关并保持5 秒钟,放开.

4. 接上电源适配器和电池.

5. 打开电源开关.

对于Macbook Air用户,方法是:

1. 确保Air关机状态

2. 把电源适配器接上工作电源 .

3. 按下(左)Shift-Control-Option 同时按一下电源开关. (记住,要用左边的shift等键)

4. 等5 分钟,按下电源开关重启 Macbook Air.

六、禁止无用的系统选项.

如果你没有用到Wireless(无线上网), Bluetooth(蓝牙), Speech Recognition(语音识别) or Internet Sharing(共享),那么,很简单, 关掉他们!

发表在 操作系统相关 | 留下评论

centos7 升级 glibc2.25 踩坑记录

目录

1 基础环境准备

1.1 make升级

1.2 gcc升级

2 升级glibc

3 注意事项

4 故障处理

        centos7默认的glibc函数库的版本为2.17,无法运行一些对glibc版本有要求的中间件。为了在centos7上可以正常运行此类中间件,则需要对glibc进行升级。

假设需要安装一个中间件,该版本的中间件要求glibc函数库在2.25以上,但操作系统的glibc版本为2.17,为了符合运行要求需要对glibc进行升级。由于直接升级到glibc2.25会出现各种崩溃的问题(如:无法远程、常规基础命令无法使用等等)。经反复测试确认,可直接升级到glibc2.31(升级过程中会自动安装缺失的版本)。

1 基础环境准备

        说明:升级之前最好保持两个以上的远程终端,防止升级失败时手误关闭了终端导致无法再远程!

升级glibc2.31前需要确保基础环境满足以下条件:gcc版本要在9以上(默认4.8.5),make版本要在4.0以上(默认3.82)。

执行以下操作前需远程登录到目标服务器

1.1 make升级

升级前需确认当前环境的make版本(make -v),若当前版本为3.x则确认本次需升级,若为4.x则跳过此步骤。假设当前环境的make为3.x,需要进行make升级。

至此 make升级完成。

1.2 gcc升级

升级前需确认当前环境的gcc版本(gcc -v),若当前版本为4.x则确认本次需升级,若为9.x则跳过此步骤。假设当前环境的gcc为4.x,需要进行gcc升级。

至此 gcc升级完成。

2 升级glibc

升级前需查看当前环境的glibc是否存在符合taos3的版本,若存在则跳过升级,此文档假设glibc当前最高的版本为2.17

至此 glibc升级完成。

3 注意事项

1.升级glibc存在系统崩溃风险!!!升级前尽可能在个人环境下进行反复测试,确保无问题后再升级生产环境!

2.当glibc版本为2.17时千万不要直接升级到2.25!!!2.17与2.25直接差4个版本(2.18、2.22、2.23、2.24),经反复测试确认发现直接升级到2.25时不会自动安装缺失的版本,而2.25又对之前的版本有依赖(个人猜测),强行安装2.25不但安装失败,且会造成系统崩溃、异常(比如无法使用ls、cp等命令,无法进行远程连接)。

4 故障处理

        故障现象:假设在glibc2.17时直接升级到glibc2.25,将会出现操作系统崩溃的情况,如:大部分命令不可用、无法远程登录、yum报错等。

        说明:出现此类问题时千万不要重启服务器,不要关闭当前的终端!!!

        故障原因:glibc2.25未编译安装成功,但部分组件依赖的函数库软链接指向到了glibc2.25上。

        解决办法:将软链接指向原glibc-2.17

发表在 系统分类 | 留下评论

zerotier充当网关实现内网互联,访问其它节点内网

本节知识点:建议学习和理解并掌握iptables/route运行原理和机制.

一、网络三层NAT配置方法(linux主机)[推荐]

  • 假设zerotier虚拟局域网的网段是192.168.88.0 局域网A 192.168.1.0 局域网B 192.168.2.0
  • (如果需要互联)在局域网A和B中需要各有一台主机安装zerotier并作为两个内网互联的网关
  • 分别是192.168.1.10(192.168.88.10) 192.168.2.10(192.168.88.20)#括号里面为虚拟局域网的IP地址

1.在zerotier网站的networks里面的Managed Routes下配置路由表,增加如下内容

2.开启内核转发

3.防火墙设置

二、网络二层桥接方式(linux主机)[未测试,谨慎尝试!]

1.设置桥接

在官网的networks里面,在Members选择两个节点前面的小扳手,然后勾选Allow Ethernet Bridging

2.配置网桥模式

请注意,如果你的设备仅有一个物理网卡,下方配置可能会断网噢.
配置桥接前,请先清空物理网卡的ip,否则会影响路由出口选择.

致谢

发表在 应用工具软件 | 标签为 , | 留下评论

LINUX下S3FS方式挂载七牛

首先需要安装s3fs,安装方式可参考官方文档,这里以centos为例

将七牛AK/SK 写入**文件,比如 /root/.passwd-s3fs,并将**文件权限设为600

将已经存在的bucket挂载到本地目录,url填写七牛s3的服务域名

此处注意,网上很多写的是s3fs bucketname,但使用bucketname根本不好用。s3域名可以在空间概览中看到

使用 df -h 使命可以看到挂载情况

如果挂载不成功可以使用下面命令查看错误

 

发表在 操作系统相关 | 标签为 , | 留下评论

docker安装部署elasticsearch8.1.1

配置系统

安装服务启动服务

启动有可能会报各种错误,我这里遇到(如果没遇到跳过这一段)

参考 https://github.com/elastic/elasticsearch/issues/85463

我这里处理方法是
启动不要挂载

配置文件是这样的

其实也没操作什么就可以使用了,配置文件依旧是前面配置的(不要保留有改变,不要保留xpack.security的配置)

 

发表在 应用工具软件 | 标签为 , | 留下评论

esptool.py 介绍和使用

一: esptool.py 简介

esptool.py 是乐鑫提供的开源库工具,用于乐鑫 ESP8285, ESP8266, ESP32, ESP32-S等系列芯片和 ROM Bootloader(即:一级 bootloader)通讯,从而实现:

固件烧录flash 擦除flash 读取读 MAC 地址读 flash idelf 文件转 bin 等常用功能;

flash 校验, 读取内存载入 bin 到 RAM 执行读内存写内存读 flash 状态写 flash 状态读 chip id组装 bin等高级功能。

esptool.py 原版介绍请参考README.md
esptool.py 串口协议请参考 Serial Protocol
esptool.py 更多资料请参考 esptool.py WiKi


二: 安装方法

[推荐] 安装方法一 (功能实时更新)

1. 下载 esptool.py 源码

2. 目录导入到全局环境变量
ubuntu 为例:

  • export PATH=/home/chenwu/esp/esptool:$PATH 添加到 /etc/profile 文件结尾
  • 执行 source /etc/profile

安装成功后通过 esptool.py version 查看版本:

注意: esptool.py v3.0 版本后,才对 ESP32-S 系列支持。
如果使用新款芯片,可以通过 git pull 来更新 esptool.py 版本。

安装方法二:(安装简单)

如下 shell 命令任选其一,执行成功即可:
pip install esptool
python -m pip install esptool
pip2 install esptool


三: esptool.py 说明

  • 当前支持命令: load_ram,dump_mem,read_mem,write_mem,write_flash,run,image_info,make_image,elf2image,read_mac,chip_id,flash_id,read_flash_status,write_flash_status,read_flash,verify_flash,erase_flash,erase_region,version,get_security_info
  • 通过 esptool.py -h 查看所有命令和通用参数详细说明
  • 通过 esptool.py <command> -h 查看每条命令对应的参数详细说明

通用参数说明 (命令前参数)

  • -h: 或 --help, 显示帮助文档
  • --chip: 或 -c, 指定芯片,可选 auto,esp8266,esp32,esp32s2
  • --port: 或 -p, 指定串口
  • --baud: 或 -b, 指定波特率
  • --before: 指定 esptool.py 命令执行前预做的,可选 default_reset,no_reset,no_reset_no_sync,具体参考文档
  • --after: 或 -a, 指定 esptool.py 命令执行后将做的,可选 hard_reset,soft_reset,no_reset,具体参考文档
  • --no-stub: 禁用 Boot Stub, 不让其管理 flash 操作,具体参考文档
  • --trace: 或 -t, 打开 esptool.py 所有交互细节
  • --override-vddsdio: VDDSDIO 内部电压调节
  • --connect-attempts: 指定 esptool.py 尝试连接次数,默认 7.

四: 常用命令

1. 固件烧录 – write_flash

命令参数说明:

  • --erase-all: 或 -e, 在写固件时,擦除所有 flash 上所有 sector(默认只擦除要写区域的 sector)
  • --flash_freq: 或 -ff, 可选 keep,40m,26m,20m,80m, 指定 SPI 速率
  • --flash_mode:或 -fm, 可选 keep,qio,qout,dio,dout, 指定 SPI 模式
  • --flash_size:或 -fs. 可选 1MB, 2MB, 4MB, 8MB, 16M + ESP8266 上特有的 256KB, 512KB, 2MB-c1, 4MB-c1。 指定 flash 大小
  • --spi-connection:或 -sc, 指定 ESP32 SPI/HSPI 连接配置,具体参考文档
  • --no-progress: 或 -p, 禁用进度条打印
  • --verify: 在 flash 上验证刚刚写入的数据
  • --encrypt: 写入数据时应用 flash 加密(需要正确的 efuse 设置)
  • --ignore-flash-encryption-efuse-setting:忽略 flash 加密的 efuse 设置
  • --compress: 传输中压缩数据(默认 –no-stub 未指定)
  • --no-compress:传输中禁用压缩数据(默认 –no-stub 已指定)

命令参考用法:
esptool.py write_flash [-h][--erase-all][--flash_freq {keep,40m,26m,20m,80m}][--flash_mode {keep,qio,qout,dio,dout}][--flash_size FLASH_SIZE][--spi-connection SPI_CONNECTION] [--no-progress][--verify] [--encrypt][--ignore-flash-encryption-efuse-setting][--compress | --no-compress]<address> <filename> [<address> <filename> ...]

示例一:自动烧录
向 flash 的 0x0 地址烧录 factory.bin 文件

示例二:指定全参数烧录
指定芯片 ESP8266, 串口 USB0, flash DIO 模式, 80MHz, flash 为 2MB, 0x0 地址烧录 bootloader.bin, 0x10000 地址烧录 sntp.bin, 0x8000 地址烧录 partitions.bin

2. flash 读取 – read_flash

命令参数说明:

  • --spi-connection:或 -sc, 指定 ESP32 SPI/HSPI 连接配置,具体参考文档
  • --no-progress: 或 -p, 禁用进度条打印

命令参考用法:
esptool.py read_flash [-h] [--spi-connection SPI_CONNECTION][--no-progress] address size filename

示例一:自动读取
读取从 0x0 地址开始的 4KB 内容,保存到 dump.bin 文件

示例二: 指定参数读取
指定串口 USB1, 波特率 460800, 从 0x10000 地址读取 1MB 内容到 dump.bin 文件

3. flash 擦除 – erase_flash & erase region

命令参数说明:

  • --spi-connection:或 -sc, 指定 ESP32 SPI/HSPI 连接配置,具体参考文档

命令参考用法:
esptool erase_flash [-h] [--spi-connection SPI_CONNECTION]
esptool erase_region [-h] [--spi-connection SPI_CONNECTION] address size

示例一:自动擦除
擦除 flash 上所有内容,即所有数据将是 0xFF

示例二: 擦除指定区域
擦除从 0x20000 地址开始的 16KB 空间

4. 读 MAC 地址 – read_mac

无命令参数

命令参考用法:

通常设备有多个 MAC 地址,例如做 station 的 MAC 地址,做 softAP 时的 MAC 地址,etc
这里读取的是 MAC 地址是 station 地址

5. 读 flash id – flash_id

命令参数说明:

  • --spi-connection:或 -sc, 指定 ESP32 SPI/HSPI 连接配置,具体参考文档

命令参考用法:
esptool.py flash_id [-h] [--spi-connection SPI_CONNECTION]

示例:读取 flash id

结果将有如下厂商信息和设备信息:

可在厂商和设备信息中 具体查看

6. elf 文件转 bin – elf2image

命令参数说明:

  • --output: 或 -o, 输出文件名前缀(image version=1)或文件名(image version=2)
  • --version: 或 -e, 可选 1,2, 输出的 image version
  • --min-rev: 或 -r, 可选 0,1,2,3, 最小芯片修正
  • --secure-pad: 填充 image,因为一旦签名,它将以 64KB 的边界结束。(适用于安全引导v1映像)
  • --secure-pad-v2: 将 image 填充到 64KB,因为一旦签名,其签名扇区将在下一个 64K block开始。(适用于安全引导v2映像)
  • --elf-sha256-offset:如果已设置,请在二进制文件的指定偏移量处插入输入ELF文件的 SHA256 哈希(32字节)
  • --flash_freq: 或 -ff, 可选 keep,40m,26m,20m,80m, 指定 SPI 速率
  • --flash_mode:或 -fm, 可选 keep,qio,qout,dio,dout, 指定 SPI 模式
  • --flash_size:或 -fs. 可选 1MB, 2MB, 4MB, 8MB, 16M + ESP8266 上特有的 256KB, 512KB, 2MB-c1, 4MB-c1。 指定 flash 大小
  • --spi-connection:或 -sc, 指定 ESP32 SPI/HSPI 连接配置,具体参考文档

命令参考用法:
esptool elf2image [-h] [--output OUTPUT] [--version {1,2}][--min-rev {0,1,2,3}] [--secure-pad][--secure-pad-v2][--elf-sha256-offset ELF_SHA256_OFFSET][--flash_freq {40m,26m,20m,80m}][--flash_mode {qio,qout,dio,dout}][--flash_size FLASH_SIZE][--spi-connection SPI_CONNECTION] input

示例一:
ESP8266 上将 elf 文件转为可执行的 bin 文件

示例二:
ESP8266 上将 elf 文件转为可执行的 bin 文件,指定 image version 为 2

示例三:
ESP32 上将 elf 文件转为可执行的 bin 文件

7. 输出 bin 信息 – image_info

无命令参数

命令参考用法:
esptool image_info [-h] filename

示例一:
ESP8266 上输出 image 信息

示例二:
ESP32 上输出 image 信息

五: 高级命令

1. flash 校验 – verify_flash

详细说明 参考文档

命令参数说明:

  • --diff: 或 -d, 可选 yes,no, 显示不同
  • --flash_freq: 或 -ff, 可选 keep,40m,26m,20m,80m, 指定 SPI 速率
  • --flash_mode:或 -fm, 可选 keep,qio,qout,dio,dout, 指定 SPI 模式
  • --flash_size:或 -fs. 可选 1MB, 2MB, 4MB, 8MB, 16M + ESP8266 上特有的 256KB, 512KB, 2MB-c1, 4MB-c1。 指定 flash 大小
  • --spi-connection:或 -sc, 指定 ESP32 SPI/HSPI 连接配置,具体参考文档

命令参考用法:
esptool verify_flash [-h] [--diff {no,yes}][--flash_freq {keep,40m,26m,20m,80m}][--flash_mode {keep,qio,qout,dio,dout}][--flash_size FLASH_SIZE][--spi-connection SPI_CONNECTION] addr_filename [addr_filename ...]

示例:
对比 flash 上 0x10000 位置的 bin 和 build/sntp.bin 是否相等

2. 读取内存 – dump_mem

详细说明 参考文档

无命令参数

命令参考用法:
esptool.py dump_mem [-h] address size filename

示例:
读取 ESP82660x40000000 内存地址开始的 4KB 内容,保存到 iram0.bin

3. 载入 bin 到 RAM 执行 – load_ram

详细说明 参考文档

无命令参数

命令参考用法:
esptool load_ram [-h] filename

示例:
ESP8266 可执行的 image 加载到 ram 中,然后立即执行其中包含的程序

4. 读内存 – read_mem

详细说明 参考文档 无命令参数 命令参考用法: esptool.py read_mem [-h] address

示例: 读取 ESP8266 上内存地址为 0x400C0000 中的值 (4字节)

5. 写内存 – write_mem

详细说明 参考文档

无命令参数

命令参考用法:
esptool write_mem [-h] address value mask

示例:
0x400C0000 地址写入 0xabad1dea

6. 读 flash 状态 – read_flash_status

详细说明 参考文档

命令参数说明:

  • --bytes: 可选 1,2,3, 要读的字节数
  • --spi-connection:或 -sc, 指定 ESP32 SPI/HSPI 连接配置,具体参考文档命令参考用法:

esptool read_flash_status [-h] [--spi-connection SPI_CONNECTION][--bytes {1,2,3}]

示例:

7. 写 flash 状态 – write_flash_status

详细说明 参考文档

命令参数说明:

  • --bytes: 可选 1,2,3, 要读的字节数
  • --spi-connection:或 -sc, 指定 ESP32 SPI/HSPI 连接配置,具体参考文档
  • --non-volatile: 写入非易失位

命令参考用法:
esptool write_flash_status [-h] [--spi-connection SPI_CONNECTION][--non-volatile] [--bytes {1,2,3}] value

示例:

8.读 chip id – chip_id

详细说明 参考文档

无命令参数

命令参考用法:
esptool chip_id [-h]

示例:

9. 组装 bin – make_image

详细说明 参考文档 命令参数说明:

    • --segfile: 或 -f, 输入的 segment 文件
    • --segaddr: 或 -a, segment 基地址
    • --entrypoint: 或 -e, 入口地址

命令参考用法: esptool make_image [-h] [--segfile SEGFILE] [--segaddr SEGADDR][--entrypoint ENTRYPOINT] output 示例:

10. 退出 boot, 执行 app – run

详细说明 参考文档

无命令参数

命令参考用法:
esptool run [-h]

示例:

发表在 应用工具软件 | 标签为 | 留下评论

宝塔的WebHook+Gitee配置自动拉取远程仓库代码

宝塔webhook对接 码云 自动 pull

一.   准备工作

码云申请账号,建立仓库

服务器安装宝塔,GIT和webhook

二.

1.服务器安装 GIT

2.宝塔安装 webhook插件

3.添加脚本

注意:

其中 “$1”是参数,是你码云仓库的名称,脚本内容大致是:”收到通信后,去指定的地方拉取master的分支代码

发表在 系统分类 | 标签为 , | 留下评论