初心易得,始終難守
C'est la vie.© 2002 - 2025
  • 我是誰-Who Am I
  • 我在哪-Where Am I
  • 我是什麼-What Am I
  • 年鑑-YearBook
    • 二零零六年终总结
    • 一吻定情—二零零八年年终总结
    • 突如其来的明天—二零零九年年终总结
    • 人生大起大落得太快——二零一零年年终总结
    • 贰零①①年年终总结-女朋友已经成家了
    • 贰零壹贰年年终总结-奔波的肿瘤
    • 贰零壹叁年年终总结
    • 雪字怎么写-贰零壹肆年年终总结
    • 每个不曾表白的今天,都是对青春的亏欠-贰零壹伍年年终总结
    • 按部就班的IT 人生-貳零貳肆年年終總結
  • 連結
RSS
2 月 15 日, 2025 年

OpenVPN and WireGuard

Ken Tech 0 Comments

過年的時候在外地加班不太方便,因為家裡有防火牆上的ipsec site to site 到雲端的VPC內,出門在外的時候就需要client VPN來做這些事情。

於是在伺服器上裝了OpenVPN 和WireGuard,用於方便的連結到VPC內。WireGuard 已經出很久了,我之所以一直沒有用他,是因為他沒有經過歷史的考驗,也沒有大公司背書,只有時間可以洗練出真金,他的時間長度還不足以證明他無法被攻破,但是Jess 說有些底層跑的都是WireGuard,我想,既然大家都如此隨便,那我也來用上。


OpenVPN 算是傳統技能了,

還在中國移動cmwap 的年代我就開始用他來穿透wap 網關獲得cmnet 的網絡,在那個包月20元的2.5G年代用出好多個G的流量,新版的easyrsa cert 初始化似乎有一點點改動,畢竟我已經快要十年沒有用他了,因為他的流量特徵很明顯而易於被GFW 檢測到,後來我常用的是不會被GFW 攔截的ipsec。

./easyrsa init-pki
./easyrsa build-ca nopass
./easyrsa gen-dh
./easyrsa build-server-full server nopass
./easyrsa build-client-full client nopass


systemctl enable openvpn-server@server
systemctl start openvpn-server@server

server.conf

daemon
server 10.8.0.0 255.255.255.0
proto udp
port 443
dev tun
data-ciphers AES-128-GCM:AES-256-GCM:AES-128-CBC:AES-256-CBC
cipher AES-128-CBC
keepalive 15 60
verb 3
duplicate-cn
push "redirect-gateway def1"
ca /etc/openvpn/server/ca.crt
dh /etc/openvpn/server/dh.pem
cert /etc/openvpn/server/server.crt
key /etc/openvpn/server/server.key
status-version 2
status status 5

client.conf

client
dev tun
proto udp
remote 15.15.18.19 443
float
data-ciphers CHACHA20-POLY1305:AES-128-GCM:AES-256-GCM:AES-128-CBC:AES-256-CBC
cipher AES-128-CBC
keepalive 15 60
remote-cert-tls server
key-direction 1
resolv-retry infinite
nobind
<ca>
-----BEGIN CERTIFICATE-----
-----END CERTIFICATE-----
</ca>
<cert>
-----BEGIN CERTIFICATE-----
-----END PRIVATE KEY-----
</key>
route-nopull
route 10.2.0.0 255.255.0.0 vpn_gateway
route 10.3.0.0 255.255.0.0 vpn_gateway
route 10.4.0.0 255.255.0.0 vpn_gateway
route 10.5.0.0 255.255.0.0 vpn_gateway

WireGuard 算是新技能,第一次在Linux 上安裝,無比簡單。

dnf install wireguard-tools -y
cd /etc/wireguard
wg genkey | tee server_privateKey | wg pubkey > server_publicKey
vi wg0.conf

[Interface]
Address = 10.254.254.1/24
SaveConfig = true
ListenPort = 51820
PrivateKey = kFFVyz4WC0s+oqoQ72b9mjXK0TNtw6/YsR+r8fexdWE=

#OfficeMac
[Peer]
AllowedIPs = 10.254.254.11/32
PublicKey = kMp2fqFE+GXcfR06u+NI2KeFDeEPlSvG1uefrrDBPEA=

systemctl enable wg-quick@wg0.service
systemctl restart wg-quick@wg0.service

and FreeBSD

pkg install wireguard-tools
cd /usr/local/etc/
mkdir wireguard && cd wireguard
wg genkey | tee server_privateKey | wg pubkey > server_publicKey

