Author: Ken

  • 使用ffmpeg 無損合併GoPro 的mp4

    GoPro 的mp4 文件很零散,看得頭疼。2018年去帛琉的mp4 自從拍回來就再也沒看過,今年去歐洲的又增加了200多個Gigabyte,因為一個一個點起來實在是太累,這不好。

    創建一個filelist.txt

    file 'GOPR4700.MP4'
    file 'GOPR4701.MP4'
    file 'GOPR4702.MP4'
    file 'GOPR4740.MP4'
    file 'GOPR4741.MP4'
    file 'GOPR4742.MP4'
    file 'GOPR4743.MP4'
    file 'GOPR4744.MP4'
    file 'GOPR4745.MP4'
    file 'GOPR4746.MP4'
    file 'GOPR4747.MP4'
    file 'GOPR4748.MP4'
    file 'GOPR4749.MP4'
    file 'GOPR4750.MP4'
    file 'GOPR4751.MP4'

    使用ffmpeg 合併:

    ffmpeg -threads 2 -f concat -safe 0 -i filelist.txt -c copy /mnt/2018-Palau.mp4

    然後上傳到Youtube ,一個20G 的文件,他居然要好幾個小時,好吧,是我的網路太爛了。

  • NETGEAR® WiFi 6 AX1800 Dual-band Access Point with Gigabit PoE

    Apple 不做Wi-Fi router 大概是覺得這東西隨便做一個就吊打所有人,所以2018年就停產了Wi-Fi router,然而快十年後的今天他依然可以 以很穩定的狀態運行。

    使用多年的Apple Airport Extreme 最近有一些莫名其妙的問題,5G 頻段的訊號有時候會突然消失,只剩下2.4G 頻段的訊號,過一段時間又自己恢復正常,看起來像是5G Wi-Fi模組reboot 了或是怎樣,但他是一個封閉的OS,無從考究。

    所以只好開始選AP,我一向不太喜歡Asus 那種樹著八根天線的Wi-Fi router,而更喜歡商用產品,但是Cisco 太貴而且太大,而且動不動就要一個獨立的AP controller,這就很煩,突然發現Netgear WAX210 正在Amazon 上特價,只要49$,體積還很迷你,立刻下單。

    收到貨立刻加電,調試,上線,完工,之前的網路中用兩個Wi-Fi router 做AP 來隔離IoT,貴賓網路和default vlan,現在終於可以只用一個AP就可以完成所有的Wi-Fi 接入。

    從櫃子裡面翻了一個古早的Cisco POE 電源,插上去一看,嗯?怎麼只有100M?啊,這個POE 電源是100M 的……

    沒時間去買一個新的POE 電源,只好找了閒置Netgear switch 的電源插上去,覺得不太對,檢索了一下網路,這個電源是1G 的,看起來是cable 的問題,換了一根,成功接入為1G。

    這頁面風格,他媽的 一看就是OpenWRT,沒想到啊沒想到Netgear 竟然拿OpenWRT 來賣錢!

    而且他還是 /cgi-bin/luci/ ,這就100% sure 了。

    實際測速的表現如下:

    使用MacBook 測試,速度顯得較快,可能是因為MacBook 的天線有MIMO?

    iPhone 測速明顯慢了一些,可能是因為iPhone 沒有MIMO?

    也可能是天線大小的原因。

    這個AP 上還很貼心的為您安裝了iperf3 ,您甚至可以直接從AP 上測速:

    這個功能的設置毫無疑問是為了排除client 的問題,意即不要用你的客戶端問題來侮辱我的速率。

    那我覺得,只要可以ssh進去,感覺裝什麼東西上去應該都是可以的。

  • 其實這個封禁配置是合理的

    長期以來在各類雲端平台上都會有一個限制,不允許虛擬機向外部的Email 伺服器25 port 發送email。

    我一直以為這個限制是針對整個Email 體系,包括smtps ,但,並不是,這個限制只針對於明文的25 port。

    那麼這個限制就變得非常合理,因為當代Email 已經很少使用明文傳送,絕大部分是基於smtps,小部分明文要麼是因為Email server 陳舊,要麼是因為application 中的既有代碼無法修改,要麼就是垃圾郵件發送者。

    之所以會提到這個問題,是因為我的server 上跑了很多crontab,有時候某一個crontab 失敗了但是卻無法知曉,在古早的年代,crontab 的email 可以隨意的發送到各大郵件服務提供商,現在當然是不行。

    所以簡單的搜索了一下Internet,找到了一些解決方式,使用Amazon SES 是一種方式,反正你只是自己給自己的inbox 發嘛,但是,Email 再少,它也是要付錢的。

    有沒有不要錢的呢?有。

    可以使用Gmail 的app password 來配置使用Gmail 的smtps 發送email,由於它不是明文25 port 而是密文587 port,所以在各大雲端平台上並沒有什麼阻礙。

    在Amazon Linux 2023 上使用Postfix 配置如下:

    ======Postfix@Amazon Linux 2023======
    dnf install postfix -y
    vi /etc/postfix/main.cf
    
    relayhost = [smtp.gmail.com]:587
    smtp_sasl_auth_enable = yes
    smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd
    smtp_sasl_security_options = noanonymous
    smtp_tls_security_level = encrypt
    
    cat > /etc/postfix/sasl_passwd <<'EOF'
    [smtp.gmail.com]:587 yourname@gmail.com:yourapppassword
    EOF
    
    chmod 600 /etc/postfix/sasl_passwd
    
    postmap /etc/postfix/sasl_passwd
    
    systemctl enable postfix
    service postfix restart

    而在FreeBSD上,較新版本預置了一個 DMA(DragonFly Mail Agent) ,比古早的Sendmail 小很多,我一直不太明白為什麼Sendmail 那個龐然大物在FreeBSD 中生存了那麼多年,DMA 的配置比Postfix 更簡單一些。

    =======FreeBSD======
    vi /etc/dma/dma.conf
    
    SMARTHOST smtp.gmail.com
    PORT 587
    AUTHPATH /etc/dma/auth.conf
    SECURETRANSFER
    STARTTLS
    
    cat > /etc/dma/auth.conf <<'EOF'
    yourname@gmail.com|smtp.gmail.com:yourapppassword
    EOF

    如果是在MacOS 上呢,也是可以配置的,這主要是因為我的Macbook 上也跑了一些crontab,而我需要知道他們執行是否成功或者失敗。

    ======MacOS======
    brew install msmtp
    
    vi ~/.msmtprc
    defaults
    auth on
    tls on
    tls_trust_file /etc/ssl/cert.pem
    
    account gmail
    host smtp.gmail.com
    port 587
    from yourname@gmail.com
    user yourname@gmail.com
    password yourapppassword
    
    account default : gmail
    
    chmod 600 ~/.msmtprc
    
    echo 'set sendmail="/opt/homebrew/bin/msmtp"' | sudo tee -a /etc/mail.rc
    
    sudo ln -sf /opt/homebrew/bin/msmtp /usr/local/bin/sendmail
    
    
    最後一步是在 /etc/aliases 中添加目的地址,形如:
    root: yourname@gmail.com

    修改後,執行一下 /usr/bin/newaliases 讀取這個配置文件生成新的 /etc/aliases.db 。

    特別說明:對於那些屏蔽了gmail 的國家而言,可以在互聯互通的服務器上使用socat 作為代理轉發。同理也可用於自己的客戶端收發gmail。

    以FreeBSD為例:

    sudo pkg install socat
    
    sysrc socat_enable="YES"
    
    
    vi /usr/local/etc/socat-instances.conf
    
    add:
    
    [gmailproxy]
    daemonuser=root
    flags="TCP-LISTEN:587,reuseaddr,fork TCP:smtp.gmail.com:587"
    
    service socat start gmailproxy
    service socat status gmailproxy

    在需要收發gmail 的PC 上設置/etc/hosts ,將smtp.gmail.com 指向socat 所在的服務器IP地址,完成。