初心易得,始終難守
C'est la vie.© 2002 - 2025
  • 我是誰-Who Am I
  • 我在哪-Where Am I
  • 我是什麼-What Am I
  • 年鑑-YearBook
    • Year 2006
    • Year 2008
    • Year 2009
    • Year 2010
    • Year 2011
    • Year 2012
    • Year 2013
    • Year 2014
    • Year 2015
  • 連結
RSS
4 月 9 日, 2025 年

Security group 的conntrack 問題

Ken Tech 0 Comments

在AWS 上創建的EC2 有一個奇怪的問題,似乎是由於Security group 的conntrack 造成的,即使修改為允許所有UDP 流量也不行。

當self-hosted ipsec-vpn 和地端連結建立後,此時從地端無法ping 通雲端,也無法開始傳輸,但tunnel 已經建立,看狀態都是正常,

當從雲端的EC2 對地端發送一個ping 包之後,流量才開始傳輸,也就是說,首發流量必須由EC2 發起。

問題是否真的由security group 引起我沒有確認,因為我沒有什麼頭緒,但首發流量由EC2發起就能解決,看起來就是security group 的問題。解決這個問題倒是簡單,ping 一下。

在VPC 內使用VPN 服務建立的ipsec tunnel 則沒有這個問題,當然,由於那是managed service,我們不能明確AWS 到底在裡面搞了什麼,說不定他也是在底層的EC2 上ping 了一下。

所以問了AI,寫個定時ping 的script

sudo vi /usr/local/bin/multi-ping.sh

#!/bin/bash

# List of hosts to ping
HOSTS=(
    "10.1.1.2"
    "10.1.2.2"
    "10.1.3.3"
)

# Ping interval in seconds
INTERVAL=60

while true; do
    for host in "${HOSTS[@]}"; do
        timestamp=$(date '+%Y-%m-%d %H:%M:%S')
        ping -c 1 $host | while read pong; do
            echo "[$timestamp] $host - $pong" >> /tmp/multi-ping.log
        done
    done
    sleep $INTERVAL
done

然後創建一個service

sudo vi /etc/systemd/system/multi-ping.service

[Unit]
Description=Multiple Host Ping Service
After=network-online.target
Wants=network-online.target

[Service]
Type=simple
ExecStart=/usr/local/bin/multi-ping.sh
Restart=always
RestartSec=30

[Install]
WantedBy=multi-user.target

啟動他

sudo systemctl daemon-reload
sudo systemctl enable multi-ping
sudo systemctl start multi-ping

看一下log

[2025-04-03 00:44:25] 10.1.1.2 - 64 bytes from 10.1.1.2: icmp_seq=1 ttl=63 time=48.9 ms
[2025-04-03 00:44:25] 10.1.1.2 - 
[2025-04-03 00:44:25] 10.1.1.2 - --- 10.1.1.2 ping statistics ---
[2025-04-03 00:44:25] 10.1.1.2 - 1 packets transmitted, 1 received, 0% packet loss, time 0ms
[2025-04-03 00:44:25] 10.1.1.2 - rtt min/avg/max/mdev = 48.931/48.931/48.931/0.000 ms
[2025-04-03 00:44:25] 10.1.3.3 - PING 10.1.3.3 (10.1.3.3) 56(84) bytes of data.
[2025-04-03 00:44:25] 10.1.3.3 - 64 bytes from 10.1.3.3: icmp_seq=1 ttl=63 time=301 ms
[2025-04-03 00:44:25] 10.1.3.3 - 
[2025-04-03 00:44:25] 10.1.3.3 - --- 10.1.3.3 ping statistics ---
[2025-04-03 00:44:25] 10.1.3.3 - 1 packets transmitted, 1 received, 0% packet loss, time 0ms
[2025-04-03 00:44:25] 10.1.3.3 - rtt min/avg/max/mdev = 301.351/301.351/301.351/0.000 ms
3 月 27 日, 2025 年

原本以為美國公司不會這麼賤,沒想到

Ken 随笔 0 Comments

Plex 宣佈從4月份開始要漲價,OK,這我還好,因為我從來沒有用到他要收費的功能。

然後他宣佈說以前免費的功能現在要收費了。

WTF?

使用Plex 已經八年,從最早放在Macmini 上的Media server 到現在的esxi vm,除了看電影,聽歌,似乎沒有用到他那些華而不實的收費項目,但是,他現在要對通過internet 的 streaming 收費。

這就很奇葩了,擺明就是要宰你們這群養肥的豬崽嘛。

