EST. 2026 — บันทึกงานเซิร์ฟเวอร์จริง SYSADMIN · SECURITY · AI · DIRECTADMIN เล่มที่ 01
THE SYSADMIN ALMANAC
หน้าหลัก / แท็ก / Linux
Linux

#Linux

20 บทความ
OS / Distro
VM เห็นอุปกรณ์แต่ไม่มีเน็ต เพราะ Windows ไม่มีไดรเวอร์ CDC ECM
Hardware

VM เห็นอุปกรณ์แต่ไม่มีเน็ต เพราะ Windows ไม่มีไดรเวอร์ CDC ECM

ส่ง USB LTE dongle เข้า VM วินโดวส์แล้วเครื่องเห็นอุปกรณ์ แต่ไม่มีการ์ดเน็ตโผล่มา สาเหตุไม่ได้อยู่ที่ซิมหรือที่การส่งผ่านพอร์ต แต่อยู่ที่ dongle เปิดหน้าตาแบบ CDC ECM ซึ่งวินโดวส์ไม่มีไดรเวอร์ติดมาให้ พร้อมกับดักโหมดสตอเรจและ dhclient ที่ทับ resolv.conf ของโฮสต์

#proxmox#hardware#windows#linux
อ่าน 9 นาที·21 ต.ค.
ระบบเฝ้าระวังที่ยิงถี่เกิน จนล้มอุปกรณ์ทั้งฟาร์มเอง
Linux

ระบบเฝ้าระวังที่ยิงถี่เกิน จนล้มอุปกรณ์ทั้งฟาร์มเอง

ลูปเฝ้าระวังทุก 30 วินาทีที่สั่งกู้อุปกรณ์ทุกตัวที่ ping ไม่ผ่าน ฟังดูเหมือนของดี จนวันที่อุปกรณ์ตัวเดียวค้างแล้วโดนกระแทกซ้ำจนล้มทั้งบัส บทความนี้ไล่ตั้งแต่ตัดสมมติฐานฮาร์ดแวร์ ทำตัวจับว่าใครแตะอุปกรณ์บ้าง ไปจนถึงค่าที่แก้แล้วหาย

#monitoring#linux#python#systemd
อ่าน 10 นาที·17 ต.ค.
ไฟร์วอลล์ขาออกทำระบบเช็คชื่อโดเมนพัง — root ทดสอบแล้วผ่าน
Security

ไฟร์วอลล์ขาออกทำระบบเช็คชื่อโดเมนพัง — root ทดสอบแล้วผ่าน

หน้าสั่งซื้อโดเมนขึ้นว่าไม่ว่างทุกชื่อ แม้แต่ชื่อที่มั่วขึ้นมาเอง ต้นเหตุคือนโยบายขาออกเป็น DROP แล้วลิสต์พอร์ตที่อนุญาตไม่มีพอร์ต 43 หลังย้ายระบบปฏิบัติการ กับดักคือทดสอบด้วย root แล้วผ่านทุกครั้ง ต้องทดสอบในนามผู้ใช้ที่รันแอปจริงเท่านั้น

#firewall#csf#security#networking
อ่าน 9 นาที·10 ต.ค.
เว็บกับคิวคนละผู้ใช้ — mkdir 0700 ฆ่า default ACL ทิ้งทั้งโฟลเดอร์
Linux

เว็บกับคิวคนละผู้ใช้ — mkdir 0700 ฆ่า default ACL ทิ้งทั้งโฟลเดอร์

แอปตัวเดียวแต่รันด้วยสองผู้ใช้ ฝั่งเว็บเป็น php-fpm ฝั่งคิวเป็นอีกบัญชีหนึ่ง ตั้ง default ACL ไว้ครบแล้วยังเขียนข้ามกันไม่ได้ ต้นเหตุคือ mkdir โหมด 0700 ที่ไปตั้ง mask ทับจนสิทธิ์ ACL หายเกลี้ยง พร้อมกับดักเรื่องลบไฟล์ที่ต้องมีสิทธิ์ที่โฟลเดอร์ ไม่ใช่ที่ไฟล์

#linux#permissions#posix-acl#php-fpm
อ่าน 9 นาที·9 ต.ค.
บริการยังรันอยู่ แต่ตายไปแล้ว — systemd restart ช่วยไม่ได้
Linux

