笔记¶
Docker On Win10
简介
- WSL 2 是对WSL基础体系结构的一次重大改造,它使用虚拟化技术和 Linux 内核来实现其新功能。
- docker是基于linux内核运行
- WSL 2 加入了linux内核为docker在windows上运行铺平了道路
系统要求
开启虚拟化 + Hyper-V
- BIOS开启虚拟化
- 查看是否开启:任务管理器 -> 性能 -> CPU 虚拟化:开启
- Control Panel(控制面板) -> Programs and Features(程序和功能) -> Turn Windows Features on or off(启用或关闭Widnows功能)勾选三项
- Windows Hypervisor Platform(Windows虚拟机监控程序平台)
- Hyper-V
- 虚拟机平台
- 管理员Powershell运行
bcdedit /set hypervisorlaunchtype auto
- 重启
WSL 2
参考教程安装 WSL和旧版 WSL 的手动安装步骤
# 查看当前版本
❯ wsl -l -v
NAME STATE VERSION
* Ubuntu-20.04 Stopped 1
❯ wsl --set-version Ubuntu-20.04 2
正在进行转换,这可能需要几分钟时间。
操作成功完成。
E:/PowerShell via v14.17.3 via 🐍 v3.9.7 took 59s
❯ wsl -l -v
NAME STATE VERSION
* Ubuntu-20.04 Stopped 2
docker on Windows
注意:用命令行运行来修改默认安装路径(重命名install.exe),参考教程
安装完之后运行设置 * 开启开机启动 * 在Resources里修改image保存路径使用问题
1: read-only file system
Error response from daemon: container df6ee73697883e8e09edd65404e1fcc19a2b4bfb49212c754a8b3ef9741d7bda: driver "overlay2" failed to remove root filesystem: unlinkat /var/lib/docker/overlay2/475c350b02589ce2cb5ef30f0619ed3aeaba409c56d87191b8cbbd00ef618fe3: read-only file system
C盘没空间
WSL还是超级占用C盘
需要进一步的研究学习
暂无
遇到的问题
暂无
开题缘由、总结、反思、吐槽~~
参考文献
https://blog.csdn.net/Antarctic_Bear/article/details/123489609
Linux Auto Run : crontab
导言
定时自动任务
- 最近遇到了一堆机器,想白嫖,但是如果不是自己的机器,因为某些原因重启,IP变动就再也连接不上了。所以需要一个自启动push-IP的脚本,特此学习一下。
- 可以用户登录的时候显示信息,记录信息,静止某些IP登录
crontab的使用
任务调度
Linux下的任务调度分为两类:系统任务调度和用户任务调度。
Linux系统任务是由 cron (crond) 这个系统服务来控制的,这个系统服务是默认启动的。用户自己设置的计划任务则使用crontab 命令。
crontab 命令
-u user
:用于设定某个用户的crontab服务;file
: file为命令文件名,表示将file作为crontab的任务列表文件并载入crontab;-e
:编辑某个用户的crontab文件内容,如不指定用户则表示当前用户;-l
:显示某个用户的crontab文件内容,如不指定用户则表示当前用户;-r
:从/var/spool/cron目录中删除某个用户的crontab文件。-i
:在删除用户的crontab文件时给确认提示。
crontab文件
- crontab有2种编辑方式:
- 直接编辑
/etc/crontab
文件,其中/etc/crontab
里的计划任务是系统中的计划任务, - 通过
crontab –e
来编辑用户的计划任务;- 每次编辑完某个用户的cron设置后,cron自动在/var/spool/cron下生成一个与此用户同名的文件,此用户的cron信息都记录在这个文件中,这个文件是不可以直接编辑的,只可以用crontab -e 来编辑。
- 所有用户定义的crontab 文件都被保存在
/var/spool/cron
目录中。其文件名与用户名一致。
- 直接编辑
- crontab中的command尽量使用绝对路径,否则会经常因为路径错误导致任务无法执行。
- 新创建的cron job不会马上执行,至少要等2分钟才能执行,可从起cron来立即执行。
%
在crontab文件中表示“换行”,因此假如脚本或命令含有%,需要使用\%
来进行转义。
配置文件实例:
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
HOME=/
MAILTO=root # MAILTO变量指定了crond的任务执行信息将通过电子邮件发送给root用户,如果MAILTO变量的值为空,则表示不发送任务执行信息给用户
# * * * * * user-name command to be executed
@reboot /home/user/test.sh #可以实现开机自动运行
@reboot sleep 300 && /home/start.sh # 延时启动
@reboot
表示重启开机的时候运行一次。还有很多类似参数如下:
string meaning
------ -----------
@reboot Run once, at startup.
@yearly Run once a year, "0 0 1 1 *".
@annually (same as @yearly)
@monthly Run once a month, "0 0 1 * *".
@weekly Run once a week, "0 0 * * 0".
@daily Run once a day, "0 0 * * *".
@midnight (same as @daily)
@hourly Run once an hour, "0 * * * *".
# For details see man 4 crontabs
# Example of job definition:
# .---------------- minute (0 - 59)
# | .------------- hour (0 - 23)
# | | .---------- day of month (1 - 31)
# | | | .------- month (1 - 12) OR jan,feb,mar,apr ...
# | | | | .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
# | | | | |
* */1 * * * /etc/init.d/smb restart # 每一小时重启smb
在以上各个字段中,还可以使用以下特殊字符:
*
代表所有的取值范围内的数字,如月份字段为*
,则表示1到12个月;/
代表每一定时间间隔的意思,如分钟字段为*/10
,表示每10分钟执行1次。-
代表从某个区间范围,是闭区间。如2-5
表示2,3,4,5
,- 组合:小时字段中
0-23/2
表示在0~23点范围内每2个小时执行一次。
- 组合:小时字段中
,
分散的数字(不一定连续),如1,2,3,4,7,9
。
查看crontab的日志记录和状态
tail -f /var/log/cron
观察查看cron运行日志(/var/log/cron.log),但是并未找到相关文件,原因是ubuntu默认没有开cron日志,执行命令:
less -10 /var/log/cron.log
再次查看cron运行日志,log出来了,提示如下信息:
原因是cron把屏幕输出都发送到email了,而当前环境并未安装email server,于是系统报错,解决方面就是不要直接向屏幕输出内容,而是重定向到一个文件。
实例
夜间利用机器进行批量实验
如果Linux系统有时差,需要加8小时在0、3、6点。
crontab on OpenWRT
# 1.编辑好脚本加入cron
crontab -e
* * * * * sh /root/tst.sh
# 2.创建cron初始化脚本 vi /etc/init.d/S60cron,添加下面内容
#!/bin/sh
#start crond
/usr/sbin/crond -c /etc/crontabs
# 修改权限
chmod 755 /etc/init.d/S60cron
# 3.手动启动crond
/etc/init.d/S60cron
# 4.查看crond任务
logread -e cron
# 5.重启crond
killall crond; /etc/init.d/S60cron
# 6.禁用crond日志 修改/etc/init.d/S60cron
/usr/sbin/crond -c /etc/crontabs -L /dev/null
运行push-IP脚本
其他自动化方法
https://zhuanlan.zhihu.com/p/35402730
https://blog.csdn.net/qq_35440678/article/details/80489102
https://neucrack.com/p/91
开题缘由、总结、反思、吐槽~~
参考文献
https://www.linuxprobe.com/how-to-crontab.html
https://martybugs.net/wireless/openwrt/cron.cgi
Network InterConnect
不同带宽与距离的互连技术
System Area Network(系统域网):主机及外设
Local Area Network(局域网):以太网
Metropolitan Area Network(城域网):WiMax
Wide Area Network(广域网):因特网,X.25
没有公网IP: FRP反向代理
需要进一步的研究学习
暂无
遇到的问题
暂无
开题缘由、总结、反思、吐槽~~
如果在外地,需要访问单位或者家庭的内网:
用ipv6,通过VPN(wireguard)连接到我寝室的路由器,然后通过路由器上网,所以可以访问校内网络。
台式机不关机,用台式机的wireguard也可以访问。
参考文献
Family Wi-Fi
Wi-Fi
Wi-Fi是一个创建于IEEE 802.11标准的无线局域网技术。基于两套系统的密切相关,也常有人把Wi-Fi当做IEEE 802.11标准的同义术语。
Wi-Fi这个术语被人们普遍误以为是指无线保真(Wireless Fidelity),并且即便是Wi-Fi联盟本身也经常在新闻稿和文件中使用“Wireless Fidelity”这个词,Wi-Fi还出现在ITAA的一个论文中。但事实上,Wi-Fi一词没有任何意义,也是没有全写的。
WiFi4/5/6
WIFI6 是802.11ax协议,支持2.4GHz和5GHz,支持更多的技术,更高的调制方式。比如 1. 调制模式方面,WiFi 6 支持 1024-QAM,高于 WiFi 5 的 256-QAM,数据容量更高,意味着更高的数据传输速度; 2. 此外,WiFi 6 加入了新的 OFDMA 技术,支持多个终端同时并行传输,有效提升了效率并降低延时,这也就是其数据吞吐量大幅提升的秘诀。 3. WiFi6通过更优质的Long DFDM Symbol发送机制,将每个信号载波发送时间从WiFi5的3.2μs提升到12.8μs,有效降低丢包率和重传率,使传输更加稳定。 4. WiFi6容量更大:多用户MU-MIMO技术允许电脑讯网时间多终端共享信道,使多台手机/电脑一起同时上网,从此前低效的排队顺序通过方式变成为“齐头并进”的高效方式。
各种网络及速率
无线路由器发展到现在有IEEE802.11b、IEEE802.11g、IEEE802.11a、IEEE802.11n、IEEE802.11ac标准,对应的无线速率分别是11Mbps、54 Mbps、150 Mbps、300Mbps、1Gbps。这里的无线速率指的是无线传输通过的最高速率。
这里拿300Mbps的无线路由器速率来说一下路由器的传输速度,300Mbps无线路由器指的是传输和接收最大能通过的速率,一般看到的只是传输的速度,也就是只能看到一半的速度,也就是150Mbps,这个是理论速率,但是在实际使用过程中由于环境的干扰,会有衰减。所以在实际使用过程中都只剩下110 Mbps左右。
WLAN
WLAN是Wireless Local Area Network的简称,指应用无线通信技术将计算机设备互联起来。
WLAN起步于1997年。当年的6月,第一个无线局域网标准IEEE802. 11正式颁布实施,为无线局域网技术提供了统一标准,但当时的传输速率只有1~2 Mbit/s。随后,IEEE委员会又开始制定新的WLAN标准,分别取名为IEEE802.11a和IEEE802. 11b。IEEE802. llb标准首先于1999年9月正式颁布,其速率为11 Mbit/s。经过改进的IEEE802. 11a标准,在2001年年底才正式颁布,它的传输速率可达到54 Mbit/s,几乎是IEEE802. llb标准的5倍。尽管如此,WLAN的应用并未真正开始,因为整个WLAN应用环境并不成熟。
目前使用最多的是802. 11n(第四代)和802. 11ac(第五代)标准,它们既可以工作在2.4 GHz频段也可以工作在5 GHz频段上,传输速率可达600 Mbit/s(理论值)。但严格来说只有支持802. 11ac的才是真正5G,现来在说支持2.4 G和5G双频的路由器其实很多都是只支持第四代无线标准,也就是802. 11n的双频,而真正支持ac 5G的路由最便宜的都要四五百元甚至上千元。
移动网络
4G与5G的区别
在有线介质上传播数据,想要高速很容易,实验室中,单条光纤最大速度已达到了26Tbps。
无线电磁波传播,才是瓶颈。
3/4/5G的频率
3G的四种标准和频段:CDMA2000、WCDMA、TD-SCDMA、WiMAX,1880MHz-1900MHz和2010MHz-2025MHz。
4G的频率和频段是:1880-1900MHz、2320-2370MHz、2575-2635MHz。
我国的5G初始中频频段,3.3-3.6GHz、4.8-5GHz两个频段。24.75-27.5GHz、37-42.5GHz高频频段正在征集意见。国际上主要使用28GHz进行试验
路由器
MAC地址20-6B-E7-DB-D7-33
WAN口与LAN口
WAN是英文Wide Area Network的首字母所写,即代表广域网;而LAN则是Local Area Network的所写,即本地网(或叫局域网)。WAN口主要用于连接外部网络,而LAN口用来连接家庭内部网络,两者主要会在标识上面有区别,此外大部分路由器的WAN口只有一个,LAN口则有四个或以上。
管理界面
根据路由器背面的提示登陆,可以修改Wi-Fi名称密码、限制设备上下行速率以及黑名单设备。(注意关闭clash代理
DHCP服务器
Dynamic Host Configuration Protocol动态主机配置协议是一个局域网的网络协议。指的是由服务器控制一段IP地址范围,客户机登录服务器时就可以自动获得服务器分配的IP地址和子网掩码。担任DHCP服务器的计算机需要安装TCP/IP协议,并为其设置静态IP地址、子网掩码、默认网关等内容。
采用DHCP方式对上网的用户进行临时的地址分配。也就是你的电脑连上网,DHCP服务器才从地址池里临时分配一个IP地址给你,每次上网分配的IP地址可能会不一样,这跟当时IP地址资源有关。
SSID
Service Set Identifier是指服务集标识。SSID技术可以将一个无线局域网分为几个需要不同身份验证的子网络,每一个子网络都需要独立的身份验证,只有通过身份验证的用户才可以进入相应的子网络,防止未被授权的用户进入本网络。
无线信道
信道,也称作通道或频段。无线信号是以某一频率传送数据的。2.4G频段的工作频率为2.4-2.4835GHz,这83.5MHz频带划分为13个信道,各信道中心频率相差5MHz,向上向下分别扩展11MHz,信道带宽22MHz。中国采用欧洲/ETSI标准,使用1-13信道。
频段带宽
20Mhz和40Mhz的区别,你可以想象成道路的宽度,宽度越宽当然同时能跑的数据越多,也就提高了速度。
20MHz对应的是65M带宽,穿透性相对较好,40MHz对应的是150M带宽,穿透性肯定不如20MHz 所以追求稳定的话就选择20MHz,近距离传输就可以选择40MHZ。
当然,无线网的“道路”是大家共享的,一共就这么宽(802.11 b/g/n的频带是 2.412Ghz ~ 2.472Ghz,一共60Mhz。像802.11a/n在中国可用的频带是5.745Ghz ~ 5.825Ghz,同样也是60Mhz),你占用的道路宽了,跑得数据多了,当然就更容易跟别人撞车,一旦撞车大家就都会慢下来,比你在窄路上走还要慢。
如图,原来挤一挤可以四个人同时用的,如果你用了40Mhz的话就只能两个人同时用了。所以哪个更好的问题和你多大的房子无关,最主要的是你附近有多少个人跟你一起上路的,用NetStumbler这种扫描软件可以很容易看清楚周围频带的占用情况,如果你附近没什么人用,那么恭喜你,用40Mhz来享受高速吧!如果周围“车辆”很多,那么你最好还是找一个车少点的“车道”,老老实实用20Mhz比较好。
NetStumbler
04年停止更新的软件,不支持我笔记本的网卡
11bgn mixed
无线协议: 11b..=网络速度运行在11b网络标准,11g..=网络速度运行在11g网络标准,11n..=网络速度运行在11n网络标准。
如果你不知道你的无线设备是什么级别,802.11b/g/n是最好的选择。如果只使用.11n,旧设备可能存在兼容性问题。当然,速度是支持N的最快方式,但是它必须与特定的设备相结合。
实际的情况是,无线局域网的实际传输速度只能达到产品标称最大传输速度的一半以下;比如802.11b理论最大速度为11M,通过笔者的测试,在无线网络环境较好的情况下,传输100MB的文件需要3分钟左右;而相同的环境,换为支持802.11g的产品,传输100MB的文件就只需要30秒左右。
150M的网络理论下载速率
150M 全写是 150Mbps,注意这里是小b,是位数。所以与MB的兆字节是不一样的,需要除8,加上一点损耗。150Mbps网络有15MB/s就不错了。
怎么判断网络是百兆还是千兆
- 通过路由器WAN口速率设置,10/100M自动协商
如果是有线PC的话,看网卡信息,如果连接速度是1G的就是千兆网络,如果100M 就是百兆。
第二种方法: 测试下载速度,如果下载速度能够达到12.5MB/s以上就是千兆(1000/8),反之就是百兆。
第三种方法: 看交换机上的速度灯,如果千兆灯亮就是千兆,百兆灯亮就是百兆。如图(绿灯千兆,黄灯百兆)
家里明显是加强的百兆网络。
全双工和半双工
区别是:1、全双工允许数据在两个方向上同时传输;2、半双工允许数据在两个方向上传输,但是同一时间数据只能在一个方向上传输,实际上是切换的单工。
同样是100M的链路,一条是全双工,另一条是半双工,如果两条链路上都进行单向通信的话,理论上是都可以达到100M的(注意:这里全双工也只有100M),但是如果两条链路都进行双向通信就不一样了,双向通信时,全双工的链路的吞吐量是200M(两个方向每个方向上都是100M),而半双工最大也只有100M。但是虽然全双工的最大吞吐量能够达到200M,但是他使用的最大带宽永远都是100M,你不可能将双向的200M变成单向的200M。
因此全双工的带宽=半双工的带宽,全双工的吞吐量=2×半双工的吞吐量。
WPA2-PSK
WPA/WPA2
WPA/WPA2是一种最安全的加密类型,不过由于此加密类型需要安装Radius服务器,因此,一般普通用户都用不到,只有企业用户为了无线加密更安全才会使用此种加密方式,在设备连接无线WIFI时需要Radius服务器认证,而且还需要输入Radius密码。
WPA-PSK/WPA2-PSK
WPA-PSK/WPA2-PSK是我们现在经常设置的加密类型,这种加密类型安全性能高,而且设置也相当简单,不过需要注意的是它有AES和TKIP两种加密算法。 1. TKIP:Temporal Key Integrity Protocol(临时密钥完整性协议),这是一种旧的加密标准。 2. AES:Advanced Encryption Standard(高级加密标准),安全性比 TKIP 好,推荐使用。
使用AES加密算法不仅安全性能更高,而且由于其采用的是最新技术,因此,在无线网络传输速率上面也要比TKIP更快。
CommView
软件首次运行时,会提示你安装一个特别的无线网卡驱动,这个驱动可以使你的无线网卡处在混杂模式,接收周围的任何无线报文。
软件启动时,无线网卡模式被改变,无线网络是无法使用的。
我虽然看不懂,但是我大受震撼。但是只能5分钟试运行
无线传输原理
比如,我在图书馆上网的时候,我的电脑并没有收到对面妹子的web请求包回复啊?无线数据包已经发送到你的无线网卡,但是你的网卡一看(主要受网卡驱动影响),不是我的请求数据包啊,于是丢弃了。
使用commview for wifi破解Windows无线网络WEP加密的密钥
需要进一步的研究学习
为什么comview里好多华为,是很多人开了手机热点吗?
Type – node type. Possible values are AP (for access points), STA (for stations in infrastructure mode) and AD HOC (for stations in ad hoc mode).
家庭网络改造
当前现状
- 套餐:公务员免费移动百兆套餐
- 网络设备:
- 光猫自带的wifi,最高只支持到wifi4 的2.4GHz
- 不支持ipv6的垃圾TP-link路由器
改进
- 将路由器更换为wifi6,直接跑满百兆(在学校里都能随便千兆的)
遇到的问题
暂无
开题缘由、总结、反思、吐槽~~
暑假回到家,把家里的WiFi弄一下
参考文献
https://www.zhihu.com/question/53878059
OpenWRT on router
OpenWRT Installation on router
原理
原理在路由器的两个flash(firmware和firmware1)的两个系统里,写入一个支持图形化OpenWRT的新系统
查看路由器型号是否支持
查看系统型号[^1]:路由器默认是魔改的openwrt的系统:
root@XiaoQiang:~# cat /etc/os-release
NAME="OpenWrt"
VERSION="18.06-SNAPSHOT"
ID="openwrt"
ID_LIKE="lede openwrt"
PRETTY_NAME="OpenWrt 18.06-SNAPSHOT"
VERSION_ID="18.06-snapshot"
HOME_URL="http://openwrt.org/"
BUG_URL="http://bugs.openwrt.org/"
SUPPORT_URL="http://forum.lede-project.org/"
BUILD_ID="unknown"
LEDE_BOARD="mediatek/mt7622"
LEDE_ARCH="aarch64_cortex-a53_neon-vfpv4"
LEDE_TAINTS="no-all glibc busybox"
LEDE_DEVICE_MANUFACTURER="OpenWrt"
LEDE_DEVICE_MANUFACTURER_URL="http://openwrt.org/"
LEDE_DEVICE_PRODUCT="Generic"
LEDE_DEVICE_REVISION="v0"
LEDE_RELEASE="OpenWrt 18.06-SNAPSHOT unknown"
刷入OpenWRT后:
root@ax6s:~# cat /etc/os-release
NAME="OpenWrt"
VERSION="22.03.2"
ID="openwrt"
ID_LIKE="lede openwrt"
PRETTY_NAME="OpenWrt 22.03.2"
VERSION_ID="22.03.2"
HOME_URL="https://openwrt.org/"
BUG_URL="https://bugs.openwrt.org/"
SUPPORT_URL="https://forum.openwrt.org/"
BUILD_ID="r19803-9a599fee93"
OPENWRT_BOARD="mediatek/mt7622"
OPENWRT_ARCH="aarch64_cortex-a53"
OPENWRT_TAINTS=""
OPENWRT_DEVICE_MANUFACTURER="OpenWrt"
OPENWRT_DEVICE_MANUFACTURER_URL="https://openwrt.org/"
OPENWRT_DEVICE_PRODUCT="Generic"
OPENWRT_DEVICE_REVISION="v0"
OPENWRT_RELEASE="OpenWrt 22.03.2 r19803-9a599fee93"
路由器开启dropbear
dropbear 是一种轻量级sshd服务
nvram set ssh_en=1 # 不是1也退出1
/etc/init.d/dropbear start # 脚本start段里增加了判断,稳定版不让启动直接退出
netstat -n # 查看22端口
修改/etc/dropbear/authorized_keys
来添加ssh公钥
Redmi-Ax6s实操
Step1: 打开 telnet access
- installing a beta version of the stock firmware (miwifi_rb03_firmware_stable_1.2.7_closedbeta.bin)上传文件安装
Step2: 获取密码,本地运行返回密码。<S/N>
为产品序列号(可以在路由器下面的标签上找到序列号。)
#!/usr/bin/env python3
import sys
import hashlib
if sys.version_info < (3,7):
print("python version is not supported", file=sys.stderr)
sys.exit(1)
# credit goes to zhoujiazhao:
# https://blog.csdn.net/zhoujiazhao/article/details/102578244
salt = {'r1d': 'A2E371B0-B34B-48A5-8C40-A7133F3B5D88',
'others': 'd44fb0960aa0-a5e6-4a30-250f-6d2df50a'}
def get_salt(sn):
if "/" not in sn:
return salt["r1d"]
return "-".join(reversed(salt["others"].split("-")))
def calc_passwd(sn):
passwd = sn + get_salt(sn)
m = hashlib.md5(passwd.encode())
return m.hexdigest()[:8]
if __name__ == "__main__":
if len(sys.argv) != 2:
print(f"Usage: {sys.argv[0]} <S/N>")
sys.exit(1)
serial = sys.argv[1]
print(calc_passwd(serial))
Step3: telnet到机器上(ssh不行). 密码为前面设置的(登录上去passwd把密码改简单)
XiaoQiang login: root
Password:
BusyBox v1.25.1 (2021-10-25 11:02:56 UTC) built-in shell (ash)
-----------------------------------------------------
Welcome to XiaoQiang!
-----------------------------------------------------
$$$$$$\ $$$$$$$\ $$$$$$$$\ $$\ $$\ $$$$$$\ $$\ $$\
$$ __$$\ $$ __$$\ $$ _____| $$ | $$ | $$ __$$\ $$ | $$ |
$$ / $$ |$$ | $$ |$$ | $$ | $$ | $$ / $$ |$$ |$$ /
$$$$$$$$ |$$$$$$$ |$$$$$\ $$ | $$ | $$ | $$ |$$$$$ /
$$ __$$ |$$ __$$< $$ __| $$ | $$ | $$ | $$ |$$ $$<
$$ | $$ |$$ | $$ |$$ | $$ | $$ | $$ | $$ |$$ |\$$\
$$ | $$ |$$ | $$ |$$$$$$$$\ $$$$$$$$$ | $$$$$$ |$$ | \$$\
\__| \__|\__| \__|\________| \_________/ \______/ \__| \__|
root@XiaoQiang:~# ls
Step4: 先备份, 路由器flash有若干分区,其中有一个分区存储路由器MAC地址、无线校准参数等。若损坏可能导致无线信号弱等问题。因此刷之前最好备份。
-
通过cat /proc/mtd,知道对应关系
root@XiaoQiang:/tmp# cat /proc/mtd dev: size erasesize name mtd0: 07f80000 00020000 "ALL" mtd1: 00080000 00020000 "Bootloader" mtd2: 00040000 00020000 "Config" mtd3: 00040000 00020000 "Bdata" mtd4: 00040000 00020000 "Factory" mtd5: 00040000 00020000 "crash" mtd6: 00040000 00020000 "crash_syslog" mtd7: 00040000 00020000 "cfg_bak" mtd8: 00400000 00020000 "kernel0" mtd9: 00400000 00020000 "kernel1" mtd10: 01a00000 00020000 "rootfs0" mtd11: 01a00000 00020000 "rootfs1" mtd12: 02600000 00020000 "overlay" mtd13: 01b80000 00020000 "obr" mtd14: 00c1c000 0001f000 "ubi_rootfs" mtd15: 021e8000 0001f000 "data"
-
备份,其中Factory中存储了EEPROM的数据
cat /dev/mtd4 > Factory.dump cat /dev/mtd3 > Bdata.dump #on windows scp [email protected]:/tmp/factory.bin . scp [email protected]:/tmp/factory.bin .
Step5: 准备刷OpenWRT
-
路由器ssh终端,配置环境变量
```bash # nvram写入flash # Enable uart and boot_wait, useful for testing or recovery if you have an uart adapter! nvram set ssh_en=1 # 设置串口打开,以便ssh失败时,硬件debug nvram set uart_en=1 nvram set boot_wait=on # Set kernel1 as the booting kernel nvram set flag_boot_success=1 nvram set flag_try_sys1_failed=0 nvram set flag_try_sys2_failed=0 # Commit our nvram changes nvram commit ```
-
电脑本地准备传输可执行文件(开启了ssh服务,直接scp传上去即可)
- Rename the file openwrt-mediatek-mt7622-xiaomi_redmi-router-ax6s-squashfs-factory.bin you previously downloaded to your computer to
factory.bin
- in the same directory where the file factory.bin is located, run the following command
python -m http.server
- Rename the file openwrt-mediatek-mt7622-xiaomi_redmi-router-ax6s-squashfs-factory.bin you previously downloaded to your computer to
-
路由器ssh终端,配置环境变量接受并运行
-
完成后重启,默认ip变成
192.168.1.1
- 失败加上
nvram set "boot_fw1=run boot_rd_img;bootm"
重来
WireGuard Server in OpenWRT
OpenWRT换软件安装源
修改/etc/opkg/distfeeds.conf
的配置,参考
下面为x86软路由的源(由于是snapshot的安装不了,内核不匹配),如果是arm的需要看对应架构代号。
src/gz openwrt_core https://mirrors.ustc.edu.cn/openwrt/releases/22.03.3/targets/x86/64/packages
src/gz openwrt_base https://mirrors.ustc.edu.cn/openwrt/releases/22.03.3/packages/x86_64/base
src/gz openwrt_luci https://mirrors.ustc.edu.cn/openwrt/releases/22.03.3/packages/x86_64/luci
src/gz openwrt_packages https://mirrors.ustc.edu.cn/openwrt/releases/22.03.3/packages/x86_64/packages
src/gz openwrt_routing https://mirrors.ustc.edu.cn/openwrt/releases/22.03.3/packages/x86_64/routing
src/gz openwrt_telephony https://mirrors.ustc.edu.cn/openwrt/releases/22.03.3/packages/x86_64/telephony
比如ax6s
[root@ax6s ~]$ cat /etc/opkg/distfeeds.conf
src/gz openwrt_core https://downloads.openwrt.org/releases/22.03.2/targets/mediatek/mt7622/packages
src/gz openwrt_base https://downloads.openwrt.org/releases/22.03.2/packages/aarch64_cortex-a53/base
src/gz openwrt_luci https://downloads.openwrt.org/releases/22.03.2/packages/aarch64_cortex-a53/luci
src/gz openwrt_packages https://downloads.openwrt.org/releases/22.03.2/packages/aarch64_cortex-a53/packages
src/gz openwrt_routing https://downloads.openwrt.org/releases/22.03.2/packages/aarch64_cortex-a53/routing
src/gz openwrt_telephony https://downloads.openwrt.org/releases/22.03.2/packages/aarch64_cortex-a53/telephony
可以通过cat /etc/os-release
查看, 上面的如下
root@OpenWrt:~# cat /etc/os-release
NAME="OpenWrt"
VERSION="SNAPSHOT" # snapshot是开发版的意思
PRETTY_NAME="OpenWrt SNAPSHOT"
VERSION_ID="snapshot"
BUILD_ID="r5636-25f88e06f"
OPENWRT_BOARD="x86/64"
OPENWRT_ARCH="x86_64"
[root@ax6s ~]$ cat /etc/os-release
NAME="OpenWrt"
VERSION="22.03.2"
PRETTY_NAME="OpenWrt 22.03.2"
VERSION_ID="22.03.2"
BUILD_ID="r19803-9a599fee93"
OPENWRT_BOARD="mediatek/mt7622"
OPENWRT_ARCH="aarch64_cortex-a53"
WireGuard安装服务端程序
- eSir精品小包固件下载地址(感谢esir的辛勤付出)
- 内置了wireguard(使用对等节点的公私钥加密)
-
OpenWrt安装WireGuard命令(eSir精品小包已集成WireGuard,无需安装)
WireGuard服务端设置
具体步骤
- 配置WG服务器端公私钥
- OpenWrt的luci界面配置服务器节点
- OpenWrt-网络-防火墙设置
- 如果OpenWrt做主路由,还需要在防火墙->通信规则中开放端口
- 假如是旁路由,需要设置端口转发
- 如果OpenWrt做主路由,还需要在防火墙->通信规则中开放端口
- 为每个客户端节点创建密钥
- OpenWrt->网络->接口,修改原本的WG0设置。修改Peers
1. 左下角
更多选项
选择预共享密钥,添加 2. 由于不能同时用,所以每个机器要单独配置,不能公用
WireGuard客户端设置
客户端模板文件test.conf
[Interface]
Address = 192.168.100.2 约定的IP
PrivateKey = cprivatekey文件内容
DNS = 路由器IP
[Peer]
PublicKey = spublickey文件内容
AllowedIPs = 0.0.0.0/0
//上面代表所有流量走WG。如果启用下面这行代码,表示只有192.168.2.0/24, 192.168.100.0/24这两个子网的IP走WireGuard
//逗号前是家庭局域网的IP段,后面是VPN的IP段
//AllowedIPs = 192.168.2.0/24, 192.168.100.0/24
PresharedKey=sharedkey内容
Endpoint = 公网IP(动态域名):端口号
PersistentKeepalive = 25
WireGuard配置匹配一览图
"[Interface] Address" is the address that gets assigned to the (virtual) network interface (e.g. wg0).
简单来说客户端和服务器端约定的相同的虚拟地址来通信。
注意防火墙放行端口
官方客户端软件下载
WireGuard常见问题
注意:如果连接不上
- 首先保证路由器有网,不是路由器下的电脑有网
- 上次师兄的电脑开了OpenVPN上网,导致路由器ipv6能ping通,但是不能上网
- 注意防火墙,一个是wan口允许某几个端口进来(wg连接请求)。另一个是wan能到wg,wg也能到wan,才能实现上网
- 至于和lan的关系,如果需要通过wg访问lan口下的设备(nas,电脑)再打开即可。
Clash in OpenWrt
- 安装版本来自github
- 但是由于DDNS会出问题,所以关闭了。(可以考虑2次wireguard蹭网和clash for linux)
- BT,PT有时也会被代理,需要注意。
安装编译好的 IPK 文件(openwrt 的软件包)
安装依赖
#iptables
opkg update
opkg install coreutils-nohup bash iptables dnsmasq-full curl ca-certificates ipset ip-full iptables-mod-tproxy iptables-mod-extra libcap libcap-bin ruby ruby-yaml kmod-tun kmod-inet-diag unzip luci-compat luci luci-base
#nftables
opkg update
opkg install kmod-nft-tproxy
wget https://github.com/vernesong/OpenClash/releases/download/v0.45.59-beta/luci-app-openclash_0.45.59-beta_all.ipk
root@ax6s:/tmp# opkg install luci.ipk
Installing luci-app-openclash (0.45.59-beta) to root...
Configuring luci-app-openclash.
cfg117882
重启后出现
注意不会代理ping,所以ping不通的话,可以用curl来测试代理是否生效。https失败可以尝试http
安装问题
Collected errors:
* check_data_file_clashes: Package dnsmasq-full wants to install file /etc/hotplug.d/ntp/25-dnsmasqsec
But that file is already provided by package * dnsmasq
* check_data_file_clashes: Package dnsmasq-full wants to install file /etc/init.d/dnsmasq
But that file is already provided by package * dnsmasq
* check_data_file_clashes: Package dnsmasq-full wants to install file /usr/lib/dnsmasq/dhcp-script.sh
But that file is already provided by package * dnsmasq
* check_data_file_clashes: Package dnsmasq-full wants to install file /usr/sbin/dnsmasq
But that file is already provided by package * dnsmasq
* check_data_file_clashes: Package dnsmasq-full wants to install file /usr/share/acl.d/dnsmasq_acl.json
But that file is already provided by package * dnsmasq
* check_data_file_clashes: Package dnsmasq-full wants to install file /usr/share/dnsmasq/dhcpbogushostname.conf
But that file is already provided by package * dnsmasq
* check_data_file_clashes: Package dnsmasq-full wants to install file /usr/share/dnsmasq/rfc6761.conf
But that file is already provided by package * dnsmasq
* opkg_install_cmd: Cannot install package luci-app-openclash.
解决办法如下
DDNS in OpenWRT
DDNS简介
Dynamic DNS: 根據網際網路的域名訂立規則,域名必須跟從固定的IP位址。但動態DNS系統為動態網域提供一個固定的名稱伺服器(Name server),透過即時更新,使外界使用者能夠連上動態使用者的網址。
cloudflare动态域名 或者阿里云动态域名的DDNS都是很好的选择。
定时脚本实现DDNS
[root@ax6s ~]$ cat ddns.sh
#!/bin/bash
Network=wan@eth0
Date=`echo $'\n\n' >> /tmp/ddns_ipv4`
Date=`echo "$(date)" >> /tmp/ddns_ipv4`
IPv4=`ip a|grep -A 2 ${Network}|sed -n '3p'|awk '{print $2}' |sed -e 's/\/[0-9]*//'`
echo $IPv4 >> /tmp/ddns_ipv4
IPv6=`ip a|grep -A 4 ${Network}|sed -n '5p'|awk '{print $2}' |sed -e 's/\/[0-9]*//'`
echo $IPv6 >> /tmp/ddns_ipv4
curl -v http://v6.sync.afraid.org/u/4TY5…………tKF/?address=${IPv6} 2>&1 >> /tmp/ddns_ipv4
curl -v http://sync.afraid.org/u/M8uh9Zf…………ryjxs/?address=${IPv4} 2>&1 >> /tmp/ddns_ipv4
修改crontab -e
PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/sbin:/usr/local/bin
4,9,14,19,24,29,34,39,44,49,54,59 * * * * sleep 11 ; /root/ddns.sh
OpenWRT 为局域网设备设置IPv6 DDNS
脚本围绕,打印邻居路由表命令
[root@ax6s ~]$ ip -6 neigh | grep 2c:f0:5d
2001:da8:d800:611:1818:61b6:6422:56a1 dev br-lan lladdr 2c:f0:5d:ac:1d:2c DELAY
2001:da8:d800:611:5464:f7ab:9560:a646 dev br-lan lladdr 2c:f0:5d:ac:1d:2c STALE
2001:da8:d800:611:4d13:ead8:9aaf:bfc4 dev br-lan lladdr 2c:f0:5d:ac:1d:2c REACHABLE
2001:da8:d800:611:a063:863f:caa3:4a73 dev br-lan lladdr 2c:f0:5d:ac:1d:2c STALE
2001:da8:d800:611:8c75:4f49:f9d0:42b6 dev br-lan lladdr 2c:f0:5d:ac:1d:2c STALE
新建 /usr/lib/ddns/dynamic_dns_iphelper.sh
#!/bin/sh
get_ip(){
MAC=$1
if [ "$MAC" = "" ]
then
exit 0
fi
IP=$(ip -6 neigh | grep -i $MAC | grep -v "fe80:" | grep -E "REACHABLE|STALE" | cut -d" " -f1 | grep -m 1 -E -o "([0-9a-fA-F]{1,4}(:?)){8}")
if [ "$IP" = "" ]
then
IP=$(mac_to_ipv6_ll $MAC $(get_ip_prefix))
fi
echo $IP
}
mac_to_ipv6_ll() {
PREFIX="fe80::"
if [ "$#" = 2 ]; then
PREFIX=$2
fi
IFS=':'; set $1; unset IFS
echo "$PREFIX$(printf %02x $((0x$1 ^ 2)))$2:${3}ff:fe$4:$5$6"
}
get_ip_prefix() {
IP_PREFIX=$(ip -6 addr | awk '{print $2}' | grep '::1' | grep -m 1 -E -o "([0-9a-fA-F]{1,4}(:?)){4}")
echo $IP_PREFIX
}
if [ "$1" != "" ]; then
echo `get_ip $1`
fi
新建 /usr/lib/ddns/getip_demo.sh
#!/bin/sh
. /usr/lib/ddns/dynamic_dns_iphelper.sh
# 遵循 EUI-64 的设备使用这个方式 可以获取到静态后缀的IPv6地址
# 00:00:00:00:00:00修改为目标设备的MAC地址
echo $(mac_to_ipv6_ll "00:00:00:00:00:00" $(get_ip_prefix))
# 或者
#!/bin/sh
. /usr/lib/ddns/dynamic_dns_iphelper.sh
# 00:00:00:00:00:00修改为目标设备的MAC地址
# 不遵循 EUI-64 的设备 可以获取到动态IPv6地址
echo `get_ip "00:00:00:00:00:00"`
脚本chmod +x
就行
School Network
- 根据学校的网络通各个端口的说明,0号端口没有经过NAT,登录之后获得公网ipv4。但是IPv4封了许多端口(至少ssh的22端口是不行的)
- IPv6是直接可以ssh访问的。
参考文献
https://www.youtube.com/watch?v=F8z74oE71Gg&t=19s
https://xiumu.org/technology/openwrt-set-for-local-area-network-lan-equipment-ipv6-ddns.shtml
FTP
FTP简介
FTP是File Transfer Protocol(文件传输协议)的缩写,用来在两台计算机之间互相传送文件。相比于HTTP,FTP协议要复杂得多。复杂的原因,是因为FTP协议要用到两个TCP连接,一个是命令链路,用来在FTP客户端与服务器之间传递命令;另一个是数据链路,用来上传或下载数据。
主动与被动模式
FTP协议有两种工作方式:PORT方式和PASV方式,中文意思为主动式和被动式。
区别主要在于数据通道的建立方式:
- 主动模式:服务器向客户端敲门,然后客户端开门
- 在主动模式中,客户端向服务器发送一个随机端口号,服务器再用这个端口号和客户端建立数据通道。这样,服务器需要知道客户端的 IP 地址和端口号,并且能够穿透客户端的防火墙。
- 如果通过代理上网的话,就不能用主动模式,因为服务器敲的是上网代理服务器的门,而不是敲客户端的门
- 客户端也不是轻易就开门的,因为有防火墙阻挡,除非客户端开放大于1024的高端端口
- 被动模式:客户端向服务器敲门,然后服务器开门
- 在被动模式中,服务器向客户端发送一个随机端口号,客户端再用这个端口号和服务器建立数据通道。这样,客户端不需要公开自己的 IP 地址和端口号,并且只需要打开出站连接的防火墙。
ftp命令行登录
常用命令
- 下载文件通常用get和mget这两条命令。
- 上传文件put和mput
- 断开连接bye
ftp空间
但是这个是当前目录的文件,不包括文件夹
1字节=1B,1024B=1KB
Ubuntu ftp服务器部署
- 安装
- 配置文件 /etc/vsftpd/vsftpd.conf
local_enable=YES # 是否允许本地用户访问
local_root=/home/kaikai_ftp/ftpdir # 自定义上传根目录
write_enable=YES # 允许用户修改文件权限
- vsftpd虚拟用户
- 运行
systemctl restart vsftpd.service
重启
sudo service vsftpd start
开机启动
sudo systemctl enable vsftpd
查看运行情况
sudo service vsftpd status
vsftpd虚拟用户
虚拟用户
- 虚拟用户,只对ftp有效的用户。这些用户不可以登录Linux系统,只可以登录ftp服务器。其实就是一个本地用户映射成多个只对ftp服务器有效的虚拟用户。虚拟用户可以有自己的ftp配置文件,因此通常利用虚拟用户来对ftp系统的不同用户制定不同的权限,以达到安全控制的目的。与虚拟用户有关的设置以guest_开头。
- 匿名用户,也就是不需要输入密码就可登录ftp服务器的用户,这个用户名通常是ftp或anonymous; 与匿名用户有关的设置多以 anon_选项开头。
- 本地用户,也就是你Linux系统上可登录到系统的用户,这些用户是在系统上实实在在存在的用户。通常会有自己的home,shell等。与本地用户有关的设置多以local_开头或包含local_的选项。
●所有虚拟用户会统一映射为一个指定的系统帐号:访问共享位置,即为此系统帐号的家目录
●各虚拟用户可被赋予不同的访问权限,通过匿名用户的权限控制参数进行指定
具体命令
- 创建用户数据库文件
- 文件需要被加密编码为hash格式奇数行为用户名,偶数行为密码
sudo apt-get install db-util # install db_load
sudo db_load -T -t hash -f vusers.txt vusers.db #该 db_load 实用程序可用于将文本文件加载到数据库中
chmod 600 vusers.db
- 创建用户和访问FTP目录
sudo useradd -d /data/ftproot -s /sbin/nologin -r vuser
# -d, --home-dir HOME_DIR home directory of the new account
# -s, --shell SHELL login shell of the new account
# -r, --system create a system account
mkdir -pv /data/ftproot/upload #-pv 是没有父路径也会创建
setfacl -m u:vuser:rwx /data/ftproot/upload
# set file access control lists
# -m, --modify
#chmod a=rx /data/ftproot/ 如果自动创建家目录,需要改权限
- 创建pam配置文件
vim /etc/pam.d/vsftpd.db
auth required pam_userdb.so db=/etc/vsftpd/vusers
account required pam_userdb.so db=/etc/vsftpd/vusers
- 指定pam配置文件
vim /etc/vsftpd/vsftpd.conf
pam_service_name=vsftpd.db
userlist_enable=YES
guest_enable=YES #所有系统用户都映射成guest用户
guest_username=vuser #配合上面选项才生效,指定guest用户
user_config_dir=/etc/vsftpd/vusers.d/ #虚拟用户设置独立的配置文件
write_enable=YES
anonymous_enable=NO # 匿名访问是否允许,默认不要开启
local_enable=YES # 是否允许本地用户访问
local_root=/home/shaojiemike/ftpdir # 自定义上传根目录
虚拟用户设置独立的配置文件
指定各用户配置文件存放的路径
创建各个用户的配置文件存放路径,配置文件的文件名需要与用户名一致。 没有独立配置文件的虚拟用户会遵守/etc/vsftpd/vsftpd.conf这个主配置文件的权限配置。
mkdir /etc/vsftpd/vusers.d/
cd /etc/vsftpd/vusers.d/
vim ftp123
# 允许用户有自己的上传目录以及上传权限,添加这些参数以及值
local_root=/tmp/vutest_d
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
allow_writeable_chroot=YES
建立目录,更改目录的所有者与所属组
mkdir /tmp/vutest_d
chown vuser:vuser /tmp/vutest_d #还是那句话,用户能不能上传不仅与配置文件有关,还与目录是否有w权限有关,两个权限都开启才能正确上传。
chmod 755 upload
Linux-PAM 的配置文件
PAM 的各个模块一般存放在 /lib/security/ 或 /lib64/security/ 中,以动态库文件的形式存在,文件名格式一般为 pam_*.so。
PAM 的配置文件可以是 /etc/pam.conf 这一个文件,也可以是 /etc/pam.d/ 文件夹内的多个文件。如果 /etc/pam.d/ 这个文件夹存在,Linux-PAM 将自动忽略 /etc/pam.conf。
- /etc/pam.conf 类型的格式如下:
- /etc/pam.d/ 类型的配置文件通常以每一个使用 PAM 的程序的名称来命令。比如 /etc/pam.d/su,/etc/pam.d/login 等等。还有些配置文件比较通用,经常被别的配置文件引用,也放在这个文件夹下,比如 /etc/pam.d/system-auth。这些文件的格式都保持一致:
需要进一步的研究学习
Please read the vsftpd.conf.5 manual page to get a full idea of vsftpd's capabilities.
遇到的问题
- 尝试改shell,但首先不是这个问题
- 查看报错
我以为我是修改错文件了,但是好像没怎么简单
- 添加
报错
后来发现原因是,变量这一行不要加注释
guest_enable=YES
# 开启虚拟用户
4. 只改pam的路径为pam.db
报错
这很明显是没有指定用户
实际问题
home.ustc.edu.cn
ftp 上传的内容几秒中之内被覆盖了。这是学校网站的保护机制吗?(我之前调试修改太多了?)
ftp> get index.html
local: index.html remote: index.html
200 EPRT command successful. Consider using EPSV.
150 Opening BINARY mode data connection for index.html (360991 bytes).
226 File send OK.
360991 bytes received in 0.01 secs (25.7474 MB/s)
ftp> get index.html
local: index.html remote: index.html
200 EPRT command successful. Consider using EPSV.
150 Opening BINARY mode data connection for index.html (16116 bytes).
226 File send OK.
16116 bytes received in 0.00 secs (15.3082 MB/s)
I try single command line put site/index.html index.html
and after a minute get index.html
get the old file.
My USTC homepage is blocked
ftp> ls
200 EPRT command successful. Consider using EPSV.
150 Here comes the directory listing.
drwxr-xr-x 46 0 0 4096 Oct 25 10:03 public_html.old
226 Directory send OK.
ftp> mkdir public_html
550 Create directory operation failed.
ftp> put jumpPage.html
local: jumpPage.html remote: jumpPage.html
200 EPRT command successful. Consider using EPSV.
553 Could not create file.
参考文献
https://www.jianshu.com/p/ac3e7009a764
Webdav
简介
Webdav
WebDAV由互联网工程任务组的工作组在RFC 4918中定义。是基于Web的分布式编写和版本控制(WebDAV)是超文本传输协议(HTTP)的扩展,
WebDAV协议为用户在服务器上创建,更改和移动文档提供了一个框架。有利于用户间协同编辑和管理存储在万维网服务器文档。
WebDAV协议最重要的功能包括: * 维护作者或修改日期的属性、名字空间管理、集合和覆盖保护。 * 维护属性包括创建、删除和查询文件信息等。 * 名字空间管理处理在服务器名称空间内复制和移动网页的能力。 * 集合(Collections)处理各种资源的创建、删除和列举。 * 覆盖保护处理与锁定文件相关的方面。
- 可以使用https来保证安全
Samba / CIFS
局域网传输,没有加密
群晖开启WebDaV
参考教程, 开启 https 5555 端口, http 5556端口
设置特殊用户keeweb来访问下载文件夹keeweb下内容。如https://10.0.233.3:5555/keeweb/1.txt
windows挂载
安装RaiDrive
测速
大文件
在1.63GB大文件的时候,SMB能稳定的跑满千兆全速
2M中文件
首先通过split
来拆分文件来测试

4K小碎片
在4K的时候,WebDav较大优势
需要进一步的研究学习
暂无
遇到的问题
暂无
开题缘由、总结、反思、吐槽~~
- 网上有传言 WebDav 比 SMB快 8~9倍,但是有人质疑是缓存的原因
- keepass同步可以通过坚果云的WebDav
参考文献
https://www.rmnof.com/article/better-ways-to-use-webdav/
Keepass
简介
KeePass是一个轻量级、易用且安全性极高的密码管理器,其源码完全开源(OSI certified),获得了世界多国的安全认证和评级。
只需要一个主密码+一个数据库文件即可安全的保存所有的密码。
特点
- 密码数据库自己掌握,与1Password和LastPass相比不存在平台泄露的可能。
- 所以在云存储、多终端同步上不如商业产品1Password和LastPass便捷,需要自己配置。
- 跨平台(有大量开源的第三方的客户端)。
- 支持WebDAV,配合网盘可实现跨平台、多终端同步。
- Windows下可配置浏览器自动输入(Mac据说也可以)。
密码安全
普通用户面临的问题: * 重要的密码会泄露在非重要的地方:每个人心中都有一个常用的密码,这个密码在注册各类账户时都会拿出来用,甚至银行卡的6位数密码也包含其中 * 小网站的“脱裤”会导致你的常用密码被泄露 * 不同的网站对密码的复杂度要求不同,我们也会临时“演变”导致“找回密码”成了登录前的基本操作
美观兼容版
- KeePassXC:KeePassX的分支,功能齐全,
- 跨平台(Windows、macOS和Linux),
- 界面更加美观、扁平化,
- 但不支持WebDAV。
- 支持KDBX 3.1和4.0。
- KeeWeb:后起之秀,与KeePass兼容,功能齐全,
- 跨平台(Windows、macOS和Linux),
- 另有自动备份等功能,
- 界面美观;
- 支持在线安装插件;支持离线Web应用;
- 笔者认为是Mac OS的首选;使用坚果云webdav时报错:“No Last-Modified header”。
Windows KeeWeb使用
- 中文插件 https://plugins.keeweb.info/translations/zh-CN
- 设置里方便激活浏览器拓展
多平台
- Windows:KeePass、KeeWeb
- Android:KeePass2Android
- 读取群晖Drive下的文件即可
- 支持自动填充功能,和生物识别
- Mac OS:KeeWeb
- IOS、 ipad OS:
- https://github.com/keeweb/keeweb/wiki/iOS
- Strongbox 就还行
- iPhone:keepass touch
同步实现
坚果云
坚果云更像Dropbox, * 支持WebDAV、 * 增量同步和历史版本等功能。
坚果云免费版虽不如Dropbox,但也还算厚道: * 上传流量1G/月,下载流量3G/月, * 支持1个月的历史版本,用来使用KeePass、云笔记等足矣。
操作
- 添加“应用密钥”
- 在《账户信息》-《安全选项》
- keeweb 添加 即可
- 注意坚果云用户是 邮箱, 不是昵称
参考教程
但是keeweb无法同步,会报错
其他第三方密码管理器
LastPass、1Password、 秘迹 app
需要进一步的研究学习
暂无
遇到的问题
暂无
开题缘由、总结、反思、吐槽~~
原本我是懒得用的,edge自带的密码管理器不好吗?
- 一方面,自动填写带来的安全性问题。
- 目前大多数第三方密码管理器,如LastPass和1Password都不容易受到这种攻击的影响,因为它们避免了自动填入不可见的登录表单,并且需要进行用户交互。
- 可以直接导出所有信息的黑客程序HackBrowserdata
- 还有windows管理员密码获取程序。(如果要玩,记得先把火绒等杀毒软件关了
- 另一方面,假如你电脑被攻击了,浏览器根本无法保护你的密码
目标
- 多端同步的(Windows,macbook,ipad,Android)
- 浏览器有保存插件的(Safari,edge,chrome)
参考文献
https://www.rmnof.com/article/keepass-password-manager/