在公司需要查阅资料和安装npm包,所以研究了几年虚拟机安装软路由进行代理访问的方法,期间得到很多虚拟化和网络方面的知识,记录一下几个比较经典的问题
本文不是教程,而是笔记
NAT网卡被强制指定IP
hyper-v 的lan(内部交换机) 会自动将宿主机的接口设置成固定IP(该交换机网端),代替DHCP
每次更改为DHCP后可以拿到软路由分配的IP,但是每次重启,又会变回手动指定IP,所以开机无网络。
可以在powershell里面用这个命令创建虚拟交换机来解决
restic是用golang编写的,只需要下载预编译文件放到环境变量即可
https://restic.net/#installation
1 | export RESTIC_REPOSITORY="/backup/restic-repo" |
1 | export RESTIC_REPOSITORY="s3:https://[oss-cn-shenzhen.aliyuncs.com]/<bucket-name>/[path]" |
1 | 01 6 * * * . ~/.bashrc; restic backup /path/to/my-file |
restic不会去备份软连接的目标文件,例如你的/etc/nginx是从/usr/local/nginx/etc 链接的
当你执行restic backup /etc/nginx 后,你将只备份了一个软连接,而不是nginx的配置文件夹
同步是类似mysql的主从同步或者简单的文件同步,将一份数据多地可用,实现减少延迟或是增加QPS
备份用在数据损坏时恢复:例如黑客入侵,磁盘损坏,机房故障等情况
备份需要可追溯历史,因为有些故障不是当时就发现的,
例如你发现一个用户的资料页面显示了错误字符
怀疑可能是一年前的某次错误操作导致的,需要那时候的原始数据来核对,这时候就需要寻找历史备份
备份需要增量备份节省空间,如果无法增量,就无法保存太久的历史
无法用同步代替备份主要是因为同步无法追溯历史,
另一个原因是某些数据损坏具有传染性,例如黑客篡改数据,错误的数据将会传播到每一个节点
谨慎的使用 “同步+文件版本管理” 代替备份,因为备份的回溯邀请更加类似于“快照”,而不是“版本”
本地备份能实现回溯而不能防范另外两种数据损坏
多主互相同步实现的容灾意味着,更高的维护成本和更多的问题(冲突和同步延迟) 显然是得不偿失的
毫无疑问的,这是一个反义的影片名,具体的情节我就不重复了,感兴趣的可以自己去观看,在此只是记录一下自己
看过影片后的感受。
ubuntu:
apt install syncthing
syncthing
替换apt安装的老旧版本 https://github.com/syncthing/syncthing/releases
systemctl enable syncthing@root
and systemctl start syncthing@root
ssh -LN 9999:localhost:8384 <远程地址>
,然后在浏览器访问 http://127.0.0.1:9999
windows:
https://github.com/canton7/SyncTrayzor#installation
SyncTrayzorPortable-x64\SyncTrayzor.exe
这里一定要注意不要搞错了,syncthing.exe
那么配置文件位置不一样,后面再切换成 SyncTrayzor.exe
会丢掉之前的配置http://127.0.0.1:8384
然后在页面配置同步
在2020年,各大APP厂商终于意识到了,一味的实时通知,其实不会更好
反而原始的邮件列表形式对用户更友好,
更能将信息可靠的给到用户,而实时的通知很容易被忽略。
因为现在各种各样的推送太多了,用户没有时间一一辨别,
很多就直接闭着眼睛点确认了,而且事后需要的时候又找不到这个信息。
现在,支付宝,钉钉,微信。淘宝之类的,都已经回归消息列表形式,例如异常登录,支付回执,物流更新等
但是国外的苹果还没有跟上,例如appleid的登陆确认,就还是即时消息形式,当你晚上有时间了想回头确认一下刚才那个提醒是否重要,可能是什么导致的,这时候你将没有任何凭证可以查询
今天上班后,老婆对我说加油💪!
我实在是加不起什么油,不过是按照开发文档按部就班不急不火的写些应付了事的代码,老板既不重视我的工作成果,也不愿意让我闲着,就随意糊弄找些无关紧要的工作内容让我做着,还一本正经的要我给出交付时间,保证按期完成工作。
但是我知道,如果老板心情好,也许会在拿到程序后花上三分钟看一下然后不再过问,但是业务部门拿到程序后,最多不过三五天,就会将我花费半个月或者一两个月开发的程序忘到脑后。
依旧刀耕火种的使用原始手段继续执行它们的业务,这彷佛就像你给野人部落送去一套现代农具被他们仍在角落,然后仍然使用木头石头和黄土搏斗。
就这样,直到下一次领导又惊觉IT部没有足够的工作量,又会开始下一轮的指挥业务部门想出一些轻浮的点子,交给IT部,开启新一轮的制造程序,扔进抽屉,再制造程序,再扔进抽屉。
每个半年或者一年,翻一翻抽屉,找出这些程序。大声说,这个功能不能用,不符合现在的业务现状,又或者说这个功能的需求提出者已经离职了,不知道这个功能是出于什么目的设计的,然后这个程序就被定义为垃圾,扔进垃圾桶
你能想象吗?,这几乎是在垃圾桶上方制作东西,制作完成后直接被扔进垃圾桶。我不知道拥有什么样的心态才能不敷衍了事的制作这些程序。
折腾过很多文件共享服务
文件列表类:
多媒体类:
文件管理类:
seafile
NAS服务器类
openmediavault
虚拟机群晖(全洗白)
最近两年热衷于折腾NAS,记录一下我尝试过的内外网切换的经验
这个问题是类似负载均衡自动切换线路的问题,但是比纯粹互联网上的负载均衡更加复杂,涉及到内外网切换场景下的最优线路选择
无论在DNS层面、路由器层面、还是应用层,都没法很好的解决
DDNS + 局域网Hosts 分别指向公网IP、内网IP的方案
VPN模式
路由支持的端口映射走内网模式
内外网使用不同IP/端口
zerotier 一类的P2P SDN软件定义网络
目前看来很好用,内网外网切换毫无问题
在开发和维护公司的一套系统两年后,对用户系统总结出了一点经验之谈
简单的md5,简单的sha1/sha256,固定的盐值,多层嵌套哈希,都不会提供额外的安全性
参见:伯乐在线 - 蒋生武 加盐密码哈希:如何正确使用
如果你有额外的安全性需求,不要认为HTTPS是救世主
涉及到账户本身的操作,不能仅凭登录态来授权验证,例如“修改密码” “绑定/解绑手机”之类的操作,需要验证登陆密码或者二次验证,因为一旦用户流量被劫持,session或者token被盗取,黑客无法盗走账户,用户还可以通过更改密码取回自己的账号