2024-12-22 16:02:57
美好时光一去不复返,在保守主义盛行的当下,未来的不确定性加大了。
差不多一年前写下了 2023 的总结,是时候写 2024 年的总结了!
总的来讲,今年是一个工作压力很高的一年,被老板搞的完全不高兴,也没有存到钱。
规则:可以是二级或者三级域名,不能是内网域名,不能是我自己的站,主域名不能重复,如果常用多个浏览器的结果冲突了,选择自己最经常去的
如果喜欢本文,欢迎点击下方的「鼓掌」按钮!
<noframes>This browser has disabled frames.</noframes>如果上面没有加载出任何东西,可以点击这里。
2024-11-26 20:25:35
每次都要折腾,这次记录一下。
sudo dnf install fcitx5 fcitx5-qt fcitx5-chinese-addons fcitx5-lua fcitx5-configtool fcitx5-gtk
因为 Fedora 41 已经默认 Wayland,根据Fcitx 官方文档,Wayland 桌面环境下不能设置 GTK_IM_MODULE
和 QT_IM_MODULE
,只能设置 XMODIFIERS=@im=fcitx
。这里先不设置,我们后面设置。
但如果你为了让 fcitx5 随系统启动而安装了 fcitx5-autostart
的话,那它会自动设置那两个参数,虽然能够在 Firefox、GIMP、gedit 等 GTK 软件下输入中文,但是无法在任何 QT 程序下输入中文。所以,不要安装 fcitx5-autostart
!
sudo dnf install fcitx5-rime
我之前虽然有配置文件,但懒得导入了,直接使用雾凇拼音吧。
rime_frontend=fcitx5-rime bash rime-install iDvel/rime-ice:others/recipes/full
最后,去设置 /etc/profile
环境以下参数,重启之后大功告成:
export XMODIFIERS=@im=fcitx
export QT_IM_MODULES="wayland;fcitx;ibus"
如果喜欢本文,欢迎点击下方的「鼓掌」按钮!
<noframes>This browser has disabled frames.</noframes>如果上面没有加载出任何东西,可以点击这里。
2024-11-09 17:56:43
仅仅更新了一点微小的东西。
又几个月过去了,没有什么设备变化,主要是网络上的变化。
跟 cola 大老板起了一个 OpenVPN,用于互相内网访问资源,当然因为一些网段冲突了所以无法访问。
在 Wireguard 的基础上起了个 VXLAN,于是在我这边开了个 VLAN,并且在 GS316EPP 处设置好 VLAN 并物理接入了一台设备,这台设备直接从对方的 Router 获取 DHCP,从而除了变相的实现代理上网以外,同时也能直接访问所在网段的资源。
因为其余不是我设置的,我只能发一下 GS316EPP 的设置:
VLAN ID | lan1 | lan13 | lan14 | lan15 | lan16 |
---|---|---|---|---|---|
1 | U | - | T | T | U |
10 | - | - | T | T | T |
20 | - | - | T | T | T |
30 | - | - | T | T | T |
50 | - | U | - | - | T |
40 | - | - | T | T | T |
100 | - | - | T | T | T |
200 | - | - | T | T | T |
大功告成。
每一周现在我都会压制日本电视的录制,目前都是在我自己的 PC 上压制,感觉很费时间,还要手动上传,打算借着将 E5 OneDrive for Business 同步接入 QNAP 的东风顺便把自动压制做了。
经过一个小时的考察,打算在 Proxmox 上再开一个 lxc,用 iGPU 来压制,这样可以跟 Jellyfin 共用一个 iGPU。如果在 QNAP 或者 Synology 上实现虽然也不是不行,但是感觉会影响 CPU,因为 yadif 这种 deinterlacer 好像是在 CPU 上跑的?
遂开始新建一个 Unprivileged container,同样的,因为我的 E5 同步是在 NAS 上的,所以要在 host 创建一个目录用于挂载文件。
mkdir -p /mnt/lxc_shares/e5
然后将挂载的相关信息写入 /etc/fstab
。
{ echo '' ; echo '# Mount CIFS share on demand with rwx permissions for use in LXCs ' ; echo '//SynologyIP/mount/QNAP-e5 /mnt/lxc_shares/e5 cifs _netdev,x-systemd.automount,noatime,uid=100000,gid=110000,dir_mode=0770,file_mode=0770,user=SynologyUsername,pass=SynologyPassword 0 0' ; } | tee -a /etc/fstab
其中,SynologyUsername
和 SynologyPassword
是你的群晖登录信息。也不要忘记更改 //SynologyIP/mount/QNAP-e5
这一部分,例如 //10.0.0.1/Videos
。
_netdev
让 systemd 认为挂载的是一个网络载点。
x-systemd.automount
如果 NAS 离线然后重新在线了,可以让它被自动挂载。
noatime
设置读取文件(夹)的时候不修改时间戳。
uid=100000,gid=110000
的设置是为了让 host 跟 LXC 内的 UID 和 GID 对应上。简单来说,host 内的 UID 是 100000 的话,LXC 内对应的 UID 就是 0。host 内的 GID 是 110000 的话,LXC 内对应的 GID 就是 10000。
dir_mode=0770,file_mode=0770
设置只有这个 UID 和 GID 才有读写执行权限。Proxmox 的 root 用户对任何文件都有权限。
接下来手动挂载。后面重启之后就是自动挂载。
mount /mnt/lxc_shares/e5
假设你已经创建好了 LXC,修改你的 LXC 设置。
{ echo 'mp0: /mnt/lxc_shares/e5,mp=/mnt/backup' ; } | tee -a /etc/pve/lxc/LXC_ID.conf
我这里需要读写文件夹(压制完再 copy 回去,从而直接上传到 E5),所以去掉了 ro=1
。
不要忘记将 LXC_ID.conf
里面的 LXC_ID
修改成你实际的 ID。
随后进入 LXC 的终端,添加一个用户组。GID=10000
的话会跟 host 的 GID=110000
对应上。
groupadd -g 10000 lxc_shares
因为我们之前已经做了 Jellyfin 的编解码支持已经设置过一次了,只需要照猫画虎。但这里我遇到了一个问题,我发现跟 Jellyfin 那边不同,我这边的 render
组默认是 993,而 108 被一个叫做 rdma
的组占领了。
root@machine:~# cat /etc/group | grep render
render:x:993:
此时我们需要做一个交换,思路就是,先更改 rdma
组的 GID 为 110,然后过一遍 filesystem 上的文件,将 108 组所有的文件改成 110,最后再将 render
组的 GID 更改为 108。
groupmod -g 110 rdma
groupmod -g 108 render
find / -gid 108 ! -type l -exec chgrp 110 {} \;
此时就大功告成了。因为我给自己开了个用户,所以我还需要将自己添加至 render
和 lxc_shares
。
usermod -aG render misaka00251
usermod -aG lxc_shares misaka00251
之后我在 lxc 内用 qsv 遇到了各种莫名其妙的问题,甚至遇到了 Intel 都知道的 bug,然后我转投了 vaapi 虽然可以压制但是画质不尽人意,而且参数非常复杂,最终跟 qsv 硬刚了一个周末,因为 bug 的原因,以前用 hevc 压制,目前只能用 h264 压制了。期待我能找到更好的方法吧。
压制脚本我就先留着不放了吧,怕还有 bug,有需要可以戳我,我单独给你 :D
如果喜欢本文,欢迎点击下方的「鼓掌」按钮!
<noframes>This browser has disabled frames.</noframes>如果上面没有加载出任何东西,可以点击这里。
2024-08-27 00:57:29
本来我是想获取 LOID 的,结果未果,先记录一下吧。
访问 192.168.1.1
使用用户名 CMCCAdmin
登录,密码为 aDm8H%MdA
。此时,你应该会被跳转到 192.168.1.1/start.ghtml
这个页面,此时不要关闭这个标签页 A。
新开一个浏览器标签页 B 或者窗口,访问 http://192.168.1.1/usr=CMCCAdmin&psw=aDm8H%MdA&cmd=1&telnet.gch
,如果出现 error 1010 代表你的密码错了,如果出现 TelnetSet Success! 代表 telnet 被开启了。
然后在这个新开的标签页 B 内访问 http://192.168.1.1/getpage.gch?pid=1002&nextpage=tele_sec_tserver_t.gch
,就可以看到 Telnet 的设置窗口,但不要在这里设置,我们回到最初的 URL 为 192.168.1.1/start.ghtml
的标签页 A,点击刷新,此时应该就会加载跟新标签页 B 一样的 Telnet 设置窗口。
这一步非常重要,如果是在新开的标签页 B 内更改密码的话是不会生效的。
在最初的标签页 A 内设置 telnet 密码之后,可以使用 putty 等软件用 telnet 协议登录啦。
用户名是 CMCCAdmin
,密码就是你自己刚刚设置的密码。进入光猫之后,输入 su
来获取 root 权限,密码是 aDm8H%MdA
。
然后运行 sidbg 1 DB decry /userconfig/cfg/db_user_cfg.xml
来 dump 你现在的光猫配置。解密后的文件在 /tmp/debug-decry-cfg
,如果想获取全文的话可以开启 putty 的 log output 功能,这样 cat 一下这个文件就可以变相的存在你的电脑上了。
但我在这个配置文件里面完全没有看到 LOID 信息,这个企业网关貌似不重置也无法重新认证来下发业务数据。不过在光猫的关于认证的设置页面里,可以看到 Password 模式 / LOID 模式 / SN 模式一闪而过,但随后又显示认证成功了。
如果喜欢本文,欢迎点击下方的「鼓掌」按钮!
<noframes>This browser has disabled frames.</noframes>如果上面没有加载出任何东西,可以点击这里。
2024-07-21 11:41:20
注意:这里讨论的是 mstsc.exe。
经常我在使用系统的远程桌面连接来连接 RDP 的时候选择了保存密码,但下一次连接时依然会让我输入密码。这太糟心了!
于是我从网上嫖了一个方法,打开你的 PowerShell:
cmdkey /list:TERMSRV/*
列出你所有存储的 RDP 登录信息。cmdkey /delete:<你的 target 名字>
先删除它。cmdkey /generic:TERMSRV/<IP 地址或者域名> /user:<用户名> /pass:<密码>
重新添加一个 Generic Type 的 Target。如果喜欢本文,欢迎点击下方的「鼓掌」按钮!
<noframes>This browser has disabled frames.</noframes>如果上面没有加载出任何东西,可以点击这里。
2024-06-28 15:14:23
也是一个小升级。
为了后续想部署一些 PoE+ 的设备,并且交换机还得有 VLAN 配置,所以购买了 Netgear 家的 GS316EPP。
然后,感觉现在的 9U 柜子太小,就想买个大点的柜子,然后为了让卧室变安静所以想放在客厅。结果当然是发现买的 12U 也太小了,里面真的超级热。
并且,我想将我的房间跟主干网(这个后续本来就想弄在客厅)之间使用光纤连接。正好我手上的 GS316EPP 和 CCR1009 都有 SFP 口。
首先将所有设备搬到客厅的机柜内,然后针对两个房间连接的需求拉明线(钉墙上)。因为我的移动光纤接入点在我的卧室,所以还需要买针对这个情况的光纤延长线。
之后,Mikrotik 上因为基本所有的设备都变动了,所以大改了一下。
随着网口设备的变动,VLAN 也要跟着变动:
基本就完成了。因为想把一些吵的设备放在客厅,其中包括了一些工作用的开发板,所以稍微对 Linksys 的 VLAN 进行调整:
VLAN ID | Local | lan1 | lan2 | lan3 | lan4 | wan |
---|---|---|---|---|---|---|
1 | v | - | - | - | - | U |
10 | v | U | U | - | - | T |
20 | v | - | - | - | - | T |
30 | v | - | - | U | U | T |
40 | v | - | - | - | - | T |
100 | v | - | - | - | - | T |
200 | v | - | - | - | - | T |
基本就完成了。
卧室的新交换机上,16 号口为 SFP,插入的同样为 Mikrotik S-85DLC05D 光模块。
随后就是设置 VLAN,选择 802.1Q Advanced 之后开始设置。这里我就小小的偷懒一下了。
VLAN ID | lan1 | lan14 | lan15 | lan16 |
---|---|---|---|---|
1 | U | T | T | U |
10 | - | T | T | T |
20 | - | T | T | T |
30 | - | T | T | T |
40 | - | T | T | T |
100 | - | T | T | T |
200 | - | T | T | T |
其它口没有插,就空着吧。1 号口之所以 lan 设置成 Untagged 是因为想用这个口也能作为管理口。
然后卧室基本也大功告成了,因为剩下的设备不动,RX6000 还留着呢,有开发板可以往上面插。
我这样光纤内网对内网传输的话不要勾选 sfp-sfpplus(也就是 SFP+)口 Ehternet 内的 Auto Negotiation,需要手动选择 Speed 为 1G base X。这样的话你会遇到一个看似光纤通了,发送端有在发包但是接收端没有反应的情况。我被这个坑了快 1 个小时。
因为 homepod 肯定跟你共用 Apple ID,而像我一样你自己的手机连上 Self Network 的话,在 IoT Network 的 homepod 会不时地尝试连接到跟你手机一样的 Wi-Fi 网络,这样就糟糕啦!
还好我们可以通过下发配置文件解决这个问题。当然,你需要一台 Mac。
首先,下载 Apple Configurator。然后打开它,点击 File > New Profile 来创建一个新的配置文件。
之后,找到程序左侧的 Wi-Fi,并填写好你的 IoT Wi-Fi 信息。最后不要忘记在 General 那里给自己的配置文件起个名字。最后点击 File > Save,编写配置文件大功告成了。
接下来,我们需要将配置文件 AirDrop 到你的 iOS 设备上。发送成功之后,你的 iOS 设备应该会自动弹出这个配置文件问你安装到哪里,选择其它装置,然后选择你的 homepod。接下来安装即可。
通常,你可能要多试几次——甚至要将你的手机靠近 homepod,或者临时的将手机和 homepod 放在同一个 Wi-Fi 下,不过成功之后,你的 homepod 就不会随着你的手机跑了。
本来有一个可以在 RouterOS 上部署 Bonjour-reflector 的(见参考链接第二条),但我的 Mikrotik 设备并不支持 container 特性。Mikrotik 官方说他们会有一个简单的关于 mDNS 的解决方法,但现在依然没兑现。
不过还好,在 Mikrotik 论坛内有人弄出来了只用 Bridge filter 的办法,试了一下还真的能用。
首先,创建你想让 homepod 在哪些 VLAN 工作的 MACVLAN:
/interface macvlan add interface=ServerVLAN name=macvlan10
/interface macvlan add interface=SelfVLAN name=macvlan20
/interface macvlan add interface=IoTVLAN name=macvlan100
/interface macvlan add interface=GuestVLAN name=macvlan200
然后,创建一个 non-VLANed 的桥,并将所有的 MACVLAN 添加进去。
/interface bridge add name=BridgemDNS protocol-mode=none
/interface bridge port add bridge=BridgemDNS interface=macvlan10
/interface bridge port add bridge=BridgemDNS interface=macvlan20
/interface bridge port add bridge=BridgemDNS interface=macvlan100
/interface bridge port add bridge=BridgemDNS interface=macvlan200
接下来,设置这个桥的 Filters 规则,在这个桥上只允许 mDNS 流量。
/interface bridge filter add action=accept chain=forward comment="Allow mDNS only" dst-address=224.0.0.251/32 dst-mac-address=01:00:5E:00:00:FB/FF:FF:FF:FF:FF:FF dst-port=5353 in-bridge=BridgemDNS ip-protocol=udp mac-protocol=ip out-bridge=BridgemDNS src-port=5353
/interface bridge filter add action=drop chain=forward in-bridge=BridgemDNS out-bridge=BridgemDNS comment="Drop all other L2 traffic"
最后,记录下你这个新桥的 MAC 地址,创建一个桥的 NAT 规则。将下方的 11:22:33:44:55:66 改成你桥的 MAC 地址。
/interface bridge nat add action=src-nat chain=srcnat dst-mac-address=01:00:5E:00:00:FB/FF:FF:FF:FF:FF:FF to-src-mac-address=11:22:33:44:55:66 comment="SNAT to Primary VLAN bridge"
大功告成了。
这个没办法,肯定要加散热的东西。不过现在硬盘在 50 多°C左右徘徊,感觉还行……估计又要买大一点的机柜了。
如果喜欢本文,欢迎点击下方的「鼓掌」按钮!
<noframes>This browser has disabled frames.</noframes>如果上面没有加载出任何东西,可以点击这里。