2025/10/09

昨天在二個地方碰到相同問題
手几能捉到wifi訊號但連不上
無線一直有個狀況就是如果之前連過某個AP
就會先一直咬住
即使頭頂上有一個AP
也不一定會再优先連頭頂上的那個
討論之後的做法建議是先清除原本的設定
再讓手几自己捉一次訊號
捉到最近AP的几會就會比較大

安卓清除方式如下






在iPhone 上清除Wi-Fi 設定

前往「設定」>「Wi-Fi」,點選網路旁的「更多資訊」圖示,再點「忘記此網路設定」
























2025/10/05

又在 librenms heallth state 發現有設備fan 壞了





怪的是在syslog都沒看到相關訊息
不管是在 syslog server或在本几下 show log
所以在librenms 再加了一個alert rules





















2025/10/02

promox mail gateway 9 這次的進展真的快

Beta出來沒几天 正式版就出來了

而且之前都要等好久 才會有 LXC 的template

今天早上就已經看到了

既然看到 就升吧

一直以來都是直安裝新版再重設config

官方雖然有升版的文件

但以往的經驗是直接原几升都會有問題

https://forum.proxmox.com/threads/proxmox-mail-gateway-9-0-released.173158/

2025/09/26

昨天說的工具 如果碰到是用xml檔案安裝的office會無法移除

就要使用別的方法

Office Deployment Tool, ODT


下載解壓後得到 setup.exe執行檔

接下來要制做 xml file 檔名設為 remove_office.xml

<Configuration>
    <Remove All="TRUE" />
    <Display Level="None" AcceptEULA="TRUE" />
    <Property Name="FORCEAPPSHUTDOWN" Value="TRUE" />
</Configuration>


以系統管理員身分執行

setup.exe /configure remove_office.xml

2025/09/25

因應office 2019 2016的eos

找了可以下指令移除的官方工具


下載後解压 

以系統管理員執以下指令即可

SaRAcmd.exe -S OfficeScrubScenario -AcceptEula -OfficeVersion All

2025/09/24

今天要把ixc 7150 的firmware撈出來
size 是 31457280
但不管是用tftp或scp
都做到一半就斷了
試了好几次都一樣
想說是不是idle timeout的問題
改一下設定

(config)#telnet timeout 
  DECIMAL   <0..240> In minutes, 0 never timeout
先調大一些

改完後就ok了

2025/09/22

最近在找可以在dos視窗解壓的工具

找到

https://www.7-zip.org/a/7zr.exe

不過只支援7z

指令範例如下


7zr.exe -y x %temp%\abc.7z -o%temp%

今天早上打開看ntopng時發現完全沒有資料

本來以為是mirror有問題

測試了一下

其他的几器使用tcpdump 去看都正常

唯獨這台完全捉不到封包

dmesg發現以下訊息


[    4.618648] ------------[ cut here ]------------

[    4.618940] WARNING: CPU: 3 PID: 671 at net/core/dev.c:603 dev_add_pack+0xaa/0xd0

[    4.618954] Modules linked in: pf_ring(OE+) rfkill bochs drm_vram_helper drm_ttm_helper ttm drm_kms_helper pcspkr virtio_balloon i2c_piix4 joydev drm fuse xfs libcrc32c sr_mod cdrom sg ata_generic ata_piix libata crc32c_intel virtio_net net_failover virtio_blk failover serio_raw

[    4.618969] CPU: 3 PID: 671 Comm: modprobe Tainted: G           OE     -------  ---  5.14.0-570.44.1.el9_6.x86_64 #1

[    4.618971] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS rel-1.16.3-0-ga6ed6b701f0a-prebuilt.qemu.org 04/01/2014

[    4.618973] RIP: 0010:dev_add_pack+0xaa/0xd0

