淺談 Go Iterator type Seq[V any] func(yield func(V) bool) type Seq2[K, V any] func(yield func(K, V) bool)
Docker 容器無法存取外網?nftables 下的 NAT 配置指南
獨立伺服器 CPU 頻率最大化配置指南 看看 CPU 現在用哪種模式 前提條件 系統:Linux(Debian、Ubuntu、Proxmox 等都行) 權限:root CPU:支援動態調頻(Intel Xeon、AMD EPYC / Ryzen 等) governor cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor powersave:省電小綿羊(頻率鎖低,省電但沒力) ondemand:按需加速(要用時才升頻,可能反應慢半拍) performance:全程高能(我們要的就是它!💪) 確認核心到底用哪種驅動(Intel / AMD) cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_driver 暫時拉滿效能 for cpu in /sys/devices/system/cpu/cpu[0-9]*; do echo performance > $cpu/cpufreq/scaling_governor done 重啟後也保持高能 方案 A:最穩妥推薦 apt install cpufrequtils -y echo 'GOVERNOR="performance"' >/etc/default/cpufrequtils systemctl enable cpufrequtils systemctl start cpufrequtils 方案 B:systemd 自訂服務 # /etc/systemd/system/cpu-performance.service [Unit] Description=Set CPU governor to performance After=multi-user.target [Service] Type=oneshot ExecStart=/bin/bash -c 'for cpu in /sys/devices/system/cpu/cpu[0-9]*; do echo performance > $cpu/cpufreq/scaling_governor; done' [Install] WantedBy=multi-user.target systemctl daemon-reexec systemctl daemon-reload systemctl enable --now cpu-performance.service
6 首國際最強公認催眠曲 Marconi Union - Weightless 432Hz (深度治癒身心靈 連接宇宙能量) Clair de Lune Deep sleep delta waves - Binaural beats sleep (30 分鐘版本) Erik SATIE - Gymnopédie No. 1 (鋼琴慢速版) Himalayan Healing - Tibetan Singing Bowls Meditation (15 分鐘版本)
透過 LinuxServer.io 打包的 Docker 映像檔,將桌面程式轉成網頁版,透過瀏覽器即可使用 LinuxServer.io 官網
Gluetun:讓 Docker 容器走 VPN 連線,沒網路就斷線,使用教學 Gluetun OpenVPN services: gluetun: image: qmcgaw/gluetun container_name: gluetun restart: unless-stopped cap_add: - NET_ADMIN devices: - /dev/net/tun:/dev/net/tun ports: - 8888:8888/tcp # HTTP proxy - 8388:8388/tcp # Shadowsocks - 8388:8388/udp # Shadowsocks volumes: - /home/user/gluetun:/gluetun environment: # 按照VPN供應商的OpenVPN設定檔填寫 - VPN_SERVICE_PROVIDER=protonvpn - VPN_TYPE=openvpn - OPENVPN_USER= # OpenVPN帳號 - OPENVPN_PASSWORD= # OpenVPN密碼 - SERVER_COUNTRIES=United Kingdom # 指定伺服器所在國家,以逗號分隔 networks: # (選擇性) 固定Gluetun容器的IP network: ipv4_address: 172.27.0.5 networks: # (選擇性) 固定Gluetun容器的IP network: driver: bridge ipam: config: - subnet: 172.27.0.0/16 gateway: 172.27.0.5 WireGuard services: gluetun: image: qmcgaw/gluetun container_name: gluetun restart: unless-stopped cap_add: - NET_ADMIN devices: - /dev/net/tun:/dev/net/tun ports: - 8888:8888/tcp # HTTP proxy - 8388:8388/tcp # Shadowsocks - 8388:8388/udp # Shadowsocks volumes: - /home/user/gluetun:/gluetun environment: - VPN_SERVICE_PROVIDER=protonvpn # 按照VPN供應商的WireGuard設定檔填寫 - VPN_TYPE=wireguard - WIREGUARD_PRESHARED_KEY= # 預共享密鑰 - WIREGUARD_PRIVATE_KEY= # 私鑰 - WIREGUARD_ADDRESSES= # 填IPV4與IPV6位址,以逗號分隔 - SERVER_COUNTRIES=United Kingdom # 指定伺服器所在國家,以逗號分隔 networks: # (選擇性) 固定Gluetun容器的IP network: ipv4_address: 172.27.0.5 networks: # (選擇性) 固定Gluetun容器的IP network: driver: bridge ipam: config: - subnet: 172.27.0.0/16 gateway: 172.27.0.5 讓容器走 Gluetun 的 VPN 連線 如果容器服務跟 Gluetun 寫在同一個 docker-compose:加入網路模式 network_mode: “service:gluetun” 如果該容器跟 Gluetun 不是寫在同一個 docker-compose:加入 network_mode: “container:gluetun” 開啟 Gluetun 的 docker-compose 檔案,把 service 用到的通訊埠(ex:8080)加回來 依序啟動 Gluetun 和 走 Gluetun 的 VPN 連線的服務 容器公共 IP 應當跟您選擇的 VPN 伺服器一致
Go 实战指南:使用 go-redis 执行 Lua 脚本 Redis command Eval Redis package redis.NewScript, script.Run
TIL:Bash 腳本的 timeout timeout 1m ./until.sh 包一層 timeout 1m bash -c "until curl --silent --fail-with-body 10.0.0.1:8080/health; do sleep 1 done"
TaigiTube 台語水管
我用 Zip Bomb 來保護我的伺服器 發生的情況是:對方收到檔案後,讀取標頭得知這是壓縮檔,因此嘗試解壓那個 1MB 的檔案來找他們要的內容。但檔案會不斷膨脹,直到耗盡記憶體、伺服器崩潰。1MB 的檔案會解壓成 1GB,這已足以讓多數機器人失敗。不過對於那些死纏爛打的腳本,我就給它 10MB 的檔案,解壓後會變成 10GB,立刻把腳本搞掛。 dd if=/dev/zero bs=1G count=10 | gzip -c > 10GB.gz dd:用於複製或轉換資料的指令。 if:輸入檔案,這裡指定 /dev/zero,它會產生無限的零位元組串流。 bs:區塊大小,設為 1GB(1G),代表 dd 會以 1GB 為單位讀寫。 count=10:代表處理 10 個區塊、每個 1GB,因此會產生 10GB 的零資料。 middleware if (ipIsBlackListed() || isMalicious()) { header("Content-Encoding: gzip"); header("Content-Length: ". filesize(ZIP_BOMB_FILE_10G)); // 10 MB readfile(ZIP_BOMB_FILE_10G); exit; }
人人都需要一個 HTTP proxy 來 debug Charles Burp Suite mitmproxy
為什麼大寫字母的 QR Code 會比小寫字母的更小? 如果你想讓包含 URL 的二維碼擁有盡可能小的實體尺寸,請確保文字全部大寫。