บริการยังรันอยู่ แต่ตายไปแล้ว — systemd restart ช่วยไม่ได้

เน็ตหลุดยาว DNS ใช้ไม่ได้ เดมอนที่ถือ session กับ API ภายนอกวนล็อกอินไม่สำเร็จ 194 รอบ แล้วค้างกลางขั้นตอน ไม่ exit ระบบเลยไม่ restart ให้ — ว่าด้วยการเลิกวัดว่า process ยังอยู่ไหม แล้วหันมาวัดความสดของข้อมูลแทน

#systemd#linux#monitoring#alerting
อ่าน 9 นาที·9 ต.ค.
แยกลิงก์พังออกจาก ISP ล่ม ก่อนสั่งรีสตาร์ตอะไรบนเครื่อง
Linux

แยกลิงก์พังออกจาก ISP ล่ม ก่อนสั่งรีสตาร์ตอะไรบนเครื่อง

watchdog ที่เขียนกันทั่วไปคือ ping ไม่ผ่านแล้ว restart NetworkManager ซึ่งผิดครึ่งหนึ่งของเวลา เพราะเน็ตไม่ออกอาจแปลว่า ISP ล่ม ไม่ใช่การ์ดพัง บทความนี้แยกสามสถานะออกจากกันด้วย nmcli แล้วไต่บันไดจากเบาไปหนักถึงขั้น PCI remove และ rescan โดยไม่รีบูตเครื่อง

#linux#networking#systemd#debian
อ่าน 9 นาที·20 ก.ย.
อ่าน uptime อุปกรณ์ที่ไม่มี SNMP/SSH/API ด้วย TCP timestamp
Network

อ่าน uptime อุปกรณ์ที่ไม่มี SNMP/SSH/API ด้วย TCP timestamp

กล้อง IP เครื่องคุมประตู และอุปกรณ์ฝังตัวจำนวนมากไม่มีทั้ง SNMP SSH และ API ให้ถาม uptime แต่ถ้ามันตอบ TCP timestamp มาด้วย เราอ่านเวลาบูตของมันได้จากนอกบ้านโดยไม่ต้อง login เลยสักครั้ง

#networking#monitoring#linux#python
อ่าน 7 นาที·20 ส.ค.
crontab ของ user เว็บ ไม่ใช่ crontab ที่ cron รันจริง
Linux

crontab ของ user เว็บ ไม่ใช่ crontab ที่ cron รันจริง

แก้ตารางเวลาผ่านหน้าเว็บแล้วงานยังยิงตามเวลาเก่า เพราะสคริปต์เขียน crontab ของ user ที่เว็บรันอยู่ ไม่ใช่ของ user ที่ cron อ่านจริง วิธีตรวจให้เจอใน 3 คำสั่ง sudoers drop-in ที่ใช้ และวิธีออกแบบไม่ให้มันหลุดอีก

#cron#linux#sysadmin#debugging
อ่าน 7 นาที·19 ส.ค.
query เดียวค้าง 54 นาที ทำเว็บล่ม 504 ทั้งเว็บ เพราะ MyISAM lock
Linux

query เดียวค้าง 54 นาที ทำเว็บล่ม 504 ทั้งเว็บ เพราะ MyISAM lock

ตารางเดียวขนาด 30 MB ทำให้เว็บทั้งระบบขึ้น 504 ทุกหน้า ทั้งที่ RAM ยังว่าง 9.5 GB — ไล่จาก information_schema.PROCESSLIST จนเจอ SELECT ตัวเดียวที่ค้าง 54 นาทีบนตาราง MyISAM แล้วลามเป็น metadata lock ทั้งเซิร์ฟเวอร์ พร้อมวิธีแก้เฉพาะหน้าและวิธีกันไม่ให้เกิดซ้ำ

#mariadb#mysql#myisam#innodb
อ่าน 10 นาที·6 ส.ค.
nginx โดน heap overflow ย้อนหลัง 15 ปี — แต่เช็คแค่เวอร์ชันไม่พอ
Security

nginx โดน heap overflow ย้อนหลัง 15 ปี — แต่เช็คแค่เวอร์ชันไม่พอ