[    4.618975] Code: c5 28 11 00 00 eb a0 48 8b 6f 28 48 85 ed 74 15 48 81 c5 18 11 00 00 48 85 d2 74 8b 48 8d aa a8 01 00 00 eb 82 48 85 d2 75 f2 <0f> 0b 5b 5d 41 5c 41 5d e9 99 b7 2b 00 66 c1 c0 08 83 e0 0f 48 c1

[    4.618977] RSP: 0018:ffff983bc076fb58 EFLAGS: 00010246

[    4.618979] RAX: 0000000000000300 RBX: ffffffffc0814da0 RCX: 0000000000000201

[    4.618981] RDX: 0000000000000000 RSI: 0000000000000001 RDI: ffffffffc0814da0

[    4.618981] RBP: 0000000000000000 R08: ffff983bc076fb00 R09: ffff8ae7c72b7860

[    4.618982] R10: ffff8ae7c3c78540 R11: 000000000003a680 R12: 0000000000000000

[    4.618983] R13: 00007f5329cd55ad R14: 000055d97d7be962 R15: ffff983bc076fc20

[    4.618985] FS:  00007f532a75d740(0000) GS:ffff8ae8f7d80000(0000) knlGS:0000000000000000

[    4.618986] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033

[    4.618987] CR2: 00007f5329cd4ff0 CR3: 0000000108956000 CR4: 00000000000006f0

[    4.618992] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000

[    4.618993] DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400

[    4.618994] Call Trace:

[    4.618996]  <TASK>

[    4.618998]  ? show_trace_log_lvl+0x1c4/0x2df

[    4.619003]  ? show_trace_log_lvl+0x1c4/0x2df

[    4.619006]  ? __pfx_init_module+0x10/0x10 [pf_ring]

[    4.619020]  ? ring_init+0x29a/0xff0 [pf_ring]

[    4.619030]  ? dev_add_pack+0xaa/0xd0

[    4.619031]  ? __warn+0x7e/0xd0

[    4.619035]  ? dev_add_pack+0xaa/0xd0

[    4.619037]  ? report_bug+0x100/0x140

[    4.619040]  ? handle_bug+0x3c/0x70

[    4.619043]  ? exc_invalid_op+0x14/0x70

[    4.619045]  ? asm_exc_invalid_op+0x16/0x20

[    4.619050]  ? dev_add_pack+0xaa/0xd0

[    4.619052]  ? __pfx_init_module+0x10/0x10 [pf_ring]

[    4.619062]  ring_init+0x29a/0xff0 [pf_ring]

[    4.619072]  do_one_initcall+0x44/0x210

[    4.619077]  do_init_module+0x64/0x230

[    4.619080]  __do_sys_init_module+0x12e/0x1b0

[    4.619084]  do_syscall_64+0x5f/0xe0

[    4.619086]  ? syscall_exit_to_user_mode+0x19/0x40

[    4.619088]  ? do_syscall_64+0x6b/0xe0

[    4.619090]  ? netif_receive_skb_list_internal+0x1e4/0x300

[    4.619094]  ? napi_complete_done+0x6e/0x220

[    4.619096]  ? virtnet_poll+0x1fb/0x2d4 [virtio_net]

[    4.619104]  ? __napi_poll+0x2c/0x170

[    4.619106]  ? net_rx_action+0x29c/0x370

[    4.619109]  ? kvm_sched_clock_read+0xd/0x20

[    4.619111]  ? sched_clock+0xc/0x30

[    4.619114]  ? sched_clock_cpu+0xb/0x190

[    4.619119]  ? irqtime_account_irq+0x3c/0xb0

[    4.619121]  ? handle_softirqs+0x16b/0x270

[    4.619125]  ? __irq_exit_rcu+0x46/0xc0

[    4.619127]  ? common_interrupt+0x43/0xa0

[    4.619129]  entry_SYSCALL_64_after_hwframe+0x78/0x80

[    4.619133] RIP: 0033:0x7f5329f0f51e