恰好兩個月前給丈母娘家的AppleTV 開了共享,而且是over the internet ,簡單來講並不是沒有解決方法,如果丈母娘家裡有網路,那麼可以通過防火牆上的vpn 來streaming ,也就沒有internet stream 什麼事,問題是他們家裡沒有固網,要看的時候才會連上手機網路,這就變得複雜了。

所以只好買了Plex pass,lifetime 119.99$。

最近又匆忙看完一本書,《前線島嶼:冷戰下的金門》,以口述歷史的方式呈現,作者是一位加拿大漢學家,這本書主要描述自1949年以來金門島上的變遷,雖然大多數的場景下國民黨軍隊和共產黨軍隊在對岸做的並沒有太多區別,但軍中樂園為軍營之外的民眾特別是婦女所帶來的正面意義是我從未去思考過的問題,又比如兩次砲戰中民眾需要在入夜後使用厚窗簾遮蔽燈光以免對岸的共軍發現燈光而傾注砲火,在如此近的距離,確實也是難以想像的場景。

也許對於西方世界的讀者來說五零年代金門島上發生的一切,諸如沒收門板,要求民眾上繳轉頭,無償進行軍事訓練,看起來充滿軍政府的強權,但對於出生於共產國家的我來說,這一切都沒有那麼陌生,還記得幼年居委會主任多次上門來每家每戶收取5毛錢的軍費,一張小小的薄紙片,上面寫著類似於支援人民子弟兵還是人民解放軍之類,雖沒有軍費之實,但連我在幼年都能理解的程度,相信成年人不會不能理解,當時的5毛錢算不算多,我已經不太記得,應該是不多的吧,要不然媽咪應該會唸很久,然而,那已經是八零年代,就如同我時常和Miley 講的,中國整整落後於台灣甚至於整個世界一個世代。

共軍在金門遭受的挫敗是因為他們以前沒有這樣的作戰經驗,而並不是因為國軍的勇猛,以現有的史料來看,兩邊的軍隊都是烏合之眾,完全取決於指揮官的英明決策,共軍沒有繼續發起奪島無非是因為他們真的打不下來,書中認為是共軍在試探中美共同防禦條約的簽訂是否會真的會實施於金門島,而蔣中正則部署了遠超過金門島防禦所需的軍隊在島上。

至於作者揣測的,毛澤東認為中美共同防禦條約並無包含金門和馬祖,如果奪取兩個島嶼,將徹底造成兩個中國或一中一台的事實。可以理解這種猜測的合理性,但是毛澤東可能也低估了蔣中正反攻大陸的決心,雖然這份決心其實是被蔣中正的自尊或是六十幾萬國軍裹挾的。

地緣政治在金門島表現得淋漓盡致,今日的金門島我還沒去過,但如果是出自於金門人的角度,我想他們應該會持有和台灣人不一樣的看法。

3 月 17 日, 2025 年

被出賣的台灣

Ken 随笔 0 Comments

最近走馬觀花樣看了不少的書,一有閒暇的時間就拾起來看,對於台灣的歷史有了更多的認識,《被出賣的台灣》是一本由時任美國駐台北領事館副領事 George Kerr 於1965年出版而直到他逝世後多年的2003年才在台灣所出版的著作,是的,之前被國民黨列為禁書,我花了大約一個星期看完,選擇一本美國人寫的書來了解這段歷史我認為是相對合理的。

在香港2019年發生反送中的時候,有一個論調是今日香港明日台灣。

其實不是,持有這個論調的人,大概純粹是出於對歷史的無知。

因為,香港在2019年發生的事情,正類似台灣在1945~1947年發生的事情,應是昨日台灣今日香港。

1945年的台灣,在被從日本人的殖民統治下,移交到中國人的殖民統治下,島上的文明台灣人,迎來了野蠻而腐敗的國民黨軍隊,在這樣的背景下,George Kerr 見證了許多莫名荒謬的事情,因為當時的國民政府軍隊最積極的事情就是把台灣富庶的糧食,蔗糖,煤炭運送到上海,劫掠一切日本人留下的工業設備運送到上海。

如果你是台灣人,你會怎麼想?

台灣人受過良好的教育,識字,有報紙,收音機,已經進入了現代社會,不是中國大陸那些處於封建社會任由地主和軍閥剝削的中國人。

來到台灣奉命“光復”的中國官員無法理解為什麼要在基隆港和高雄港之間開通那麼多趟火車,因為他們根本無法理解為什麼台灣會這麼富裕。