CVE-2026-42533 กินเวอร์ชัน nginx ตั้งแต่ 0.9.6 ถึง 1.31.2 คือย้อนหลัง 15 ปี แต่จะโดนจริงหรือไม่อยู่ที่ config ไม่ใช่เวอร์ชัน ปัญหาคือเงื่อนไขที่ข่าวสรุปกันแคบกว่าของจริง เช็คตามข่าวแล้วจะได้ผลว่า "ปลอดภัย" ทั้งที่ยังเข้าเงื่อนไขอยู่

#security#nginx#cve#vulnerability
อ่าน 9 นาที·16 ก.ค.
เขียนสคริปต์บน Windows ไปรันบน Linux — สองกับดักที่ทำไฟล์ค้างเซิร์ฟเวอร์
Linux

เขียนสคริปต์บน Windows ไปรันบน Linux — สองกับดักที่ทำไฟล์ค้างเซิร์ฟเวอร์

เขียน helper script บน Windows แล้ว scp ขึ้นไปรันบน Linux เป็นงานประจำ แต่มีสองอย่างที่กัดซ้ำ ๆ — path แบบ d:\ ที่ฝังในสคริปต์กลายเป็นชื่อไฟล์ประหลาดใน /tmp จนโดน file monitor จับ และไฟล์ token/payload ที่ลืมลบทิ้งไว้บนเซิร์ฟเวอร์ บทความนี้สรุปกฎกันพลาด

#automation#windows#linux#sysadmin
อ่าน 6 นาที·16 ก.ค.
ส่ง USB เข้า WSL2 ด้วย usbipd-win — ให้ Linux บน Windows จับฮาร์ดแวร์จริง
Linux

ส่ง USB เข้า WSL2 ด้วย usbipd-win — ให้ Linux บน Windows จับฮาร์ดแวร์จริง

WSL2 มองไม่เห็นอุปกรณ์ USB เพราะเป็น VM ที่ไม่มี USB controller — usbipd-win ส่งอุปกรณ์จาก Windows ข้ามไปให้ kernel ของ WSL ตรงๆ ด้วย 3 คำสั่ง list/bind/attach พร้อมข้อควรรู้จากงานจริง: attach หลุดตอนถอดสาย, กับดัก CRLF และ USB modem แย่ง default route

#usbip#wsl2#windows#linux
อ่าน 7 นาที·11 ก.ค.
libmodsecurity3 + nginx — exclusion ที่ใช้ได้จริงมีแบบเดียว: ctl:ruleEngine
Security

libmodsecurity3 + nginx — exclusion ที่ใช้ได้จริงมีแบบเดียว: ctl:ruleEngine

ModSecurity v3 (libmodsecurity3) + nginx + OWASP CRS — ctl:ruleRemoveById ที่ตำราสอนกันไม่ทำงานและเงียบสนิท บทความนี้สรุปจากการลองครบทุกท่า: ของที่ใช้ได้จริงคือ ctl:ruleEngine จำกัดขอบเขตด้วย chained rule Host+URI และไฟล์ exclusion ต้องโหลดก่อน CRS

#modsecurity#nginx#security#firewall
อ่าน 9 นาที·10 ก.ค.
Redis แยกต่อ user บน shared hosting — และบั๊ก maxmemory ที่ทำเว็บค้าง
Linux

Redis แยกต่อ user บน shared hosting — และบั๊ก maxmemory ที่ทำเว็บค้าง

ออกแบบ Redis หนึ่ง instance ต่อหนึ่ง user บน shared hosting ด้วย systemd template + cgroup — และบทเรียนบั๊ก maxmemory ที่ตั้งเกินเพดาน cgroup แล้วทำเว็บ WooCommerce ค้างเป็นพักๆ พร้อมกฎ 80% และ guard script กันเกิดซ้ำ

#redis#cache#systemd#cgroup
อ่าน 10 นาที·9 ก.ค.
WordPress ขึ้น 500 บางหน้า แต่ debug.log ว่าง — fatal จริงอยู่ที่ apache log
DirectAdmin

WordPress ขึ้น 500 บางหน้า แต่ debug.log ว่าง — fatal จริงอยู่ที่ apache log

WordPress ขึ้น 500 เฉพาะหน้า portfolio แต่ debug.log ว่างเปล่า — เพราะ fatal ที่เกิดตอน theme render เกิดก่อน WP logging พร้อม ต้องไปหาความจริงที่ apache error log (proxy_fcgi) พร้อมวิธีแก้ child theme ที่ก๊อป template ค้างจาก parent รุ่นเก่า