sysrc wireguard_enable="YES"
sysrc wireguard_interfaces="wg0"
/usr/local/etc/rc.d/wireguard start
2 月 8 日, 2025 年

從FreeNAS 遷移到TrueNAS Scale

Ken 随笔 0 Comments

我並不是很想遷移,但是看起來IXsystems 已經失去了初衷,開始進入和Synology,Qnap這種廠商競爭的賽道,儘管這些家用產品銷量很大,但是Vulnerability和Bug頻出,最重要的一點是,雖然這兩間公司都聲稱自己是台灣公司,但其中一間公司的軟體開發團隊在中國深圳。

FreeNAS基於FreeBSD 的軟體版本一直停留在已經EOL的13.1-RELEASE,他們致力於開發基於Debian 的TrueNAS Scale 而放棄了Community Version FreeNAS,是的,對於基於FreeBSD 版本的Enterprise Support 他們並沒有停止。

從長遠看來,IXsystems 似乎並沒有意願繼續在FreeBSD 上開發,因為找到一個Debian 的開發者,比找到一個FreeBSD 的開發者,從機會上來說,大得多,從成本上來說,小得多,作為一間商業公司,發展路徑的選擇是可以理解的。

而我對Debian 的信心是足夠的,從歷史來看,他經過了考驗,不像Centos 的升級那麼糟糕,所以我決定進行遷移,雖說只是click 幾下而已。

這台基於AMD Opteron(tm) X3421 APU 和32G ECC memory 的HPE MicroServer Gen10 當前從使用上來講並沒有問題,由四塊8tb 的Toshiba MG08 HDD組成Raidz2 通過Rsync 為critical data進行備份以及通過NFS/CIFS 進行data share,兩塊1tb 的Crucial MX500 SSD 組成Raid1 通過iSCSI share 為ESXi 提供vmfs和為BSD Jail提供空間,兩塊SK Hynix nvme SSD 為zfs 提供read cache 和write log,雖然我知道沒有電池的write log意義不大,但是,再塞一塊帶PLP 的2.5寸SSD,確實也塞不進去。

不過4槽位的nvme PCIE 卡上確實還有兩個空槽位,於是買了兩塊Kioxia Exceria G2 2tb,因為他在pchome 的價格莫名的低,在將他們替換Crucial MX500之後,似乎就可以加入PLP SSD 了。

一個Samsung 的64G USB drive 運行底層OS,為什麼是Samsung,因為經過實驗,其他的牌子比如Sandisk 或者Kingston 都會壞,好在FreeNAS 的 boot volume 壞掉並不會影響dataset,reinstall 一遍然後把備份的dat file 導入就可以。

主要的問題有兩個,Jails和Rsyncd。

第一,FreeBSD jail 只存在於BSD 上,與TrueNAS Scale 上的docker 是完全不同的東西,我需要先把jail 遷移到ESXi,升級完成後,再將ESXi 上的vm workload 遷移回docker。

在FreeNAS 上我運行了三個jails,其中一個是database,包括mysql,redis,memecached,一個是nginx+php 的webserver,一個是resilio-sync 的數據同步。其實原本PLEX 也運行在jail,但是後來電影越來越多,裝不下啦,用舊的WD My Cloud EX2 Ultra 塞進兩塊16tb 的TOSHIBA MG08ACA16TE HDD然後nfs export給運行在ESXi 上的PLEX。

database 比較好遷移,因為他沒有使用到任何本地的掛載點,而webserver 和resilio-sync 使用了本地的掛載點,這些掛載點都需要使用nfs export 然後從ESXi 的vm 中重新進行掛載。

尚且容易,在ESXi 中啟動新的OS,設置IP地址,環境變量,安裝必要的組件,mount nfs,設置fstab,設置啟動程式,重啟測試,不到兩個小時就將三個jails 完全轉變爲vms,早年FreeBSD 很不常更新的時候,nginx 和php的版本都很陳舊,我通常會自行compile 來安裝,從FreeBSD 12開始似乎他們更新得更頻繁,可以直接從pkg 來安裝最新版本,也就簡化了很多。

第二,是TrueNAS Scale 刪除了原本存在於FreeNAS 中的Rsyncd 服務,變成了Docker 中的一個app,這一部分也還算容易,因為原本我在FreeNAS 上運行的Rsyncd 就只是要接受從BuyVM 和DigitalOcean 的webserver 每天同步過來的網站備份,重新設置一下modules ,IP whitelist 就可以。

當完成Jails的遷移後,就可以開始進行從FreeNAS 到TrueNAS Scale 的遷移啦。

首先切換要升級的目標類型,彈出警告,吧啦吧啦,大概就是上面那些,請參閱官方文件:

