2026年10月21日 星期三

FreeBSD 時間設定

時區設定
tzsetup
cp /usr/share/zoneinfo/Asia/Taipei /etc/localtime

adjkerntz -a

NTP 設定
編輯 /etc/ntp.conf
# 指定僅向 tock.stdtime.gov.tw 進行對時
server tock.stdtime.gov.tw iburst

# 預設拒絕外部所有不信任的存取(安全性設定)
restrict default limited kod nomodify notrap noquery nopeer
restrict source limited kod nomodify notrap noquery

# 開放本機無限制存取
restrict 127.0.0.1
restrict ::1

# 閏秒清單
leapfile "/var/db/ntpd.leap-seconds.list"

啟用服務
service  ntpd onestart

FreeBSD Sylve Jail 設定 xrdp + 中文輸入

pkg install -y xrdp xfce xorg xorgxrdp
pkg install -y xorg xfce xfce4-goodies
pkg install -y noto-tc
pkg install -y zh-CJKUnifonts
pkg install -y zh-CNS11643-font
fc-cache -f -v

pkg install -y fcitx5 fcitx5-configtool fcitx5-gtk2 fcitx5-gtk3 fcitx5-gtk4 fcitx5-qt5 fcitx5-qt6
pkg install -y zh-fcitx5-chewing zh-fcitx5-chinese-addons zh-fcitx5-table-extra zh-fcitx5-table-other

service dbus start
service xrdp start
service xrdp-sesman start 

XRDP 設定 ~/.startwm.sh
編輯 /usr/local/etc/xrdp/startwm.sh
# 系統選單與桌面語系
export LANG=zh_TW.UTF-8
export LC_CTYPE=zh_TW.UTF-8
export LC_MESSAGES=zh_TW.UTF-8

# Fcitx5 輸入法模組
export GTK_IM_MODULE=fcitx
export QT_IM_MODULE=fcitx
export XMODIFIERS=@im=fcitx

exec startxfce4

修正 /usr/local/etc/xrdp/key.pem /usr/local/etc/xrdp/cert.pem
service xrdp stop
rm -f /usr/local/etc/xrdp/cert.pem /usr/local/etc/xrdp/key.pem

# OpenSSL 手動生成現代化 SHA256 憑證 (有效期限 3650 天)
openssl req -x509 -newkey rsa:2048 -sha256 -nodes \
  -keyout /usr/local/etc/xrdp/key.pem \
  -out /usr/local/etc/xrdp/cert.pem \
  -days 3650 \
  -subj "/CN=FreeBSD-Jail-xrdp"

# 修正檔案權限,確保 xrdp 帳號可存取
chown _xrdp:_xrdp /usr/local/etc/xrdp/key.pem /usr/local/etc/xrdp/cert.pem
chmod 600 /usr/local/etc/xrdp/key.pem
chmod 644 /usr/local/etc/xrdp/cert.pem

2026年10月20日 星期二

FreeBSD 更新

更新 FreeBSD 系統本體 (Base System)
檢查並下載系統更新檔
freebsd-update fetch

安裝下載好的系統更新
freebsd-update install

更新第三方套件 (Pkg)
pkg update
pkg upgrade

清理無用的舊版套件與快取
pkg autoremove
pkg clean -a

FreeBSD 安裝 sshfs

pkg install -y fusefs-sshfs

載入 FUSE 核心模組
kldload fusefs

設定開機載入 fusefs
sysrc -f /boot/loader.conf fusefs_load="YES"

FreeBSD 啟用 Serial Console(透過 Serial 登入系統)

編輯 /boot/loader.conf,加入以下內容以啟動 Boot Loader 的 Serial 輸出:
boot_multicons="YES"
boot_serial="YES"
comconsole_speed="115200"
console="comconsole,vidconsole"

編輯 /etc/ttys 修改
ttyu0   "/usr/libexec/getty 3wire.115200"   vt100   on  secure

2026年10月19日 星期一

NAT LoopBack Iptable 設定範例

IF=vmbr0
PORT_FROM=3142
PORT_TO=3142
DEST=172.16.255.8
LAN_NET="172.16.0.0/16"

