狂人山庄 Madman Hills

A man entering midage

ssl

Cloudflare SSL验证一直卡在Pending Validation(TXT)

最近有两个域名DNS改到Cloudflare,SSL证书验证一直卡在 待验证(TXT) Pending Validation(TXT),禁用通用 SSL(Disable Universal SSL)也试了很多次,不管怎么搞也解决不了这个问题。 后来想到了一点,这两个域名都开启了DNSSEC,域名DNS转移到Cloudflare后,一直没更新DS记录。 解决方法是,在Cloudflare的DNS管理页面,开启DNSSEC,把DS记录在域名注册商后台更新,问题解决。
云服务

使用Cloudflare Tunnel实现内网穿透,把服务器架在家里

Cloudflare Tunnel是Cloudflare零信任网络的一个产品,用于打通企业、员工、设备之间的边界,从而摒弃掉VPN之类的过时技术(其实也不是过时,只不过是相对来说安全性、可控性较差) 通过Cloudflare Tunnel,可以实现云与设备之间打通一条加密通道,这样Cloudflare的CDN就可以很方便的通过这条加密通道访问到部署在内网的服务,包括Web、SSH等。同时,还不用考虑电信、移动等ISP不提供固定IP地址、不能开放端口,甚至解决备案的问题。 而且,还免费。 所以,整套内网穿透的方案大致如下 前置条件 * 首先,你要有一个Cloudflare的账号,并且添加了所需要使用的域名,同时,开通Cloudflare Zero Trust。 * 本地内网有一台Linux服务器。CentOS、Ubuntu、Debian都无所谓,树莓派也没问题。Web网站正常跑,内网能正常访问。 安装Cloudflared Cloudflared是Cloudflare Tunnel的一个本地cli客户端,可以实现管理功能和守护程序。 macOS可以用homebre
7 min read
mac

彻底干掉烦人的.DS_Store文件

macOS系统会持续在目录里面不断的生成.DS_Store文件,用来存储当前目录的一些个性化设置信息,但这真的很烦人,每次删掉后,又会自动重新创建。真不知道苹果的产品经理和工程师是怎么想的。 但在macOS新版本里头,提供了一个小脚本专门来处理这个问题。不但可以删掉.DS_Store,还可以针对某个文件夹专门设置规则,不再创建。这对我等开发人员来说,实在是太贴心了。 这个小脚本叫dot_clean,位置在/usr/sbin 比如要禁止某个目录创建.DS_Store,那么只需要在terminal里面运行 /usr/sbin/dot_clean -m '目录名' 比如要禁止Downloads目录及子目录 /usr/sbin/dot_clean -m ~/Downloads 这个命令还有另外一个功效,自动删掉已经创建的.DS_Store,实在是一了百了
1 min read
Outline

本地快速部署Outline

Outline是一款类似于Notion的笔记本/团队协作Wiki软件。因为Outline在一开始就面向的团队协作,所以这款应用部署异常的难,中文的就更少了。我自己捣鼓了几天,基本把这玩意搞清楚了,快速记录下折腾过程。 阅读这篇文章之前,先假设你懂域名,会折腾服务器,会一些基础的服务器运维。这批文章将不会重点讲Web服务器部署之类的事情。 另外,Web前端的反向代理是用的Caddy,NGINX用户自行转换配置文件。 环境准备 你要先准备以下东西: * 一个域名,配置一个主域和一个二级域。比如note.naizhao.com(用户访问Outline)和storage.naizhao.com(用于Outline存储附件),然后IP地址指向你的服务器 * Docker运行环境 * 一个微软账号,可以登陆到https://portal.azure.com/。本文将以Azure AD登陆为基础 * 一个MailJet或者MailGun或者其他的SMTP账号,用于Outline发送邮件 * 网站根目录在/var/www/com/naizhao/note 以上准备完毕,开整
10 min read
RaspberryPi

移远EC200U-CN AA在树莓派下使用

EC200U-CN AA是个USB Dongle,除了支持Cat 1的LTE以外,还支持GPS/北斗等GNSS,价格便宜,合适放到树莓派上当移动数据使用。 设备在树莓派下会被识别成cdc_ether的设备,官方并没有提供树莓派的使用文档,给过来的Linux脚本设备名称也不对,网上看了不少文档,结果发现走了很多弯路。 首先需要把模块给识别成USB Serial,加载成功后,会识别出ttyUSB0-ttyUSB7共8个设备。官方的脚本里面调用的是ttyUSB3,这个端口不对(应该是GPS的端口),直接用ttyUSB0就可以了。 先lsusb看看设备是否被识别 pi@raspberrypi:~ $ lsusb Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub Bus 001 Device 004: ID 2c7c:0901 Quectel Wireless Solutions
4 min read
技术

Windows 11硬盘对拷后丢失UEFI启动的解决方法

过年期间给Onexplayer换了个2T的新硬盘,结果换完后死活在UEFI里面找不到Windows 11的启动项,用PE工具来修复也不成功,最后还是手工搞定。 先找一个Win11的安装U盘启动,然后进入修复系统-高级-命令行。 c:\> diskpart diskpart> list disk diskpart> sel disk #(#是装有Windows的硬盘号,一般是0) diskpart> list volume diskpart> sel volume #(#是UEFI的SYSTEM分区号) diskpart> assign letter=K: diskpart> exit c:\> format K: /FS:FAT32 c:\> bcdboot C:\windows /s K:
1 min read
网络

