2026年10月22日 星期四

Fortigate LAN port disable / Enable via CLI

用 CLI指令將port3 disable / enable.

1. Disable LAN port3
config system interface
    edit "port3"
        set status down
    next
end

2. Enable LAN port3
config system interface
    edit "port3"
        set status up
    next
end

3. 查詢 port3 狀態
diagnose hardware deviceinfo nic port3

Proxmox host and VM network disconnect

Reference: 
https://forum.proxmox.com/threads/fixed-intermittent-network-dropout-with-intel-i218-lm-nic-e1000e-hardware-offloading-bug.182062
 
狀況:
虛擬機啟用docker container不會卡住。
在防火牆設定外部port 443對應到虛擬機的port 443,過幾分鐘實體主機和虛擬機的網路會卡住。
把防火牆port 443對應關閉,重新插拔網路線,實體主機和虛擬機的網路會恢復。 
 
原因:
網路卡e1000e Linux kernel driver bug. 
在 kernel 會看到這樣的錯誤 e1000e 0000:00:19.0 nic0: Detected Hardware Unit Hang 
 
解法:
Step 1 -- Identify your physical NIC name
lspci | grep -i ethernet
ip link show

Note the interface that is the bridge port for vmbr0.

Step 2 -- Check offloading is currently enabled (confirms the issue applies to you)
ethtool -k nic0 | grep -E 'tcp-seg|generic-seg|generic-receive|rx-vlan|tx-vlan|scatter'

If any entries show on, proceed.

Step 3 -- Disable offloading immediately (temporary, to test)
Replace nic0 with your interface name:

ethtool -K nic0 gso off tso off rxvlan off txvlan off gro off tx off rx off sg off

Step 4 -- Make it permanent
Edit /etc/network/interfaces:
nano /etc/network/interfaces
iface nic0 inet manual
    post-up ethtool -K nic0 gso off tso off rxvlan off txvlan off gro off tx off rx off sg off 
 

2026年7月20日 星期一

痛風紀錄 2026/7/15

2026/7/15 早上發作,左腳前掌。早上吃科學中藥(上中下通用痛風丸),中午、晚上 秋水仙素,睡前 痛風丸。
2026/7/16 早上 痛風丸,中午、晚上 秋水仙素,睡前 痛風丸。(這天最痛)
2026/7/17 早上腹瀉(秋水仙素副作用)。 早上、晚上 痛風丸。(差不多好了)
2026/7/18 早上、晚上 痛風丸。 
2026/7/19 晚上 痛風丸。  
2026/7/20 晚上 痛風丸。  

2026年2月9日 星期一

樹莓派 5 關閉自動更新 (Raspberry Pi 5 disable auto update)

systemctl disable apt-daily.timer
systemctl disable apt-daily-upgrade.timer 

cd /etc/cron.daily
chmod 644 apt-compat
mv apt-compat apt-compat_disabled
vi  apt-compat_disabled
#exec /usr/lib/apt/apt.systemd.daily 
 
觀察是否還會有自動更新 

2025年8月27日 星期三

用 Grafana 呈現 zabbix 資料

Reference:
 
yum install -y grafana
systemctl start grafana-server
systemctl enable grafana-server
 
firewall-cmd --zone=public --add-port=3000/tcp --permanent
firewall-cmd --reload
 
用瀏覽器開啟 http://server-IP:3000/ 
預設帳號 admin,密碼 admin (會要求立即設定新密碼) 
 
安裝 zabbix plugin,安裝後要 Enable。

2025年8月12日 星期二

VScode C# 跨平台執行檔