# 1. DNAT:將外部或內部存取 Port 的流量轉發至目標 VM/LXC
# (移除 -i $IF 限制,允許來自內網與外網的流量都能觸發轉發)
iptables -t nat -A PREROUTING -p tcp --dport $PORT_FROM -j DNAT --to $DEST:$PORT_TO

# 2. NAT Loopback (Hairpin SNAT):
# 當來源為內網 (LAN_NET) 且目的地為 DEST:PORT_TO 時,將來源 IP 改寫為防火牆的 LAN IP
iptables -t nat -A POSTROUTING -s $LAN_NET -d $DEST -p tcp --dport $PORT_TO -j MASQUERADE

# 3. FORWARD:允許此轉發流量通過防火牆
iptables -A FORWARD -p tcp -d $DEST --dport $PORT_TO -j ACCEPT

2026年10月16日 星期五

FreeBSD Sylve 增加 pam 登入方式

編輯  /usr/local/etc/sylve/config.json 修改
"auth": {
        "enablePAM": true 
    },

service sylve restart

2026年10月12日 星期一

FreeBSD 15安裝 xrdp + xfce + fcitx 中文輸入法

pkg install xorg xfce xfce4-goodies
pkg install noto-tc
pkg install zh-CJKUnifonts
pkg install zh-CNS11643-font
fc-cache -f -v

pkg install fcitx5 fcitx5-configtool fcitx5-gtk2 fcitx5-gtk3 fcitx5-gtk4 fcitx5-qt5 fcitx5-qt6
pkg install -y zh-fcitx5-chewing zh-fcitx5-chinese-addons zh-fcitx5-table-extra zh-fcitx5-table-other

XRDP 設定 ~/.startwm.sh
# 系統選單與桌面語系
export LANG=zh_TW.UTF-8
export LC_CTYPE=zh_TW.UTF-8
export LC_MESSAGES=zh_TW.UTF-8

# Fcitx5 輸入法模組
export GTK_IM_MODULE=fcitx
export QT_IM_MODULE=fcitx
export XMODIFIERS=@im=fcitx

2026年10月8日 星期四

FreeBSD 15x 安裝 xrdp

pkg install -y xfce
pkg install -y dbus

sysrc dbus_enable="YES"
sysrc xrdp_enable="YES"
sysrc xrdp_sesman_enable="YES"

service dbus start
service xrdp start
service xrdp-sesman start

echo "exec startxfce4" > ~/.startwm.sh
chmod +x ~/.startwm.sh

編輯 /usr/local/etc/xrdp/startwm.sh
exec ~/.startwm.sh

xrdp 連線 unknown target image 警告

編輯 /usr/local/etc/xrdp/xrdp.ini [Globals] 區段,新增或修改
cliprdr_image_conversion=false

FreeBSD 15.x 安裝 xfce + 中文輸入法

pkg install -y xorg xfce xfce4-goodies
pkg install -y noto-tc

#pkg install -y zh-CJKUnifonts
#pkg install -y zh-CNS11643-font

fc-cache -f -v

pkg install -y fcitx5 fcitx5-configtool fcitx5-gtk2 fcitx5-gtk3 fcitx5-gtk4 fcitx5-qt5 fcitx5-qt6
pkg install -y zh-fcitx5-chewing zh-fcitx5-chinese-addons zh-fcitx5-table-extra zh-fcitx5-table-other

2026年10月5日 星期一

BreeBSD Bridge 筆記

ifconfig bridge create name vmbr0
ifconfig vmbr0 addm igb0
ifconfig vmbr0 up

sysrc cloned_interfaces+="bridge0"
sysrc ifconfig_bridge0_name="vmbr0"
sysrc ifconfig_vmbr0="addm igb0 up"

ifconfig vmbr0
ifconfig vmbr0 deletem igb0
ifconfig vmbr0 down
ifconfig vmbr0 destroy

sysrc cloned_interfaces-="bridge0"
sysrc -x ifconfig_bridge0_name
sysrc -x ifconfig_vmbr0