沒有見過自行車的國軍扛著搶來的自行車而不會騎,
運送生活垃圾的垃圾車被國軍搶走用來運送糧食,砂糖,煤炭去基隆港然後送去上海而使得垃圾開始在每個地方堆積如山。
宋家控制的中國救總熱衷於轉賣聯合國的援助物資而並不想要救助因為糧食,醫療缺乏而陷入無助的台灣人。

而那些為此伸張的台灣律師,法官,檢察官,醫生,報紙主編,支持台灣人請願的銀行家,地主,地方領袖,在1947年三月被定點殺害,學校裡面的青年學生被成批屠殺,基隆港漂滿了屍體。

如果你是台灣人,你會怎麼想?

你也許是想要脫離日本人的殖民統治,但是你面對這一群並不將你當作同胞的中國人,一群想要延續日本殖民統治的殖民者,你還會想要做一個中國人嗎?

歷史不總是往前進的,歷史有時候會停滯不前,有時候還會倒退,對於1945年的台灣人來說,他們面對的就是整個社會的倒退。

陳儀的角色很重要,他在福建主政多年,也留日多年,非常了解台灣,而且一度在臺灣總督府和日本人歡慶過日本在臺始政四十周年紀念,後來還要福建省學習台灣進行建設,他為什麼一步步把台灣搞砸?以至於後來的二二八事件發生?

國民政府在此之前一直將二二八事件定義為共產黨的煽動,這種看法是出於時代的局限性,他們在當時得出這樣的推論並無不合理之處,因為,並不是當時的台灣青年提出了自治和普選看起來像共產黨,而是共產黨假借民主憲政之名在美國的調停下試圖佔據內戰的道德高點以利於備戰。

直到陳儀1949年試圖投共,後來以匪諜之名被槍決,才有了可信的推測:他是奉了共產黨的指導要刻意搞爛台灣,一是因為共產主義只有在貧窮和落後的工人階級中才可能流行,而日本治下的台灣,早就脫離了貧窮和落後,共產主義根本沒有生存的土壤,二是因為當時的中共,也在鼓吹台灣獨立,但這種鼓吹,並不是真的想要台灣獨立,而只是單純的要惡化台灣人和國軍的關係,以至於對中共在未來收復台灣產生有利的影響。

就像現在鼓吹琉球獨立一樣,就只是單純的想要惡化琉球人和日本本島人之間的關係。

然而,將所有的責任歸於陳儀似乎也不合理,將大量的糧食,蔗糖,煤炭運送到上海,這顯然更像貪財的宋子文做的決定。

公開的資訊宣稱陳儀被槍決是因為1946~1947年間屠殺迫害台灣人,這看起來更像是中統和軍統回報給蔣經國的消息很不樂觀,而蔣中正已經下定決心要待在台灣為了平息各地此起彼伏的反對聲音而不能說出口的困難。

曾經一度我和葳君討論的時候,說到宋家三姊妹就是中國近代史,每一個夫婿都是歷史上需要著墨甚多的人物,葳君則不以為然,認為那不過是後見之明。

台灣人的不幸,大概是因為從未產生過主體意識,因為除去東南亞的少數移民和高山原住民,佔人口絕大多數的漢人原本就是想要逃離大陸的那群人,又或是島民的過於樂觀,我一向認為生活在熱帶和亞熱帶的人們比那些寒冷地方的人們更為樂觀。而1949年在倫敦時報所登載再版於華盛頓時報的“台灣人可能是唯一希望日本人會捲土重來的東方人”論調,可以肯定的說,不是日本殖民者對台灣人太好,而是中國殖民者對台灣人太壞了。

然而,無論是在日本堅持要獨立的海外台灣人,在美國要求聯合國託管的台灣人,還是留在台灣或真或假支持國民黨的台灣本土資本家,無一不表示出對共產黨的厭惡,甚至於合理懷疑蔣經國是否會妥協於共產黨,這應是那時各方觀點難於統一之中唯一的共同點。

這本書著墨於作者在台灣當時和當地台灣人的溝通,聯繫,交流,值得一讀,雖然我是既得利益者,但是我看到國民黨的這些行徑,確實和我以前所了解的國民黨有很大的差別。

2 月 28 日, 2025 年

快要進入夏天的二二八昏黃午後

Ken 随笔 0 Comments

這算是個快要進入夏天的昏黃午後,附近不知道誰家傳來的不知道是空調還是洗衣機的震動,低頻擾人,必須要戴上降噪耳機才能抵禦。