[    4.619135] Code: 48 8b 0d fd 98 0e 00 f7 d8 64 89 01 48 83 c8 ff c3 66 2e 0f 1f 84 00 00 00 00 00 90 f3 0f 1e fa 49 89 ca b8 af 00 00 00 0f 05 <48> 3d 01 f0 ff ff 73 01 c3 48 8b 0d ca 98 0e 00 f7 d8 64 89 01 48

[    4.619137] RSP: 002b:00007ffe93d34038 EFLAGS: 00000246 ORIG_RAX: 00000000000000af

[    4.619138] RAX: ffffffffffffffda RBX: 000055d97db21bb0 RCX: 00007f5329f0f51e

[    4.619139] RDX: 000055d97d7be962 RSI: 000000000005e59d RDI: 00007f5329c77010

[    4.619140] RBP: 00007f5329c77010 R08: 000055d97db21e40 R09: 0000000000000000

[    4.619141] R10: 0000000000000005 R11: 0000000000000246 R12: 000055d97d7be962

[    4.619142] R13: 000055d97db21d20 R14: 000055d97db21bb0 R15: 000055d97db21df0

[    4.619144]  </TASK>

[    4.619144] ---[ end trace 0000000000000000 ]---

[    4.619146] [PF_RING] pf_ring initialized correctly

[    4.676410] dca service started, version 1.12.1

[    4.683689] gnss: GNSS driver registered with major 240 


knerlel 更新後 pf_ring 不能用了

只好先倒回去更新前的備分

倒回去後開几就正常了

再來就是先暫停kernel的更新


vi /etc/dnf/dnf.conf

在 [main] 加上 exclude=kernel*
如下

[main]
...
exclude=kernel*

之後再看看如果kernel沒問題再拿掉吧

2025/09/12

因為之前用的rainloop webmail在今年的弱掃出現風險
但看起來作者已經不再更新維護了


找了找 目前大約只剩 roundcube webmail 還有維護更新


使用 docker


首先依官方的說明

docker run -e ROUNDCUBEMAIL_DEFAULT_HOST=mail -e ROUNDCUBEMAIL_SMTP_SERVER=mail -p 8000:80 -d roundcube/roundcubemail

啟動後可以收信 但不能寄信

查文件才發現預設的smtp不是連 25

所以改一下

docker run --restart=always -e ROUNDCUBEMAIL_DEFAULT_HOST=mail.aaa.tw -e ROUNDCUBEMAIL_SMTP_SERVER=mail.aaa.tw -e ROUNDCUBEMAIL_SMTP_PORT=25 -p 8888:80 -d roundcube/roundcubemail

指定 port 25

改完後 mail server 上的 log 是有連記錄了
但還是無法寄 出現如下問題








看起來是roundcube會強制使用認証

參考文件後 再改一下啟動參數

docker run --restart=always -e ROUNDCUBEMAIL_SMTP_PASS='' -e ROUNDCUBEMAIL_SMTP_USER='' -e ROUNDCUBEMAIL_SMTP_AUTH_TYPE='' -e ROUNDCUBEMAIL_DEFAULT_HOST=mail.aaa.tw -e ROUNDCUBEMAIL_SMTP_SERVER=mail.aaa.tw -e ROUNDCUBEMAIL_SMTP_PORT=25 -p 8888:80 -d roundcube/roundcubemail

但還是沒用
進到docker去看後才發現以下參數沒有被吃進去

ROUNDCUBEMAIL_SMTP_PASS=''
ROUNDCUBEMAIL_SMTP_USER='' 
ROUNDCUBEMAIL_SMTP_AUTH_TYPE=''

只能換另一個方法
先把原來的 config.inc.php 先 co出來

<?php
    $config['plugins'] = [];
    $config['log_driver'] = 'stdout';
    $config['zipdownload_selection'] = true;
    $config['des_key'] = 'dK8orO1JOTEWY';
    $config['enable_spellcheck'] = true;
    $config['spellcheck_engine'] = 'pspell';
    include(__DIR__ . '/config.docker.inc.php');

加入以上參數放在宿主 於啟動時帶入
檔案修改後如下