https://www.truenas.com/docs/scale/22.12/gettingstarted/migrate/migratingfromcore

AFP share 最重要的大概就是用到TimeMachine 的MacOS,但是Apple 已經拋棄AFP而且TimeCapsule 也後繼無人,畢竟其他的產品沒有一個能打的,應該是後無來者才對。

升級的過程絲滑無痛,我原本預計LACP 會有一些問題,畢竟跨OS 的配置完全不一樣,並不像ZFS pool 一樣可以隨意的導入導出,沒想到從FreeBSD 到Debian 可以這麼絲滑。

但SMB share 遇到一些問題,FreeBSD 上的www 用戶和用戶組,賦權給/www 的share dir,但是遷移後,www 用戶並未被遷移過來,将share 的用户和组修改为www-data 解决,這個問題看起來很奇怪,畢竟連LACP的配置他都讀了,為什麼他沒有讀取passwd 的配置呢?

接下來就是要把workload 從ESXi 遷移回到TrueNAS Scale 的Docker 上,在24.10 版本之前使用的是kubernetes ,這導致我檢索到很多的資訊都是錯誤的,請參閱官方文件:

https://www.truenas.com/docs/truenasapps

順便把原本的Docker 服務都遷移過來,一些服務只需要把目錄copy 到新的安裝中就可以,例如grafana,一些服務需要dump and import,例如mysql-server,一些服務直接啟動新的container,因為data 都在database 中,例如zabbix。

比較難搞的是n8n,因为有很多个workflow 和credential 需要export,查阅了一下官方文件,实际操作起来很简单,因为n8n 的container 里面什么command 都有……

###n8n
https://docs.n8n.io/hosting/cli-commands/#workflows
docker exec -it fc6082cbfddc sh
mkdir backup
n8n export:workflow --backup --output=backup/
tar -czf backup.tgz backup
mkdir credentials
n8n export:credentials --all --decrypted --output=credentials.json
scp backup.tgz ken@server:/tmp
scp credentials.json ken@server:/tmp
login to the new n8n:
cd /tmp
wget http://server/backup.tgz
wget http://server/credentials.json
n8n import:workflow --separate --input=backup/
n8n import:credentials --input=credentials.json

需要注意的是下面两个env,缺少第二个会导致无法正确读写NAS 上的host path。

N8N_SECURE_COOKIE false
N8N_ENFORCE_SETTINGS_FILE_PERMISSIONS true

到這裡就結束了,因為NFS/CIFS share 沒有任何變化,Rsyncd 也正常運作,Cloud Sync push 到Amazon S3 以及從Dropbox pull 到本地的sync tasks 也正常,並沒有太多額外需要改動的東西。

整體來說,從FreeNAS 升級到TrueNAS Scale 的過程沒有遇到什麼困難,FreeBSD 到Debian 的跨度被IXsystems 整合得相當無縫,我想這比我預期的情形要好得多,雖然直接重灌然後import zfs pool 的方式不是不可以,但如果遷移的問題過多,就會影響到眾多家用客人繼續使用的意願,說不定就直接棄用了。

兩塊2tb 的nvme ssd 不到5分鐘就rebuild 好了raid1,還是順序替換的,但是,似乎現在的nvme ssd變厚了,把硅脂導熱墊拿掉才蓋上散熱片,不知道是不是因為這個原因,他們的運行溫度維持在了59度左右,不過以告警溫度78攝氏度來看,這應該是一個正常的溫度。

1 月 30 日, 2025 年

年前的一點點清潔工作

Ken 随笔 0 Comments

把機櫃清潔了一下,畢竟不是無塵室,大部分的清潔工作很簡單,但是我忘記買壓縮空氣,對於MicroServer 的電源模組清潔沒有很到位,motherboard 也沒有吹得很乾凈,但是看起來灰塵似乎也不多,感覺可以留到下一個年終。

最髒的部分大概有三個,第一個是ESXi server 的CPU 散熱器,他有完整的風筒,理論上來說應該會卡很多灰塵在散熱鰭片上,第二個是FreeNAS 的進氣柵口,第三個是機櫃頂部的散熱風扇葉片,看了下FreeNAS 進氣柵口的絲襪似乎還可以再用一年,吸塵器也吸不出來太多。

WD NAS在機櫃的散熱風扇下方,我原本預計會有很多灰塵,打開看了看反而是很乾淨的樣子,WD的設計基於ARM晶片,即使高溫也沒關係,所以他的散熱風扇很少運轉,路過的灰塵的總量也比較小,都被吸走。