今天上班接了四個案子,算是不少,但是也不算多,最多的一天接了七個,從早敲到晚。

趁著休息的間隙,拿起kindle 看了一會兒書,「簡明版·台灣人四百年史」看到超過一半,仍未看出史明對於台灣人有著本土意識的邏輯,我不知道他是因為現有的史料所限只能更多篇幅的闡釋日治時期還是故意要這麼做,雖然他努力的想要突出台灣人的本土意識,但是漢人帶來的漢語始終是主流,他為什麼沒有從語言的角度來做一些研究呢?還是說簡明版太過簡明,我可能需要去看一下無刪減的原版。

書中的一些表格,也看得我滿頭問號,比如日本人和台灣人的不同工種工資差別,且不說這些技術工種有熟練工和新手的區別,這個工資差別看起來並沒有想像中的那麼大。

剛剛過去的二二八,於我而言並沒有特別的感受,在翻閱了一些書籍之後,發現隻言片語的描述下,卻是充滿了血淚的歷史,李前總統登輝先生的「新•台灣的主張」一書中有提到國軍虐殺之台灣菁英階層逾二萬八千人,而這還不包含那些只是要去支持或者聽他們宣講的一般民眾。

但各類書看起來零零散散,似乎並沒有系統的紀錄,畢竟KMT 在努力的要忘記甚至掩蓋這段歷史,不過我認為仍然可讀的原因,是因為一件事情有各方的各種說法,而不是只有一種聲音。

2 月 20 日, 2025 年

Install Strongswan on Amazon Linux 2023 ARM64

Ken Tech 0 Comments

這個問題困擾我很久了,Amazon Linux 2023 ARM64 的repo 中軟體太過稀有,以至於很多的軟體都要從Redhat9 的binary 去獲取。

為什麼是ARM64?感覺是個趨勢吧,畢竟是這麼“節儉”的公司,不會亂花錢去做到目前的Graviton 4。

但問題是,官方並沒有明確Amazon Linux 2023 對應到哪一個版本的Fedora 或者RHEL,這就有點玄學的意思,自己試?我試了幾個版本,失敗。

直接從source code 來compile 算了。

dnf install gcc make openssl-devel -y 
mkdir src && cd src
wget https://download.strongswan.org/strongswan-6.0.0.tar.gz
tar zxf strongswan-6.0.0.tar.gz && cd strongswan-6.0.0
./configure --prefix=/usr/local/strongswan --enable-libipsec --enable-stroke && make && make install
sudo tee /etc/systemd/system/strongswan.service > /dev/null <<EOL
[Unit]
Description=strongSwan IPsec IKEv1/IKEv2 daemon
After=network.target
[Service]
ExecStart=/usr/local/strongswan/sbin/ipsec start --nofork
ExecStop=/usr/local/strongswan/sbin/ipsec stop
Restart=on-failure
[Install]
WantedBy=multi-user.target
EOL

寫入幾個微小的配置檔。

sudo tee /usr/local/strongswan/etc/ipsec.secrets > /dev/null <<EOL
2100:ab16:796:5a00:bg29:6r8d:4dca:b02a [email protected] : PSK "86f6g7da3316a95b0f4e6416f4f0b15c44083a8b4c2da0dee8ac"
EOL
sudo tee /usr/local/strongswan/etc/ipsec.conf > /dev/null <<EOL
config setup
    uniqueids=never
    charondebug="cfg 2, dmn 2, ike 3, net 2"
conn Someone2AWS-v6
        authby=secret
        left=2100:ab16:796:5a00:bg29:6r8d:4dca:b02a
        leftid=2100:ab16:796:5a00:bg29:6r8d:4dca:b02a
        leftsubnet=10.4.0.0/16
        right=2406:520:88:5cb::1
        #right=host.domain.org
        [email protected]
        rightsubnet=10.1.3.0/24
        ike=aes128gcm128-sha256-modp2048!
        esp=aes128gcm128-modp2048!
        keyingtries=0
        ikelifetime=8h
        lifetime=1h
        auto=start
EOL

嘗試啟動

systemctl stop strongswan
systemctl disable strongswan
systemctl daemon-reload
systemctl enable strongswan
systemctl restart strongswan
systemctl status strongswan

把ipsec command link 一下

ln -s /usr/local/strongswan/sbin/ipsec /usr/sbin/ipsec
ipsec status

查看一下log 是否正常

journalctl -u strongswan --since -1min