<?php
    $config['plugins'] = [];
    $config['log_driver'] = 'stdout';
    $config['zipdownload_selection'] = true;
    $config['des_key'] = 'dK8orO1JOTEWY';
    $config['enable_spellcheck'] = true;
    $config['spellcheck_engine'] = 'pspell';
    $config['smtp_auth_type'] = ''; 
    $config['smtp_user'] = '';
    $config['smtp_pass'] = '';
    include(__DIR__ . '/config.docker.inc.php');

修改參數啟動docker

docker run --restart=always -v /tmp/config.inc.php:/var/www/html/config/config.inc.php:ro -e ROUNDCUBEMAIL_DEFAULT_HOST=mail.aaa.tw -e ROUNDCUBEMAIL_SMTP_SERVER=mail.aaa.tw -e ROUNDCUBEMAIL_SMTP_PORT=25 -e ROUNDCUBEMAIL_UPLOAD_MAX_FILESIZE=25M -p 8888:80 -d roundcube/roundcubemail

寄信就沒問題了

2025/08/29

最近試了一下 wazuh

安裝很方便 官方文件如下



但安裝好後如果要更改admin的密碼 依官方文件試了很多次都無法成功
還會導致wazuh 有問題打不開



安裝好後主要設定檔是

/var/ossec/etc/ossec.conf

目前只改了 email通知跟 啟動syslog server

<email_notification>yes</email_notification>
    <smtp_server>10.0.0.1</smtp_server>
    <email_from>wazuh@abc.com</email_from>
    <email_to>abc@abc.com</email_to>
    <email_maxperhour>12</email_maxperhour>
    <email_log_source>alerts.log</email_log_source>
    <agents_disconnection_time>10m</agents_disconnection_time>
    <agents_disconnection_alert_time>0</agents_disconnection_alert_time>
    <update_check>yes</update_check>
  </global>

  <alerts>
    <log_alert_level>3</log_alert_level>
    <email_alert_level>10</email_alert_level>        這裡修改那個level 以上要發通知
  </alerts>


啟動 syslog server

<remote>
  <connection>syslog</connection>
  <port>514</port>
  <protocol>udp</protocol>
  <allowed-ips>10.0.0.0/8</allowed-ips>
  <local_ip>10.1.1.1</local_ip>
</remote>

wazuh 會自動解析log 但如果解析規則沒有定義 就不會出現在 discover


client 端要自己把要monior的檔案加上去 才會送到 server進行解析

<localfile>
  <location>/var/log/httpd/access_log</location>
  <log_format>apache</log_format>
</localfile>

<localfile>
  <location>/var/log/httpd/error_log</location>
  <log_format>syslog</log_format>
</localfile>

<localfile>
  <log_format>syslog</log_format>
  <location>/var/log/secure</location> 
</localfile>

2025/08/21

如何在librenms設定到達某個臨界值時發出告警

最快的方式

點開要設定告警的圖
找出url上的 id 值
如下所示
http://10.0.0.1/graphs/to=1755736500/id=22718/type=sensor_fanspeed/from=1755650100/

id 是 22718

再來設定 alert rule
如下圖
設定名稱, sesssor id , 跟告警值
設完後儲存即可



















第二個方式

點開要取值的圖 如下

註記表示在 alert rule 需要使用的 名稱








接下來 create new alert rule



















設定名稱, rule 即可
如果需要限定作用几器 再額外加上 match devices


建立感測器警報規則時最常會用到的選項如下

選項 (Attribute) 資料類型 說明

sensor_value            數字         (最常用) 感測器目前讀取到的數值。例如,電壓的 110、溫度的 25、電量的 98。

sensor_descr         文字         感測器的描述性名稱。例如 Input Phase 1、CPU Core 0 Temp、Toner Level。用來鎖定特定感測器。

sensor_type         文字         感測器的類型,通常來自 MIB 的定義。例如 voltage、temperature、charge、snmp。用來篩選某一類型的所有感測器。