地震得過於頻繁,以至於在收到Alert 之後的第一反應就是躺到床上,等晃完了再起來。

終於買了這本書,不過是Google Books 的電子版,還在想辦法導出到Kindle 或者pdf。

1 月 17 日, 2025 年

rename on FreeBSD

Ken Tech 0 Comments

這個問題困擾我很久了,有時候照相機導出的照片會被添加莫名其妙的下滑線和連結符,更討厭的是有的software 會添加空格,加空格究竟是你媽個什麼鬼。

但是,FreeBSD 下面默認的renamex 我不會用,找了很多參考文件還是不行,應該是我理解能力太差,放棄,

改用perl 的rename

pkg install p5-File-Rename
rename "s/ //g" *
rename "s/_//g" *
rename "s/-//g" *
rename "s/\)//g" *
rename "s/,//g" *

vi 的替換command 似乎也是類似的

%s/logs/\/home\/www\/logs/g

增加了自動升級,雖然FreeBSD 不升級也不會像Linux 那麼倒霉。

crontab -l
0 9 * * * /home/www/sh/pkg-auto-upgrade.sh
#!/bin/sh
pkg update -f
sleep 5
pkg upgrade -y
sleep 5
pkg clean -y
sleep 1
pkg autoremove -y

還有,使用dnf 的Linux現在也有自動升級可以用,

dnf install dnf-automatic -y
vi /etc/dnf/automatic.conf
random_sleep = 120
apply_updates = yes
emit_via = motd
systemctl enable --now dnf-automatic.timer

最近老家的媽咪手機號不知道怎麼突然連不上了,也許是sim卡或插槽有問題,也許是中國聯通又在發神經,動不動就以反詐騙的名義把號碼給停了,然後今天突然發現一直插在電源上媽咪的舊手機電池鼓包,快要把螢幕撐破。

這大概是媽咪在跟我告別了吧。

1 月 2 日, 2025 年

按部就班的IT 人生-貳零貳肆年年終總結

Ken 随笔 0 Comments

雖然從一個社會進入到了另外一個社會,但我並未感覺到太大的差別,也許是我並沒有那麼細心吧。或許是因為現代化的生活方式讓各地的城市都有著相似的面貌,高樓大廈、便利商店、連鎖餐廳,這些標準化的元素讓人產生一種似曾相識的錯覺。又或者是我本身就是一個適應力較強的人,能夠快速融入新的環境,不太會被外在的變化所影響。

一月的時候開始準備一個面試,雖然我並不覺得我找不到工作,但是台灣的社會環境因為基本薪資的存在導致了普遍的低薪,這好比一把雙刃劍,設置基本薪資的目的是讓資本家不要使用過低的薪資用人,然而這種看似公平的政策在資本家統一意見後就變味了:看來只要滿足這個條件就可以。這種現象在許多行業都可以觀察到,特別是服務業和傳統製造業,雇主往往將基本薪資視為薪資的上限而非下限。相比之下,其他地區可能沒有這樣的制度束縛,薪資水平更多地由市場機制決定,雖然可能存在更大的不確定性,但也給了優秀人才更多的議價空間。

二月在閒暇中度過,第一次感受台灣過年的氣氛,但由於岳父母家是高層公寓,似乎也沒有特別的感受,只是四處走動吃飯,開車也會堵在路上,血壓有點偏高,於是每天晚上飯後會出去散步一個小時,還得是快走,散步不出汗的話,似乎對於鈉元素的消耗並無任何裨益。過年期間的台灣街頭充滿了節慶的氣息,紅色的燈籠和春聯隨處可見,即使在高樓林立的都市環境中,這種傳統節慶的氛圍似乎也沒有被太過稀釋。

三月進公司,公司發了一台MacBookPro,早知道我就不買自己那一台,兩台看起來一模一樣,我不得不在公司的筆電上貼上貼紙。不過很快我就明白公司的筆電上有各種監控,最終還是會需要一台自己的,但我可以買MacMini 啊。

工作具有一些挑戰性,第一個月基本上是在學習各種基本的技能,雖然之前的工作會有一些幫助,但因為各種專用的工具,使得這一份工作略顯不同。每個行業都有其特定的工具和流程,即使有相關領域的經驗也需要時間來適應和轉換。這個學習過程雖然充滿挑戰,但也讓我感受到了成長的樂趣。新的工具意味著新的可能性,也代表著職業技能的進一步提升。