還需要對防火牆進行一點點改動,打開相應的port 和forward

dnf install firewalld -y
systemctl enable firewalld
systemctl start firewalld
firewall-cmd --zone=public --add-masquerade --permanent
firewall-cmd --zone=public --add-service=ipsec --permanent
firewall-cmd --zone=public --add-service=ssh --permanent
firewall-cmd --permanent --zone=public --add-interface=ens5
firewall-cmd --reload


Update 20250429

cd src
curl -O https://download.strongswan.org/strongswan-6.0.1.tar.gz
tar zxf strongswan-6.0.1.tar.gz
cd strongswan-6.0.1
dnf install systemd-devel
./configure --enable-systemd && make && make install
rm /etc/systemd/system/strongswan.service
sudo tee /etc/systemd/system/strongswan.service > /dev/null <<EOL
[Unit]
Description=strongSwan IPsec IKEv1/IKEv2 daemon using swanctl
After=network-online.target
Documentation=man:charon-systemd(8) man:swanctl(8)

[Service]
Type=notify
ExecStart=/usr/local/sbin/charon-systemd
ExecStartPost=/usr/local/sbin/swanctl --load-all
ExecReload=/usr/local/sbin/swanctl --reload
Restart=on-abnormal

[Install]
WantedBy=multi-user.target
EOL

是時候拋棄ipsec command了,啟用systemd 和swanctl

一個使用swanctl 的conf

connections {
    AWS2BuyVM {
        local_addrs = 2605:6600:10:e95:62cb:d245:1888:eeee
        local {
            id = 2605:6600:10:e95:62cb:d245:1888:eeee
            auth = psk
        }
        remote {
            auth = psk
            id = 2406:da16:7e3:5a00:ca98:6f8d:4cfe:bbbb
        }
        remote_addrs = 2406:da16:7e3:5a00:ca98:6f8d:4cfe:bbbb
        children {
            AWS2BuyVM {
                local_ts = 10.30.96.0/24
                remote_ts = 10.2.0.0/16,10.3.0.0/16,10.4.0.0/16,10.5.0.0/16
                esp_proposals = aes128gcm128-modp2048
                life_time = 1h
                start_action = route
            }
        }
        version = 2
        proposals = aes128gcm128-sha256-modp2048
        rekey_time = 8h
        keyingtries = 0
    }
}

secrets {
    ike-AWS2BuyVM {
        id-local = 2605:6600:10:e95:62cb:d245:1888:eeee
        id-remote = 2406:da16:7e3:5a00:ca98:6f8d:4cfe:bbbb
        secret = "0000000000000000_r"
    }
}

查看一下連結的情況:

swanctl --list-sas
BuyVM2AWS: #17, ESTABLISHED, IKEv2, 6e00f87f2e29ab73_i* b801ad6c15b17e01_r
  local  '2406:da16:7e3:5a00:ca98:6f8d:4cfe:bbbb' @ 2406:da16:7e3:5a00:ca98:6f8d:4cfe:bbbb[4500]
  remote '2605:6600:10:e95:62cb:d245:1888:eeee' @ 2605:6600:10:e95:62cb:d245:1888:eeee[4500]
  AES_GCM_16-128/PRF_HMAC_SHA2_256/MODP_2048
  established 85s ago, rekeying in 26399s
  BuyVM2AWS: #7, reqid 5, INSTALLED, TUNNEL, ESP:AES_GCM_16-128
    installed 86s ago, rekeying in 2873s, expires in 3515s
    in  ce702c32,   4620 bytes,    55 packets,    31s ago
    out c273aa68,   4872 bytes,    58 packets,    12s ago
    local  10.2.0.0/16 10.3.0.0/16 10.4.0.0/16 10.5.0.0/16
    remote 10.30.96.0/24
‹ 1 2 3 4›»

剧情

過客

  • R2 on 卷進了美商
  • Ken on Mommy最後的樣子
  • R2 on Mommy最後的樣子
  • Ken on 天朝Loli控组曲(带歌词,修正版)
  • liu on 天朝Loli控组曲(带歌词,修正版)
  • R2 on 甜點不錯的西紅市
  • Ken on 甜點不錯的西紅市
  • R2 on 甜點不錯的西紅市
  • Ken on 甜點不錯的西紅市
  • R2 on 甜點不錯的西紅市
July 2025
S M T W T F S
 12345
6789101112
13141516171819
20212223242526
2728293031  
« Jun    

Spam Blocked

101,808 spam blocked by Akismet

↑

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