sensor_class         文字         感測器的通用類別。與 sensor_type 類似,但更通用。例如 temperature、voltage、current 等。

sensor_limit         數字         設備本身定義的高臨界值。如果設備透過 SNMP 提供此資訊,您可以用它來做動態比較。

sensor_limit_low 數字         設備本身定義的低臨界值。

sensor_alert         數字 (0/1) 一個布林值 (Boolean),表示設備本身是否認為此感測器已處於警報狀態。1 代表是,0 代表否。


這些選項在特定情境下也可能很有用。

選項 (Attribute) 資料類型 說明

sensor_id             數字         感測器在 LibreNMS 資料庫中的唯一 ID。

sensor_prev         數字         感測器上一次輪詢 (poll) 時的數值。可用來比較數值的變化。

last_updated         時間戳         該感測器最後一次更新的時間

2025/08/20

zabbix設定好triger action
一直沒收到alert
查了半天
才知道server monitor的權限沒開
因為預設是 All groups None
記得要把權限加上去
至少要有read
 






如果要在zabbix要使用不同的mib

找到下方工具 應該是最方便使用的

https://github.com/Sean-Bradley/SNMPWALK2ZABBIX


只要以下指令

python3 snmpwalk2zabbix.py public 192.168.1.1 1.3.6.1.2.1

就會產生 template 的 xml 可以直接從 zabbix 匯入

但執行時出現以下問題
























試了好几次都一樣

原因出在產生出來的xml裡有雙引號

<template>"INSIGHTPOWER" SNMP</template>
<name>"INSIGHTPOWER" SNMP</name>

把雙引號拿掉就正常了


<template>INSIGHTPOWER SNMP</template>

<name>INSIGHTPOWER SNMP</name>

2025/08/19

今天有人問我自建rustdesk的問題
其實在好久之前本來就已經自建了
不過因為管制在內部
所以沒有考慮管制連線的問題
找了一些資料 把這段補起來

下載最新版本的 server


解開後直接執行

hbbs -k _
hbbr -k _

會產生以下二個檔

id_ed25519
id_ed25519.pub

需要cat id_ed25519.pub 的內容 取得公鑰字串

下載client軟体

下載後把檔名改成

rustdesk-host=<伺服器IP或域名>,key=<您的公鑰字串>.exe

假設您的伺服器 IP 是 10.0.0.0,公鑰是 A1B2C3D4E5F68I9J0...,那麼檔名就應該是: rustdesk-host=192.168.1.10,key=A1B2C3D4E5F68I9J0....exe

存檔後直接執行即可

如果不改檔名的話 可以執後再更改相關設定




2025/08/17

almalinux 10 出來一段時間了
想說來升級一下
依照官方的步驟



出現四個問題

Upgrade has been inhibited due to the following problems:
    1. Detected XFS filesystems incompatible with target kernel.
    2. Current x86-64 microarchitecture is unsupported in RHEL10
    3. Deprecated DHCP plugin configured

解決方法

第4點

ifcfg-* files located in /etc/sysconfig/network-scripts/
檔案裡要加上

第3點

sed -i'.bak' 's/^dhcp=dhclient//g' /usr/lib/NetworkManager/conf.d/10-dhcp-dhclient.conf

第2點

rhel 10 cpu 硬体最低支援是 x86-64-v3

檢查 cpu 支援指令

/usr/lib64/ld-linux-x86-64.so.2 --help

Subdirectories of glibc-hwcaps directories, in priority order:
  x86-64-v4
  x86-64-v3 (supported, searched)
  x86-64-v2 (supported, searched)

第1點

Title: Detected XFS filesystems incompatible with target kernel.
Summary: XFS v4 format has been deprecated and it has been removed from the target k
ernel. Such filesystems cannot be mounted by target system kernel and so the upgrade
 cannot proceed successfully. Following XFS filesystems have v4 format:
    - /
    - /home