TP-LINK AC使用OpenWRT作为DHCP Server

TP-LINK的AC,如果把自身的DHCP Server关闭后,会导致所有的AP连接不上AC进行集中的管理。其实只需要OpenWRT的DHCP Server在下发的option里面附带AC的IP地址就可以了。 指定AC常用的option有43、60、138,一般的AC/AP下发43就够了。但TP-LINK比较特殊,不认43,只认60和138。所以需要在OpenWRT配置下面的参数: list dhcp_option '60,TP-LINK' list dhcp_option '138,10.0.1.1'
技术

如何下载macOS安装包及加入beta测试

下载完整安装包 # softwareupdate --fetch-full-installer --full-installer-version **.**.* 比如 # softwareupdate --fetch-full-installer --full-installer-version 10.15 加入开发者测试版 sudo /System/Library/PrivateFrameworks/Seeding.framework/Versions/A/Resources/seedutil enroll DeveloperSeed 加入公共测试版 sudo /System/Library/PrivateFrameworks/Seeding.framework/Versions/A/Resources/seedutil enroll PublicSeed 退出测试版 sudo /System/Library/PrivateFrameworks/Seeding.framework/Versions/A/Resources/seedutil unen
飞行

中国民航局CAAC签发的飞行驾照如何换成美国FAA的飞行驾照?

基本上国内的文章都只说了如何把FAA的飞行驾照换成CAAC的飞行驾照,CAAC换成FAA的倒是没看到有人提过。 为什么要换FAA驾照?虽然ICAO说了,驾照在ICAO的公约国全球通用,但仅限于 * 在驾照颁发国开驾照颁发国注册的飞机(比如在中国驾驶B开头的注册号) * 在非驾照颁发国开驾照颁发国注册的飞机(比如在美国、英国驾驶B开头的注册号) 如果,拿着中国CAAC发的驾照,去美国开N开头的飞机,是不可以的。 同理,拿着美国FAA发的驾照,在中国开B开头的飞机,也是不可以的。 但好就好在,ICAO开了个口子,各国虽然不能直接飞,但可以先『换』一个当地的驾照,这样就可以在当地飞了。而且原来国家的驾照也不会作废。 FAA换CAAC,需要的手续比较多,也比较繁琐。需要重新考笔试、做体检。但CAAC换FAA就没这么麻烦了,只需要经过一个简单的『验证』(Verify)过程就可以了,不需要笔试,不需要实操,甚至都不需要在美国体检(Holds a medical certificate issued under part 67 of this
3 min read
技术

Caddy 2 如何设置CORS

Caddy 2 去掉了专门的CORS插件,所以需要额外的去重写header,以便支持Access-Control-Allow-Origin "*" route { try_files {path} {path}/ /index.php?{query} php_fastcgi unix//tmp/php-cgi.sock { header_down Access-Control-Allow-Origin "*" } } header_down表示,从上游的服务器(PHP、node等)取回数据后,重写header。同理,header_up则是把header传给/重写给上游服务器(如用户的浏览器类型、referer等)。 Caddy 2的Caddyfile改变很大,顺便附上一个参考配置 https://test.bra.do { encode zstd gzip log
1 min read
技术

小白如何从零开始安装Discuz! Q内测版

首先强调一点:当前Discuz! Q还是很早期的版本,主要是面向开发者,让开发者提前介入模板和插件的开发。或者有经验的站长,作为早期体验和选型。 但如果是不很懂技术的小白,也想体验的话,可以按照下面的方法来安装。并且保证是全新的服务器。如果这些条件都不具备,或者用了宝塔面板之类的第三方工具,不建议安装使用。 因为,当前官方开发人员的主要精力,集中在开发迭代新功能上,并没有太多精力来帮助没经验的用户安装使用。 UPDATE:URLOS提供了Discuz! Q的Docker一键安装脚本,欢迎体验 安装Discuz! Q内测版,首先你要具备以下条件 * 一个腾讯云实名认证过的账号,并且使用了DNSPod,在DNSPod至少有一个域名。(并不是为了强绑腾讯云,而是为了保证初期内测使用的用户都是强需求的) * 一台船新的腾讯云的CVM,操作系统可以是CentOS或者Ubuntu或者Debian,最新版本即可。当然阿里云或者华为云或者本地虚拟机也可以。但一定要干净,没装过任何东西。 * 在腾讯云账号中心的API密钥管理,获取到SecretId和SecretKey。注意:请
8 min read
技术

Mac电脑从AD域退出后如何清除密码有效期

设备入域后,都会被强制下发一系列的账号安全性及系统设置的限制。比如密码要求8位以上,混合大小写和数字等。即使退域后,这些设置也都还存在。 如果想修改某些设置,可以用下面的方法 $ pwpolicy -getaccountpolicies > account.xml 打开上面的account.xml,按照自己的需要修改或者删除内容。因为是xml格式,所以记得要把第一行Getting global account policies给删掉,不然导入时会报错。 修改完后,导入 $ pwpolicy -setaccountpolicies account.xml 或者更狠的方式,清理所有下发的规则,重置回系统默认 $ pwpolicy -clearaccountpolicies 改完以后,Mac就不会三天两头让你更换新密码了,也不会提示密码的复杂度不够、和前几个密码相同。
1 min read