利用frp來做內網設備,走外部網路開放功能服務

LAST UPDATED:2025.09.15 最近在公司工作的專案,研究開發LINE bot的一些功能使用,所以需要有個能根LINE API交握的對外服務網路。 跟公司的MIS交涉這種需求,會有很多種考量花在那邊溝通。 但是花自己的設備、網路、DNS,好像沒辦法吸收(賺錢)這些無形的個人資源的使用成本。 然而,正式部屬前總是要先完成開發專案BETA版的驗證和測試,還是有一定的需求要能讓開發的程式能跟外面的網路作交握。 雖然本來可以用ngrok的產品(https://ngrok.com/),但是這個服務僅有部分程度的免費。 這幾天發現賽門鐵克和微軟的防毒軟體,一直把他們官方的軟體版本,認定為木馬和病毒。會莫名其妙得把我的LINE bot給斷網,損失好幾天的即時記錄運作。 為了備援方案,花了兩天研究,才催生了這篇記錄文件。 tailscale和cloudflare,都可以有方式做到這樣的需求。 但是如前言,我不想要全部把自己手邊的可用資源都投入到公司工作裡面。 另外,一開始是嘗試用Boringproxy和Pangolin,看能不能成功。 然而,第一個boringproxy設定教學太少,A… Read more (完整文章內容)利用frp來做內網設備,走外部網路開放功能服務

[linux] 如何指令處理列表已知被fail2ban封鎖的惡意IP

LAST UPDATED: 2025.09.14 因為webmin是網頁版,而且功能很多。 有時候我只是要看fail2ban到底有工作那些設定,以及封鎖那些數量。 原始套件指令的方式很不好用,要查已開啟的服務項目和去看個別服務封鎖誰。 因為這幾天在搞GDC的虛擬機,那今天想到問AI大概是魔法指令用對了。 問到我想要的方式呈現,順便記錄下來。 要安裝jp套件: sudo apt-get install jq 好了以後就能這樣下指令來輔助顯示。 ## 這樣的語法是全部服務都列出: sudo fail2ban-client banned | tr “‘” ‘”‘ | jq ‘.[] | to_entries[] | {service: .key, count: (.value | length), ips: .value}’ ## 這樣的語法是只列出有封鎖IP的服務清單: sudo fail2ban-client banned | tr “‘” ‘”‘ | jq ‘.[] | to_entries[] | {service: .key, count: (.value | length), i… Read more (完整文章內容)[linux] 如何指令處理列表已知被fail2ban封鎖的惡意IP

LOGWATCH原始設定忽然無法解析clamav freshclam log的解法

繼上次那篇: UBUNTU系統版本升級後,每日報告的logwatch無法正常解析clamav的LOG。 除了參考這個做法以外: https://www.usebox.net/jjm/blog/logwatch-and-systemd-journal/ 再一次感謝AI讚嘆AI,跟AI耗了兩天腦力激盪問來問問。 終於找到一個適合的方案,能處理因為clamav更新版本後,把LOG紀錄改到journalctl,但是LOGWATCH無法解析這裡的LOG結果。 首先,驗證過程中我已經把UBUNTU原來維護的APT套件已經移除,改安裝opensource的版本:logwatch-7.13 。 新增一個clam-update.conf設定檔案 $ sudo nano /etc/logwatch/conf/services/clam-update.conf ### Added by JIR 250830 LogFile = LogFile = none *JournalCtl = “–output=cat –unit=clamav-freshclam.service” 然後,新增一個clam-upd… Read more (完整文章內容)LOGWATCH原始設定忽然無法解析clamav freshclam log的解法

系統升級後,mailscanner的ms-configure update可能會遇到的問題

spamassassin 4.0.1版本可能會遇到問題 說版本有衝突不能安裝、和無法用sa-update 在這篇找到說明解法,要降版本才能支援新的MariaDB。 https://notes.sagredo.eu/en/qmail-notes-185/installing-and-configuring-spamassassin-37.html 降版: cpan install DVEEDEN/DBD-mysql-4.052.tar.gz 調整規則目錄的讀取權限 要解決 www-data 無法讀取規則檔的問題,您需要讓 www-data 所屬的群組,或所有使用者,都擁有讀取權限。 # 讓 www-data 群組擁有讀取權限 sudo chown -R root:www-data /etc/mail/spamassassin sudo chmod -R 750 /etc/mail/spamassassin # 同樣地,針對 sa-update 的規則目錄進行設定 sudo chown -R root:www-data /var/lib/spamassassin sudo chmod -R… Read more (完整文章內容)系統升級後,mailscanner的ms-configure update可能會遇到的問題

UBUNTU系統升級後,Postfix郵件伺服器配mailscanner、opendikm、opendmarc可能會運作不正常的紀錄

去年好不容易摸索搞定的郵件伺服器,今年Q3又再度發生工作不正常的問題。 MAIL伺服器Dovecot + Postfix + Mailscanner安裝,紀錄&更新 https://jir.idv.tw/wordpress/?p=3124 POSTFIX郵件伺服器,架設Mailscanner可能會遇到OpenDKIM衝突的解決方法 https://jir.idv.tw/wordpress/?p=3146 因為郵件主機配合UBUNTU系統升級,但是陸陸續續發現功能服務有問題,也連帶發現升級後,開始一直收到YAHOO負責任的拒收信件。 今年開始大量利用AI互動來解決我一知半解、或是不熟稔的指令和功能追加。 這次經驗也真的要再來感嘆AI、讚嘆AI了…。 /etc/postfix/master.cf這個檔案。 目前運作方式是這樣: #1.跑OpenDKIM的PORT: 8891 #2.跑OpenDMARC的.sock #3.跑MailScanner的PORT: 33333 smtpd_milters = inet:localhost:8891, local:opendma… Read more (完整文章內容)UBUNTU系統升級後,Postfix郵件伺服器配mailscanner、opendikm、opendmarc可能會運作不正常的紀錄

razor2: razor2 check failed: Permission denied razor2: Can’t read conf file: /etc/spamassassin/razor/razor-agent.conf

升級系統後又遇到一樣的問題,給AI教了一個簡單的檢查方式和修正。  8月 02 18:08:26 spamd[301829]: razor2: razor2 check failed: Permission denied razor2: Can’t read conf file: /etc/spamassassin/razor/razor-agent.conf at /usr/share/perl5/Mail/SpamAssassin/Plugin/Razor2.pm line 350. #nano -l /usr/share/perl5/Mail/SpamAssassin/Plugin/Razor2.pm  339 340   if ($err) { 341     chomp $err; 342     if ($err =~ /(?:could not connect|network is unreachable)/) { 343       # make this a dbg(); SpamAssassin will still continue, 344     … Read more (完整文章內容)razor2: razor2 check failed: Permission denied razor2: Can’t read conf file: /etc/spamassassin/razor/razor-agent.conf

UBUNTU系統版本升級後,每日報告的logwatch無法正常解析clamav的LOG。

我目前自己找到的相關軟體版本: # lsb_release -rd Ubuntu 24.04.2 LTS # apt-cache policy clamav-freshclam *** 1.4.3+dfsg-0ubuntu0.24.04.1 500 1.0.5+dfsg-1.1ubuntu3 500 500 https://free.nchc.org.tw/ubuntu noble/main amd64 Packages # apt-cache policy logwatch *** 7.7-1ubuntu1 500 然後設定檔明明正確的指定它這個位置的LOG,檔案實際也是有正常的產出。 $ tail /var/log/clamav/freshclam.log Fri Aug 1 09:03:31 2025 -> ————————————– Fri Aug 1 09:03:31 2025 -> daily.cld database … Read more (完整文章內容)UBUNTU系統版本升級後,每日報告的logwatch無法正常解析clamav的LOG。

UBUNTU升級到24.04.2後,本來google remote desktop可以用,變成不能用的可能解法

問題關鍵字: xf86OpenConsole: Cannot open virtual console 2 (Permission denied) chrome-remote-desktop[xxxxx]: xdpyinfo:  unable to open display “:20”. 總之,我已經耗了三天在重裝CRD套件,它就是一直不能正常啟動。 每天問AI這個查、那個查,問到我都有懷疑人生的FU…。 今天下班特別沉下心來,好好的研究PYTHON結構的程式碼,和AI蕉流蕉流。 總之,它就是不知道為什麼systemctl服務啟動,讓我的使用者帳號呼叫/dev/tty2螢幕時,明明有tty和video群組權限的狀況,它就是不能通過檢查,說權限不足。 也因為這樣,它就似乎不能觸發判斷迴圈,找不到編號:20的虛擬螢幕,造成啟動失敗的結果。 最後,終於讓我找到辦法,順便給自己記錄遇到的問題如何處理。 試著編輯這個檔案,找到1380行: nano -l /opt/google/chrome-remote-desktop/chrome-remote-deskt… Read more (完整文章內容)UBUNTU升級到24.04.2後,本來google remote desktop可以用,變成不能用的可能解法

ESP32新版的語法不一樣,遇到背光燈板調整亮度的問題。Lilygo T-Disply S3

為了能控制TFT螢幕的背光燈板亮度,被這個函式庫宣告問題,搞了好一陣子卡關,才發現網路上大部分範例是舊版的撰寫語法。 連ChatGPT和Github Copilet,都還是用舊版的指導說明寫法。 還是需要靠GOOGLE我大哥舊方法,找一下是不是有最新的教學說明。 還真的有看到新舊比較的訊息…XD 總之,差別在於新版的宣告變簡單了。 ***舊版寫法: 初始化PWM ledcSetup(channel, freq, res) + ledcAttachPin() 輸出 PWM ledcWrite(channel, value) ***新版寫法: 初始化PWM ledcAttach(PIN, freq, resolution); 輸出 ledcWrite(PIN, duty); 參考來源: 使用ESP32 Arduino開發平台3.x版製作呼吸燈效果 https://swf.com.tw/?p=2000 趁現在記憶猶新,除了呼吸燈範例。 我也把自己的單純亮度控制,和監控時間設定亮度,給自己一個紀錄。 範例程式如下: #define LED_PIN 38 // LED腳位,Lilyg… Read more (完整文章內容)ESP32新版的語法不一樣,遇到背光燈板調整亮度的問題。Lilygo T-Disply S3

ESP32/8266、Arduino開發環境需要用繁體中文字顯示的解法

研究出方法後,給自己一個紀錄。 首先,先去u8g2的開發者抓工具檔案下來: https://github.com/olikraus/u8g2 解壓縮後,這個資料夾有兩個是待會要用的轉檔程式連結: .\u8g2-master\u8g2-master\tools\font\otf2bdf\ .\u8g2-master\u8g2-master\tools\font\bdfconv\ 以及開發者已經做好的常用中文字型檔: .\u8g2-master\tools\font\build\chinese1.map 那因為自己在開發使用的繁體字,這裡可能回沒有相關的UNICODE碼,所以我們試著自己增加程式想要用的中文字。 可以利用這個網站工具,幫忙把需要的繁體字轉成UNICODE碼。 https://www.ifreesite.com/unicode-ascii-ansi.htm 例如: 一,二,三,四,五,六,七,八,九,十,零, 甲,乙,丙,丁,戊,己,庚,辛,壬,癸, 子,丑,寅,卯,辰,巳,午,未,申,酉,戌,亥, 把它貼上,取的下面類似\uXXX開頭的字串。 我們用記事本++或其他自己習慣… Read more (完整文章內容)ESP32/8266、Arduino開發環境需要用繁體中文字顯示的解法