Sam Wu

Sam Wu

GuangZhou
Server

把物理机的Windows Server 2022迁移到PVE

物理机跑了个Windows Server 2022作为AD,现在准备迁移到Proxmox Virtual Environment(PVE),大概记录下步骤 物理机用了UEFI来启动Windows,PVE就不折腾了,直接用了传统的BIOS。所以迁移过程中需要做一些特殊处理。 迁移过程 1、PVE创建一个新的虚拟机(模板选择Default (i440fx)) 2、Windows安装Virtio Win驱动 3、Windows安装VMware Converter或者Disk2vhd,用来创建P2V的镜像。 4、Windows导入注册表mergeide.reg 5、创建物理机镜像。可以用第3步提到的两个工具(用一个就够了,看个人喜好选择,Disk2vhd比较瘦身)。参考截图 6、把创建好的.vhdx或者.vmdk丢到PVE可以访问到的地方。比如NAS、比如PVE本地磁盘。 7、把虚拟盘转换成qcow2格式并导入虚拟机 我们假设PVE创建好的虚拟机的ID是100,那么 cd /path/to/vm/image/100
5 min read
网络

千万别用TP-Link的Mesh

如果自己有核心路由,那就老老实实把TP-Link用来当AP好了。别想着用什么易展,什么Mesh。因为TP-Link会自己劫持一道数据包再转发。如果把TP-Link的无线路由器接到子交换机上,甚至还会出现TP自己充当子交换机的出口,忽略掉子交换机本身的网线出口。 话不多说,直接上图 TP-Link 无线路由器插到子交换机时,会把整个交换机的数据包劫持,特别是流量很大的交换机,延迟很厉害 从子交换机摘掉TP-Link无线路由后,易展主无线路由会劫持整个局域网,造成3.x ms的延迟 整个局域网把易展功能去掉,TP-Link的无线路由只当做纯AP使用 这才像是一个正常的局域网。
1 min read
Server

Intel 82583V 网卡在Windows Server 2022下安装驱动

Intel 82583V,J1900软路由中的『最高端』网卡,Intel都不提供支持了,更别说有什么驱动能更新能用。网上各种求助,也有人拿着修改过的来卖钱。 其实不用这么麻烦,进入『设备管理器』,在识别不出来的网卡上点击右键,选『更新驱动程序』 选『浏览我的电脑以查找驱动程序』 选择『让我计算机上的可用驱动程序列表中选取』 选『网络适配器』 左侧厂商选择『Intel Corporation』,右侧型号选择『Intel(R) 82580 Gigabit Network Connection』 弹出的警告里面选『是』 安装完毕,愉快的玩耍吧 连接使用一切正常
2 min read
Active Directory

Outline整合KeyCloak的OIDC登录

前面几篇文章讲到了《Docker Compose安装Keycloak》、《Keycloak使用群晖Synology Directory Server作为AD/LDAP用户数据源》,我们已经实现了KeyCloak的安装和与群晖NAS的整合,那么接下来我们需要用这个AD的用户数据源为一系列服务提供账号登陆支持。Gitlab已经讲过了,那么接下来可以试一下Outline。 Outline是一个比较新的,类似Notion的在线记事本,我前面也讲了如何快速部署Outline。但之前是用了Azure Active Directory,在手机的EDGE浏览器登录的时候,非要拉起微软自己的APP,华为手机还不支持。所以我们现在要干掉Azure Active Directory,改为自己的群晖AD用户。 1、KeyCloak中创建新的Realm 首先,我建议是单独创建一个realm,不要使用KeyCloak默认的master,好处是可以做到用户数据和应用的隔离,保证KeyCloak的安全性。 登录KeyCloak的后台,左上角有个下拉,默认是master,点击下拉菜单,然后点击『Create
4 min read
技术

Keycloak使用群晖Synology Directory Server作为AD/LDAP用户数据源

这又是keycloak的另外一个大坑。keycloak并不会自动创建一系列SSL证书相关的配置,都要自己手撸。 如果还没安装keycloak,可以参考前一篇文章『Docker Compose安装Keycloak』 然后,你的群晖要先把AD配置好,这里就不重复了。 1、获得群晖AD对应的SSL证书 首先,要把群晖为AD所生产的自签名SSL证书下载回来,后面需要用。 位置:群晖DSM管理后台-控制面板-安全性-证书。如果不太确定是哪张证书,可以点击『设置』,找到『Synology Directory Server』对应的证书下拉。 在对应的证书上点击右键,选择『导出证书』 导出的证书解压后有两个文件,一个是证书本身cert.pem,另外一个是证书的私钥privkey.pem,我们需要用到的是cert.pem 💡UPDATE 另外一个使用OpenSSL来获取证书的方法(方便不支持导出的LDAP服务器) openssl s_client -showcerts -verify 5 -connect <AD/LDAP服务器IP或者域名>:636
6 min read
技术

Docker Compose安装Keycloak

Keycloak的安装其实挺烦人的,相关文章并不多,参考也不多,很多例子都是旧版本的,随手记录下安装和配置信息吧。 使用的数据库是postgresql,假设已经有安装好的postgresql,并且默认管理员账号是postgres,那么我们先创建keycloak的用户 su - postgres # 我们创建一个名为keycloak的pgsql用户,和名为keycloak的数据库 createuser -s -P keycloak createdb keycloak -O keycloak 然后我们创建一个文件,docker-compose.yml version: "3" services: keycloak: image: quay.io/keycloak/keycloak:20.0 container_name: keycloak environment: KC_HOSTNAME: <域名,如sso.naizhao.com>
3 min read
Synology

Gitlab整合群晖Synology Active Directory

群晖自己的文章并没有相关的帮助文档,网上也搜不到,这里留下来做个备份吧。 1、群晖先创建AD域 这里假定你设置的域名是wu.work,NetBIOS是wu,域管理员账号是ad-admin。大概类似截图中的样子 域管理员账号是你创建AD时输入的,不是NAS的管理员账号,别搞错了! 2、编辑gitlab.rb 如果你是用docker-compose安装的,应该会在docker-compose.yml里面指定了config目录的volume,在config目录里面就可以找到gitlab.rb。如果你是其他方式安装,文件在/etc/gitlab。如果还是找不着,自己Google。 打开gitlab.rb文件,找到ldap部分,然后把下面的内容贴进去(自己根据情况修改) 注意空格和缩进,注意空格和缩进,注意空格和缩进!!! # LDAP gitlab_rails['ldap_enabled'] = true gitlab_rails['prevent_ldap_sign_in&
3 min read
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实现内网穿透,把服务器架在家里

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