這是一份直接面對客戶的工作,確實有像我一樣的客戶,動不動就差評,所以第一次收到差評的時候我還有點欣喜,心想讓我來看看這人是個什麼角色,結果發現他並沒有什麼特別,有點失望。客戶服務工作讓我對人性有了更深的理解,每個人都有自己的情緒和期待,而當這些期待沒有被滿足時,負面反饋就會產生。我開始學會從客戶的角度思考問題,試圖理解他們的需求和困擾。這種同理心的培養不僅對工作有幫助,對個人成長也很有意義。有時候,那些看似無理的客戶背後可能有著我不了解的故事和壓力。

四月初的地震震到對岸的樓都在抖,汶川地震的時候我在北京的十八樓,沒有像成都人那樣看見大家衣服都不穿就跑出來,這次倒是走下樓發現穿著內衣內褲的妹紙站在馬路中間,看起來他們都有著熟練的逃生技能,不像我在樓上等他晃完了才下來。台灣位於地震帶上,民眾對地震的反應顯然比其他地區的人更加敏感和迅速。這種「熟練的逃生技能」實際上是長期生活在地震環境中培養出來的本能反應。相比之下,我的反應顯得有些遲鈍,這提醒我需要更好地了解和適應,雖然感覺上不在花蓮並不會有特別大的影響。

五月和六月依然是在努力的學習新技能,工作中也出現了錯誤,不過數量仍在可控的範圍。每天都在接觸新的知識和挑戰,錯誤的出現是學習過程中不可避免的一部分,重要的是從錯誤中學習並避免重複同樣的問題。我開始建立自己的工作筆記系統,記錄常見的問題和解決方案,這樣不僅能提高工作效率,也能幫助其他同事避免類似的錯誤。團隊合作的重要性在這個階段變得更加明顯,同事們的經驗分享對我的成長起到了重要作用。

七月的萬安演習感覺很新鮮,畢竟這是我第一次參與,全民性的演習體現了台灣社會對國防安全的重視,雖然形式上可能還有改進的空間,但其象徵意義是重要的。演習期間的寧靜街道給人一種超現實的感覺,彷彿時間在那一刻停止了,街道上空無一人,民眾都躲藏在陰涼的地方,警報拉響又消失,但感覺參與度還是有所欠缺,或許增加一些互動元素或情境模擬會讓演習更加生動和有效。

秋天的台北依然是很熱,完全沒有感覺到秋天的樣子,這大概就是熱帶吧,想到要在這種地方度過餘生,就得要考慮把羽絨服都扔了,因為再也用不到,還有想要去看的海,卻是沒有去,這感覺不好,我要去看海。關於看海的願望,我意識到有時候我會因為覺得某些事情隨時都能做而一直拖延,結果反而錯過了很多美好的時刻。台灣四面環海,看海應該是一件很容易實現的事情,但正因為太容易,反而被忽略了。

冬天的台中沒有很冷,最冷的時候我只穿了一件輕羽絨,而姊姊和姊夫穿著短袖和短褲,姊姊和姊夫的穿著反映了他們對當地氣候的完全適應,而我仍然保持著對寒冷的敏感度。這種差異不僅是生理上的,也是心理上的,我們對「冷」和「熱」的定義很大程度上取決於我們的經驗和習慣。

二零二四年最後一天看了【一部未完成的電影】,這是一部拍生不拍死的電影,導演也不敢認真思考,思考太多他可能會被全面封殺,他需要在表達真實和避免風險之間找到平衡,所以這部電影雖然在台灣拿了獎,我認為他也是無關痛癢的茶餘談資罷了。

這一年沒有發生什麼特別的事情,重要的事件大概就是開始工作,領薪水,繳稅,按部就班的一個IT 人生。

«‹ 5 6 7 8›»

過 客

  1. R2 on 卷進了美商5 月 15 日, 2024 年

    终于回来了,好。

  2. Ken on Mommy最後的樣子11 月 6 日, 2023 年

    也沒有很久吧,最近終於閒下來

  3. R2 on Mommy最後的樣子10 月 26 日, 2023 年

    好久不见

  4. Ken on 天朝Loli控组曲(带歌词,修正版)10 月 12 日, 2023 年

    哈哈哈,祝福你,好人一生平安

  5. liu on 天朝Loli控组曲(带歌词,修正版)10 月 12 日, 2023 年

    hello,我在找天朝lolicon组曲时发现了你的博客,感谢你十四年前做出的贡献,祝一切安好

December 2025
S M T W T F S
 123456
78910111213
14151617181920
21222324252627
28293031  
« Nov    

Spam Blocked

101,924 spam blocked by Akismet

↑

© 初心易得,始終難守 2025
Powered by WordPress • Themify WordPress Themes