#wordpress#php-fpm#debugging#logging
อ่าน 8 นาที·8 ก.ค.
AdSense บอก ads.txt "ไม่พบ" ทั้งที่ไฟล์อยู่ — ไล่ log พิสูจน์ทีละชั้น
Network

AdSense บอก ads.txt "ไม่พบ" ทั้งที่ไฟล์อยู่ — ไล่ log พิสูจน์ทีละชั้น

หน้า Sites ของ AdSense ขึ้น ads.txt "ไม่พบ" ทั้งที่ไฟล์อยู่ครบถูกต้อง — บทความ forensics ไล่พิสูจน์ทีละชั้นด้วย curl + access log ว่า Googlebot เคยมาแล้วได้อะไรกลับไป สรุปคดี: ไม่มีใครบล็อค มันคือสถานะค้างของ Google เอง

#adsense#nginx#cloudflare#logging
อ่าน 9 นาที·8 ก.ค.
กู้รูปเว็บเก่าที่หายไป ด้วย Wayback Machine CDX API + Python
Backup

กู้รูปเว็บเก่าที่หายไป ด้วย Wayback Machine CDX API + Python

เว็บเก่าอายุสิบกว่าปีรูปแตกทั้งเว็บเพราะ hotlink จาก CDN ที่ตายแล้ว — เขียนสคริปต์ Python ดึงรายการรูปจาก Wayback Machine CDX API แล้วกู้กลับมาวางที่ path เดิมโดยไม่แตะ HTML สักตัวอักษร พร้อมสคริปต์เต็มที่ใช้จริง

#wayback#python#backup#disaster-recovery
อ่าน 9 นาที·7 ก.ค.
แอปเก่าพังหลังย้ายเซิร์ฟเวอร์ — error 1364/1366 กับ MariaDB strict mode
Linux

แอปเก่าพังหลังย้ายเซิร์ฟเวอร์ — error 1364/1366 กับ MariaDB strict mode

ย้ายเว็บจากเซิร์ฟเวอร์เก่ามาเครื่องใหม่แล้วฟอร์มสมัครสมาชิกพังทั้งที่โค้ดไม่เปลี่ยน — ต้นเหตุคือ STRICT_TRANS_TABLES ใน sql_mode ของ MariaDB รุ่นใหม่ พร้อมวิธีแก้ 3 ระดับ ตั้งแต่ conf.d จนถึง SET SESSION รายแอป

#mariadb#mysql#migration#server-migration
อ่าน 7 นาที·7 ก.ค.
โดเมน .com โดนยึด — ย้ายทั้งเว็บไป .net บน DirectAdmin แบบข้อมูลไม่หาย
DirectAdmin

โดเมน .com โดนยึด — ย้ายทั้งเว็บไป .net บน DirectAdmin แบบข้อมูลไม่หาย

โดเมน .com หมดอายุหลุดไปอยู่กับ domain squatter — เล่าวิธีย้ายทั้งเว็บ (ไฟล์/เมล/DNS/SSL) ไปโดเมน .net ใหม่บน DirectAdmin ด้วย CMD_CHANGE_DOMAIN คำสั่งเดียว พร้อมงานหลังบ้าน 4 อย่างที่ไม่ตามมาอัตโนมัติ

#directadmin#dns#ssl#letsencrypt
อ่าน 9 นาที·6 ก.ค.
ใช้ Claude ตัดวิดีโอด้วยการพิมพ์สั่งเป็นภาษาไทย ไม่ต้องเปิดโปรแกรมตัดต่อ
AI

ใช้ Claude ตัดวิดีโอด้วยการพิมพ์สั่งเป็นภาษาไทย ไม่ต้องเปิดโปรแกรมตัดต่อ

วิธีที่ผมใช้จริง เอา Claude ใน VS Code มาสั่งตัด ย่อ รวม ใส่เพลงประกอบวิดีโอด้วยการพิมพ์ภาษาไทย ไม่ต้องจำคำสั่ง ffmpeg ไม่ต้องเปิดโปรแกรมตัดต่อ พร้อมวิธีให้ AI แต่งเพลงเอง เร่งด้วยการ์ดจอ NVIDIA และฝั่ง Mac กับ Linux สำหรับคนไม่เคยใช้ Claude มาก่อน

#claude-code#ffmpeg#video-editing#vscode
อ่าน 11 นาที·19 มิ.ย.