Related links:
    - Backing up an XFS file system: https://red.ht/rhel-9-xfs-backup
    - Restoring an XFS file system from backup: https://red.ht/rhel-9-xfs-restore-fr
om-backup
Remediation: [hint] Migrate XFS v4 filesystems to new XFS v5 format. For filesystems
 hosting data, perform a back up, reformat, and restore procedure. Refer to official
 documentation for details. For filesystems hosting the system a clean installation
is recommended instead.

由於這台是centos 7 升上來的 所以 xfs 是 v4
如果要再升到almalinux 10 必須要升到 xfs v5
如何檢查 xfs是 v4 還是 v5


If the output is crc=0, it's a v4 filesystem. If it's crc=1, you have a v5 filesystem.


無法直接升級 只能備分 mkfs.xfs 再匯回資料

 rsync -avxHAX --progress /data/ /mnt/backup/data_backup/

umount /data

mkfs.xfs /dev/vda1

mount -t xfs /dev/vda1 /data

rsync -avxHAX --progress  /mnt/backup/data_backup/ /data/

2025/08/15

最近有個新的需求
希望在市電斷電
但發電机無作動是能關几
而且關几要有先後順序
首先詢問環控系統看看能不能讓我捉乾接點的訊號
廠商回覆是沒辦法
但他們可以增加這個功能
要收費
於是換個思考方式
目前就打算捉UPS的snmp值
只捉輸入電壓跟電池剩餘電量
由於現況是使用 AELTA 
找了一下SNMP的oid

輸入電壓有三相
1.3.6.1.2.1.33.1.3.3.1.3.1.0
1.3.6.1.2.1.33.1.3.3.1.3.2.0
1.3.6.1.2.1.33.1.3.3.1.3.3.0

旁路供電 三相

1.3.6.1.2.1.33.1.5.3.1.2.1.0
1.3.6.1.2.1.33.1.5.3.1.2.2.0
1.3.6.1.2.1.33.1.5.3.1.2.3.0 


只捉一相即可

電池剩餘電量

1.3.6.1.2.1.33.1.2.4.0

shell如下

#!/bin/bash

battery=$(/usr/bin/snmpwalk -v 2c -c public 10.0.0.1 1.3.6.1.2.1.33.1.2.4.0 | awk '{print $NF}'|cut -d '.' -f 1 )
#echo $battery

input_voltage=$(/usr/bin/snmpwalk -v 2c -c public 10.0.0.1 1.3.6.1.2.1.33.1.3.3.1.3.1.0 | awk '{print $NF}'|cut -d '.' -f 1 )
#echo $input_voltage

if [ $battery -lt 80 ] && [ $input_voltage -lt 50 ]; then

#       echo "ok"
        /usr/sbin/init 0

fi


2025/08/12

前不久提到可以使用 zap docker 相當方便
但今天使用時有一些狀況
首先是如果不限制 docker 的 cpu ram 會把宿主几的資源全部吃完導致當几
必須使用 --cpu --memory 來設定
範例如下

--cpus="18" --memory 20000MB

接續以上的問題
在LXC就算增加2個以上的core 依然無法設定 --cpus 大於一
所以要使用vm才能設定多個cpu

另外硬碟使用率會隨著被scan的網站規模變大而變大
所以要有足夠的硬碟空間 否則也會有掃到一半當几的問題
要特別注意

2025/07/17

今天要把vsz轉到pve
不管是直接import或先tar 解開 使用 vmdk 都出現以下二個問題

首先是沒有 serial port
















要加上去

















再來是無法正常開几





















試了很多方法
最後是把vmdk轉成 qcow2才成功開機
qemu-img convert -f vmdk -O qcow2 vscg-5.2.2.0.1161-disk1.vmdk abc.qcow2



2025/07/12

如何解決win11最近更新造成倉頡空白鍵無法取字的問題 把相容性打開 如下影片



2025/07/02

最近一堆user反應如下的問題 一直跳出來

























以系統管理員執行 certmgr.msc

























在這個位置找到以上的憑証
刪除