需要的軟體:
  • Visual Studio 2022 Community
  • VScode (安裝 extension: C#, C# Dev Kit, IntelliCode C# Dev Kit)
  • .Net SDK 8
目標:
用 C# 產生 Windows / Linux 的執行檔

作法:
在 Visual Studio 2022 建立 Console App with .Net 8

2025年8月5日 星期二

2025年4月10日 星期四

痛風紀錄 2025-04

2025/4/8(二) 感覺右腳踝不太順。
2025/4/9(三) 開始痛了,白天還能正常走路,晚上變非常痛,早午晚各一顆秋水仙素。
2025/4/10(四) 凌晨睡覺一直被痛醒,稍微動一下腳踝就非常痛,在家休養一天,繼續吃秋水仙素,這一天最痛。
2025/4/11(五) 早上把腳塞進鞋子很痛,掙扎好久才塞進去,狀況好一點可以一拐一拐走路,早上吃一顆秋水仙素,開始拉肚子就沒再吃秋水仙素了,到晚上狀況有更好一點。
2025/4/12(六)剩下一點點痛,但還沒全好,走路比較順了。 
2025/4/13(日)可以正常走路,只剩下一點卡。  

2025年1月17日 星期五

Zabbix 偵測 remote port

範例:偵測遠端的 https port 443。
  • 用Template之後可重複使用
  • 在 items 選 Simple Check,搭配 {$IP} 參數
  • 在 host / Macros 設定 {$IP} 參數

測試UDP port

Reference:
 
安裝Windows版nmap
 
測試UDP port的指令
nmap -sU xx.xx.xx.xx -p port -Pn 

-sU : 掃描UDP
-p : port
-Pn : 跳過ping測試

 
 
 
 
 

2025年1月16日 星期四

Zabbix 新增偵測目標

Reference:
Zabbix 使用SNMP監控 Linux
 

網管軟體 Zabbix

Reference:
監控大挑戰 – 以 Zabbix 為例 Day 05. 安裝 Zabbix Server
 
安裝步驟:
install RockyLinux 9 (minimal install)
dnf update
dnf install -y epel*
 
#關閉SELinux (預設是開啟,會阻擋偵測其他 port)
vi /etc/selinux/config; SELINUX=disabled
setenforce 0
 
#到Zabbix網站選擇安裝方式

2024年12月2日 星期一

sendmail 寄到 DNS domain 有 CNAME 的問題

狀況:
透過sendmail寄信給客戶發生錯誤,客戶的domain會被改掉。
寄給user@xxx.com變成user@d29xxxuh8.cloudfront.net

原因:
用Google搜尋,看起來sendmail會優先用CNAME寄信,所以造成寄錯。

處理方法:
修改/etc/mail/sendmail.mc
dnl #add by Chdu 2024.12.02 (不要用CNAME, 必須在MAILER前面)
define(`confBIND_OPTS', `+WorkAroundBrokenAAAA')
define(`confPRIVACY_FLAGS', `authwarnings,needmailhelo,goaway')
FEATURE(`nocanonify')

sendmail.mc修改後,執行make產生sendmail.cf,再執行 systemctl restart sendmail

另外通知客戶的MIS調整DNS設定,避免在domain設定CNAME。

測試方法:
用 [root@mail_server]# echo "Test email body" | sendmail -v user@xxx.com 可以看到收件人domain是否被改變。

2024年11月25日 星期一

Redmine WebAPI 使用方式 (ChatGPT回答)

如何從外部讀取 redmine 的 issue 內容?
ChatGPT 說:

要从外部读取 Redmine 的 Issue 内容,可以通过 Redmine 提供的 REST API 实现。这种方式允许你以编程的方式访问 Redmine 的数据,包括项目、任务、时间条目等。以下是具体步骤和方法:


1. 启用 Redmine 的 REST API

  • 登录 Redmine 管理后台。
  • 前往 “管理” > “设置” > “API”。
  • 勾选 “启用 REST API”,然后保存。

2. 获取 API Key

每个用户都有一个唯一的 API Key,通常用于身份验证:

  1. 登录 Redmine。
  2. 前往 “我的账户” 页面。
  3. 找到 “API 密钥”,如果没有生成,可以点击生成按钮。

3. 使用 API 读取 Issue 数据

通过发送 HTTP 请求,可以读取 Issue 的内容。常见方法包括使用命令行工具(如 curl)或编程语言(如 Python、JavaScript 等)。

API Endpoint 示例

  • 获取单个 Issue:

  • 例如:https://your-redmine-site.com/issues/123.json

  • 获取多个 Issue:

    可以使用参数筛选:

    • project_id:指定项目
    • status_id:筛选状态
    • tracker_id:筛选跟踪器类型
    • assigned_to_id:筛选指定负责人