2026年9月14日 星期一

LXC 安裝 Squid

 若 LXC 阻擋了 systemd 自動建立目錄的權限,請覆蓋該設定:
修改 systemd 設定覆蓋 RuntimeDirectory

檢視 Squid 的 RuntimeDirectory 配置
systemctl show squid.service -p RuntimeDirectory

sudo systemctl edit squid.service

[Service]
RuntimeDirectory=
ExecStartPre=-/bin/mkdir -p /run/squid
ExecStartPre=-/bin/chown proxy:proxy /run/squid

Apache2 設定編碼方式

編輯  /etc/apache2/conf-available/charset.conf 加入
AddDefaultCharset UTF-8

編輯 .htaccess
AddDefaultCharset UTF-8
AddType 'text/html; charset=UTF-8' .html .htm
AddType 'application/json; charset=UTF-8' .json




Vi 使用滑鼠時完全不觸發 Visual Mode

:set mouse=

配置文件 vim ~/.vimrc

保持 Vim 滑鼠功能,按住 Shift鍵選取

Linux mirror port 設定筆記

清除 eth2 IP 設定混雜模式
sudo ip addr flush dev eth2
sudo ip link set dev eth2 up
sudo ip link set dev eth2 promisc on

設定 tc eth1 進入規則
sudo tc qdisc add dev eth1 handle ffff: ingress
sudo tc filter add dev eth1 parent ffff: protocol all u32 match u32 0 0 action mirred egress mirror dev eth2

設定 tc eth1 流出規則
sudo tc qdisc add dev eth1 root handle 1: prio
sudo tc filter add dev eth1 parent 1: protocol all u32 match u32 0 0 action mirred egress mirror dev eth2

檢查 tc 規則
sudo tc filter show dev eth1 ingress
sudo tc filter show dev eth1 parent 1:

刪除 tc 規則
sudo tc qdisc del dev eth1 handle ffff: ingress
sudo tc qdisc del dev eth1 root

關閉 eth1 的混雜模式
sudo ip link set dev eth2 promisc off


modprobe ifb act_mirred
ip link set dev nic2 promisc on
tc qdisc add dev nic1 handle ffff: ingress
tc filter add dev nic1 parent ffff: protocol all u32 match u32 0 0 action mirred egress mirror dev nic2

tc qdisc add dev nic1 root handle 1: prio
tc filter add dev nic1 parent 1: protocol all u32 match u32 0 0 action mirred egress mirror dev nic2

tc filter show dev nic1 ingress
tc filter show dev nic1 parent 1:

2026年8月25日 星期二

Open WebUI 設定為免帳號、免登入使用 Docker 執行

 docker run -d -p 3000:8080 \
  -e WEBUI_AUTH=False \
  -e OLLAMA_BASE_URL=http://host.docker.internal:11434 \
  --add-host=host.docker.internal:host-gateway \
  -v open-webui-data:/app/backend/data \
  --name open-webui \
  --restart always \
  ghcr.io/open-webui/open-webui:main

Apache2 修改 加密設定

 SSLHonorCipherOrder on

SSLCipherSuite ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384

SSLProtocol all -SSLv3 -TLSv1 -TLSv1.1

nginx 修改 加密設定

ssl_prefer_server_ciphers on;

ssl_ciphers 'ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384';

#ssl_ciphers ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA384;

ssl_protocols TLSv1.2 TLSv1.3;

LEAF Shorewall NAT LOOPBACK 範例

編輯 /etc/shorewall/interfaces 增加 routeback
net             eth0                    dhcp
loc             eth1                    dhcp,routeback

編輯 /etc/shorewall/nat
100.109.54.55   eth0            192.168.9.55    Yes             No

編輯/etc/shorewall/snat
MASQUERADE     192.168.9.0/24 eth1 

編輯  /etc/shorewall/rules
SSH(ACCEPT)     net:100.109.54.0/24  loc:192.168.9.55
#DNAT       net      loc:192.168.9.55:22   tcp     22   -   100.109.54.55
#DNAT       loc      loc:192.168.9.55      tcp     22   -   100.109.54.55