2024-09-05 00:00:00
其實已經過大半年了,但想說要整理一下9月去北九州的照片,就先把在那之前的菲律賓遊記寫了吧。
大概4月的時候跑去考了多益,順利拿到了心裡覺得理想的證書,接下來想著是不是應該出國試試,剛好報了幾場COSCUP的Talks都有上,就排在8/3之後幾天飛出國。
中間查了一些資料,後來決定要去碧瑤,因為山上的天氣比較舒適,接著挖到一部影片,覺得這邊環境很棒,於是決定就是JIC Premium Campus了。跟Main Campus不一樣,這是位於Dontogan Green Valley地區的另外一個小型校區。
我先問了第一間代辦,他說都滿了,哈哈哈,果然很熱門。過了幾天覺得果然還是不想放棄,又問了第二間代辦,沒想到問到了房間,於是立刻匯了全額款項(大人就是這麼不手軟)保留名額,接著就是跑入學邀請函、簽證、買機票之類的行政流程了。到落地被當地人員載走之前,代辦都會耳提面命的提醒應該做什麼,基本上完全可以放空腦袋,不像自由行基本上什麼都要自己做功課。
於是快轉來到了準備去機場的那一天,在那前幾天去萬國通路買了28吋的行李箱,塞了將近22.6公斤的家當,貼滿COSCUP的貼紙,就這樣出發了。
上了高鐵才知道大件行李區被塞滿,沒辦法放這咖行李箱有多崩潰,後來硬是扛過頭塞在頭上,但真的很怕他掉下來。
由於飛機是在早上九點出發,還是提前一天來機場旅館住宿,順便最後一次整理行李,把應該托運的行李放進行李箱,意外發現不知道為什麼帶了一把剪刀。
晚餐吃城市商旅的自助餐,意外的人還蠻多的,也有外國人,但完全沒有拿吃的,只買了啤酒在喝。
網路評價都說城市商旅的燈光很爛,早晨的陽光照進來倒是還蠻舒服的。
沿路過了安檢進來管制區,準備登機,同飛機也有不少外國人,應該都是要回去菲律賓或是轉機吧我猜
沿著台灣東部飛行,兩個小時就來到了克拉克機場,六千多的票價可以坐長榮A330的廣體客機,相比去日本..QQ
下飛機一樣玩貪食蛇排隊,海關講話我聽不太到,就一直跟他sorry. could you say that again?,沒一會兒他就放棄溝通讓我入境了。
機場內還有Money Exchange,我想跟他說我要一百元的小鈔,所以我就跟他說Can I exchange 100? 然後他也是一臉黑人問號按計算機給我看
算了忘記研究怎麼用英文問…聽說菲律賓人會拒收一千元大鈔,因為他們找不開,但我拿一張五十美金給他換,也能拿到一些小鈔,就先這樣吧。
很快的出境來到接機點等候人到齊。
那邊的天氣有點悶熱,有時候還會下午後雷陣雨,更加潮濕。
這時候發生了有點好笑的事。
那天接機的工作人員似乎有點問題,我先跟一個看起來是菲律賓人的女性報到,然後就去旁邊的座椅區等候了
結果還有另外兩個應該是台灣人的工作人員,不知道我到了,他們一直以為我還沒到,在那邊白等了一個小時,後來發現是他們沒有sync好。
這就是你以為人生很順利的時候會被莫名其妙絆一跤的概念嗎
然後就被載上車了。在菲律賓好像是沒有安全帶的,我上車的時候狐疑了一下,想說問問司機大哥,結果他一臉聽不懂英文的樣子。
後來發現他們平常都是講地區方言,也就是說小孩子或老人是有可能不會英文的。
大概兩個小時的車程,前面一個小時是高速公路,後面則是山路,見到了我要住一個月的房間。
有點可惜的是真單人房已經沒有空位了,因此安排了一個雙人房,單人入住給我。
有一個對外的門可以去外面的空地,但是被黏死了,不知道是安全因素,還是因為會有蟲蟲鑽進來。
聽說其他人房間會有蟑螂,我蠻幸運的都沒有遇到。
通常來說第一天晚上只有泡麵可以吃,因為六日是沒有供應午餐和晚餐的,除非有事先預訂,學校餐廳才會幫你準備
但我跑去問了有沒有機會購買晚餐,manager幫我喬了一張晚餐的voucher (250披索)
那一天的晚餐,如下:
隔天星期一,就是開學日,早上沒安排活動就是亂晃,下午做入學測驗加拍照,傍晚會有台灣經理和你講解一些規定和各種注意事項
終於聽到中文讓人有一種久違感。其實很多事項都記載在到學校時發的小冊子上了,但還是不厭其煩地又說了一次,大概台灣人就是這麼需要提醒
在這邊生活基本上包水包電包三餐,還包洗衣服,對我來說就是在度假村度假的感覺。
學校還有洗衣服的服務,要填一張單子,為了避免文盲所以有圖文解說 (儘管如此我還是搞不懂穿在裡面的內衣算是underwear還是sleeveless):
他們洗衣精都加爆,衣服洗回來會超級香,拿回來台灣以後大概六個月那個衣服還是香的 (當然是後來沒有再拿出來穿才有辦法這樣)
分級的結果,我只有A2,真的好爛 QQ
通常來說他們的早餐最多蛋白質,最豐盛,但菜色蠻固定的,就是會有雞蛋、生菜、炒豬肉炒牛肉、培根火腿。通常來說早餐會是我最滿意的一餐。
以下全都是早餐:
這是我最後一天早上吃的早餐,由於學校有準備DIY區域可以煎蛋,因此這天特別自己煎了蛋。
午餐和晚餐差不多,會有飯加上一些韓式的小菜泡菜,和一份主菜 (炸魚、炒豬肉、炸豬排等等)
假日如果買學校的餐,其實也長得差不多,就有點貴但比較方便,不用去外面買
偷看他們備餐,假日其實只有留一個工作人員(廚師)準備吃的,吃的人也不多,這天大概四五份。平常偷看的話他們會馬上來關心需要什麼服務,所以我都不敢打擾他們。
如果那天是畢業日,菜色會稍微變換,大概就是會有炸雞和義大利麵之類的
整體來說我覺得還算可以接受了,品質很穩定的韓式菜色。
第一天晚上附近就可以查課表,每天都是一樣的,我選的是business english 4,一天只有4堂課
聽說business選的人不太多,我那一期之後就拿掉沒有這個選項了
如果選了speaking master 8就是一天會有8堂課
另外還有2堂選修可以選自己有興趣的,不想去上就退掉,想去上也沒有另外收費
我是沒有興趣所以沒有排選修
中間有遇到他們的假日,假日是沒有上課的,也不會退錢,但我是不介意。圖片裡面的應該是金龜子之類的某種昆蟲,不是蟑螂。山上的缺點大概就是各種蟲蟲有點多。
來這邊就是為了這個,漂亮的風景,哈哈哈,我真的好愛,好懷念QQ
某個連假,大家都跑出去玩了,整個食堂都沒有人
運氣好的話可以看到彩虹!大家都拿手機出來狂拍
其實就這樣看景色工作也不錯
莫名的也是會有夜景吧
順便也花了4500披索參加咖啡師課程,不過也沒有什麼內容,就學一些基本的東西,之前在台灣就已經會大部分的東西了
可以當咖啡師出一杯咖啡還是蠻有趣的吧
我覺得我只是想找人聊天,還有有個地方泡著,哈哈
接著假日出遊的部分,我比較不敢搭吉普尼,都是叫計程車,他們的車很古董,還有這種手搖式窗戶。
碧瑤其實也算是一個文教觀光類型的城市,其他城市的人會跑來這邊觀光
他們很知名的景點 Miles View Park 我記得進去還要買票100披索
裡面則是人多到有點崩潰
但他們的郊區街道走起來是舒服的,而且也沒有違停… (可悲啊台灣人)
接著步行到總統官邸 The Mansion 其實也不能進去,就一堆人在外面拍照
順路去了這邊的公園,可以騎馬,30分鐘300披索。馬會邊走邊大便,所以旁邊都有人在掃大便,不過那邊味道還是有點重。
他們說馬都是公的,沒有母的,公的就是命苦
碧瑤植物園就在附近,一個很約會的場所,
找個地方坐著發呆,買了那邊190披索的拿鐵,後來意識到也太貴了吧
這邊唯一的大型購物中心,很有趣進入還要先安檢,裡面人永遠是超級多
門口擠了一大堆都是計程車
那邊有一間生鮮超市,也賣很多日用品,結帳超級慢,大概排隊半小時左右才順利結帳出去
後來第二次去,就買學校的接駁巴士,我記得單程120披索吧,我買了來回兩趟,然後整車只有我一個人搭乘,感覺超不好意思的,因為司機從學校開這台小巴過來Mall就要50分鐘,回去又是50分鐘,不誇張碧瑤市區假日是真的塞,而且這還是手排車的樣子。
想買一些伴手禮送人才來的,不然來這邊真的很崩潰
聽說他們本地人就是坐在這邊納涼而已,也不見得有消費
順便買了幾件uniqlo把手上的現金消耗掉,比台灣便宜一點,大概七折吧
第二次去SM Mall的時候順便去附近逛了一圈
這一間也是當地有名的景點
附近的伯納姆公園也可以逛一逛,但我覺得沒什麼特色,而且台灣感很重,大概是很多小販的緣故
超便宜的小吃..50披索
學校附近走路就會到的小咖啡廳,特色是景色,但咖啡難喝
有一陣子瘋狂的買牛奶來練拉花,於是被我找到這間本地公營的農場
他的地點有點難找
在Santo Tomas路上面有一個小叉路,要找上面寫Baguio Animal Breeding & Research Center的牌子,跟警衛說你要進去買牛奶就可以了,但好像不能參觀,我也不敢亂跑,總之進去買買農產品應該可以
菲律賓本地有種植咖啡豆,本地的土特產店有機會找到,學校附近有一間優格店有賣,可以買一包嚐鮮
我也嘗試了他們的優格,不意外的甜到爆炸
House of Yogurt Lover (H.O.Y.)
39 Aspiras Rd, Marcos Hway, Baguio, 2600 Benguet, 菲律賓
https://maps.app.goo.gl/4Q42ccYmSJs3HGUm9
另外學校的咖啡豆是barista跟這間買的,我覺得還行,但沒有機會再過去拜訪,就當留一個遺憾吧
Nest Coffee Roasters
Calle Uno Food Hub, 3 Escoda Street, Corner Naguilian Rd, Baguio, 2600 Benguet, 菲律賓
https://maps.app.goo.gl/wEB9LKu12jRHVoYN7
學校附近會有一些本地小攤販賣BBQ,跟他們買了一兩次,都是賣內臟居多,沒有我喜歡的肉,很可惜
在那邊待了一個月,回程的時候一樣搭學校的送機小巴,回程的路上其實覺得有點難過,沒有在那邊交上什麼朋友,當然也沒有什麼朋友送行,就這麼默默的離開了。沿途到主校區去接了其他人,有好多人送行 QQ
一個人帶著行李站在機場的計程車區,天氣有點冷,略顯孤獨。將近晚上11點也叫不到grab,於是去跟旁邊的排班計程車殺價,去市區旅館先睡一晚
飯店就中規中矩,點心跟飲料bar都是要錢的,警衛很熱心的幫我把行李抬進房間,還幫我開了冷氣,但我也不知道是否有小費習俗,總之我是沒給。
可惜隔天就要準備去搭飛機,沒有時間好好在安吉拉斯觀光一下,坐計程車又回到了克拉克機場
在安檢管制區把剩下的披索換回來,不應該換台幣的,匯率好差,感覺被坑了
我應該是蠻懷念的,看著照片就能想起很多事,但如果要再去一次,應該是不太可能,待一個月就差不多有點膩了,會開始覺得沒什麼地方好去的,寧可躲在學校裡過一個週末。還有就是可能在那邊也不太有機會交到朋友吧,短暫的緣分。
對我來說這更偏向是一段度假的旅程,也是一段獨自的旅程,檢驗一下自己的英文能力,至於有沒有真的學英文…哈哈
最後就留一張在那邊的照片吧。
2024-06-14 00:00:00
為了獲得比較嚴謹的安全性,我們通常可以在防火牆上面設定,只有固定的IP允許存取。
但要更換IP時,就需要去所有機器上更新名單。如果我們可以利用DNS紀錄,來尋找某個網域指向的IP,就可以藉此讓生活更加便利。
我們可以為某個domain新增多個A record,這原本是用來作為round-robin使用,讓用戶端自行隨機挑選IP,因此他會回傳一個IP列表。
例如我們用指令查詢ptt.cc會發現以下結果:
$ dig +short ptt.cc
140.112.172.3
140.112.172.5
140.112.172.11
140.112.172.1
140.112.172.4
140.112.172.2
pfsense本身就有支援利用FQDN當作IP清單來源,在防火牆的aliases頁面底下,新增對應的IP alias就可以。
Type選擇Hosts,IP or FQDN欄位直接填寫domain name。
如果想要確認結果可以在Diagnostics > Table,找到該alias解出來的IP清單。
iptables操作的nftables是一個kernel module,本身不支援透過FQDN解出IP,但我們可以自己寫一個script達成這樣功能。
#!/usr/bin/env bash
DYNHOST=ptt.cc
DYNHOST=${DYNHOST:0:28}
DYNIPS=$(host $DYNHOST |cut -f4 -d' ')
for DYNIP in $DYNIPS
do
echo "Checking..." $DYNIP
# Exit if invalid IP address is returned
case $DYNIP in
0.0.0.0 )
exit 1 ;;
255.255.255.255 )
exit 1 ;;
esac
# Exit if IP address not in proper format
if ! [[ $DYNIP =~ (([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]) ]]; then
exit 1
fi
echo "OK"
done
# If chain for remote doesn't exist, create it
if ! /sbin/iptables -L $DYNHOST -n >/dev/null 2>&1 ; then
/sbin/iptables -N $DYNHOST >/dev/null 2>&1
fi
# Flush old rules
/sbin/iptables -F $DYNHOST >/dev/null 2>&1
for DYNIP in $DYNIPS
do
echo "Adding new IP..." $DYNIP
# Add new IPs
/sbin/iptables -I $DYNHOST -s $DYNIP -j ACCEPT
done
# Add chain to INPUT filter if it doesn't exist
if ! /sbin/iptables -C INPUT -t filter -j $DYNHOST >/dev/null 2>&1 ; then
/sbin/iptables -t filter -I INPUT -j $DYNHOST
fi
之後在crontab加上排程自動更新
* * * * * root /root/update_iptables.sh > /var/log/abc.log 2>&1
順便也附上我的iptables設定 (未知IP除了80和443一律拒絕存取)
iptables -F
# 先確保你的IP已經在允許清單裡面
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
iptables -A INPUT -p tcp --dport 443 -j ACCEPT
iptables -A INPUT -i lo -j ACCEPT
iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -P INPUT DROP
iptables -P FORWARD ACCEPT
iptables -P OUTPUT ACCEPT
一些可能的需求和做法:
2024-06-05 00:00:00
lvremove /dev/mapper/ssd-ssd
遇到錯誤
Logical Volume ssd-ssd contains a filesystem in use.
可以先嘗試 lsof 2>/dev/null | grep /mnt/ssd
接著嘗試 umount /mnt/ssd
卸載成功後還遇到這個狀況
可能是因為container對其進行file watching
先關閉所有container就可以移除LV了
2024-05-26 00:00:00
在管理多媒體檔案時,常見的RAID方案能提供即時保護,將多個硬碟模擬成一個虛擬硬碟給作業系統使用。這些虛擬硬碟經過格式化後,就能進行檔案存取。
常見的RAID方案有RAID1、RAID5和RAID6。RAID1是將兩顆硬碟存放相同內容,因此會浪費一半的硬碟空間。若要擴充,必須以兩顆硬碟為單位加入。
RAID5則使用一顆硬碟作為校驗盤,換取更大的可用容量,所以五顆硬碟的組合只佔用20%的空間。不過,RAID5有一些缺點,例如讀取檔案時需要多顆硬碟同時啟動,硬碟壞掉後復原過程較長且有失敗風險。RAID6則適用於超過五顆硬碟的情況,能提供更高的安全性。
另一種方式是JBOD,將多顆硬碟合併成一個大硬碟,但缺點是若有一顆硬碟損毀,整個虛擬硬碟的資料都會損毀。
以前,我使用JBOD管理下載機,但認為還有改進空間:
最近我發現了一個完美方案:mergerfs加上snapraid。
不同於RAID,mergerfs是一種特殊檔案系統,能將多個檔案系統合併成一個虛擬檔案系統。
假設我有三顆硬碟,分別格式化成ext4,並掛載到/mnt/disk{1,2,3},使用mergerfs可將這三個掛載點合併成/mnt/storage,並包含所有資料夾和檔案。我也能直接對/mnt/disk1進行讀寫,不影響/mnt/storage的運作。當/mnt/disk1損毀,/mnt/storage的內容會減少為/mnt/disk{2,3}的總和。
以下是我的/etc/fstab設定,由於後續要設定snapraid,其中一顆硬碟為parity_disk:
UUID="528592ce-dcc2-4aaa-9f92-d27166edfdfc" /mnt/disk1 ext4 noatime,nodiratime 0 0
UUID="414d7b98-d278-4397-80ff-9f5b103623ac" /mnt/disk2 ext4 noatime,nodiratime 0 0
UUID="c3017979-34eb-421a-bb94-c4291b15ffa4" /mnt/disk3 ext4 noatime,nodiratime 0 0
UUID="8878733e-eba1-4f5c-9dab-aa1f08835fd9" /mnt/parity_disk1 ext4 noatime,nodiratime 0 0
/mnt/disk* /mnt/storage fuse.mergerfs cache.files=partial,dropcacheonclose=true,moveonenospc=true,defaults,allow_other,minfreespace=100G,fsname=mergerfs,category.create=mspmfs,nonempty,noatime 0 0
我將category.create設為mspmfs,因為希望同一個torrent下載的檔案存放在同一硬碟,避免分散到多顆硬碟上。
mergerfs的另一個優點是硬碟容量不需一致。假設硬碟組合為4T、8T、12T,總可用空間即為24T。
mergerfs的小缺點是在移動檔案時,檔案不一定會落在同一硬碟上,跨硬碟操作會造成大量讀寫。處理此問題可以直接存取/mnt/disk*。使用qBittorrent時可能會遇到這個問題。
接下來是snapraid設定,與RAID的parity設計相似,但snapraid是非即時的,需手動觸發更新parity資料。適合寫入後不再改變的大型檔案。可設計小型暫存區,先複製檔案至RAID硬碟,更新parity後再刪除暫存檔案,避免遺失。
以下是我的/etc/snapraid.conf設定範例:
parity_disk須為RAID中最大硬碟。假設硬碟組合為4T、8T、12T,parity_disk須至少12T。
parity /mnt/parity_disk1/snapraid.parity
content /mnt/disk1/snapraid.content
content /mnt/disk2/snapraid.content
content /mnt/disk3/snapraid.content
data d1 /mnt/disk1/
data d2 /mnt/disk2/
data d3 /mnt/disk3/
exclude *.tmp
exclude *.temp
exclude *~
exclude Thumbs.db
exclude .DS_Store
exclude @Recycle/
exclude lost+found/
這樣就完成了一個適合多媒體檔案庫的自建NAS系統,硬碟可動態擴充,不需一次買齊,且能取得最佳性價比。
2024-05-24 00:00:00
在淘寶買到有問題的商品想要退回大陸,雖然看了幾篇網路上的教學,還是和實際的退貨經驗有點出入,故紀錄於此。
不喜歡
或是和商家協商退款
即可自動通過退款審核。後續退款進度還在處理中…
2024-05-23 00:00:00
由於在 Docker 中無法查看某些系統資訊,加上需要指定版本,因此需要進行一個繁瑣的 Python 程式安裝流程。
首先,我們需要建立一個虛擬環境來隔離即將安裝的依賴,以免影響系統的穩定性。
apt install python3 python3-venv
接下來,建立一個虛擬環境:
python3 -m venv /root/_glances
source /root/_glances/bin/activate
接著,安裝 Glances。如果需要使用 Web UI,則需要額外安裝 FastAPI。
pip3 install Glances
pip3 install FastAPI
以下是 systemd 的服務配置檔案,將其放置於 /etc/systemd/system/glances.service
:
[Unit]
Description=Glances
Documentation=man:glances(1)
Documentation=https://github.com/nicolargo/glances
After=network.target
[Service]
ExecStart=/root/_glances/bin/python3 -m glances -w
Restart=on-abort
[Install]
WantedBy=multi-user.target
完成上述步驟後,啟用並啟動 Glances 服務:
systemctl daemon-reload
systemctl enable glances
systemctl start glances
這樣就完成了在 Linux 上安裝並設定 Glances 為系統服務的步驟。現在,你可以透過 Web UI 來監控你的系統狀態了。