คำสั่ง Linux ที่ใช้กันมานานอย่าง ifconfig, netstat และ route กำลังถูกแทนที่ด้วยคำสั่งใหม่จากแพ็กเกจ iproute2 ที่มีความสามารถมากกว่า Linux Distribution รุ่นใหม่หลายตัวเริ่มไม่รวมคำสั่งเก่าเหล่านี้มาให้แล้ว ผู้ดูแลระบบจึงควรเรียนรู้คำสั่งใหม่ตั้งแต่ตอนนี้
ทำไมคำสั่งเก่าถึงถูกเลิกใช้
คำสั่งเครือข่ายรุ่นเก่าส่วนใหญ่อยู่ในแพ็กเกจ net-tools ซึ่งพัฒนาขึ้นตั้งแต่ยุคแรก ๆ ของ Linux โค้ดเบื้องหลังเริ่มเก่าและไม่รองรับฟีเจอร์เครือข่ายสมัยใหม่ได้ดี เช่น Network Namespace, Policy-Based Routing และ IPv6 ที่ซับซ้อน
แพ็กเกจ iproute2 ถูกพัฒนาขึ้นมาแทนที่ด้วยคำสั่งที่รวมศูนย์มากขึ้น มีรูปแบบสม่ำเสมอ และรองรับเทคโนโลยีเครือข่ายใหม่ ๆ ได้ครบถ้วน สำหรับผู้ที่ดูแลเซิร์ฟเวอร์ VPS หรือเซิร์ฟเวอร์ในองค์กร การเรียนรู้คำสั่งใหม่เป็นสิ่งจำเป็น
ifconfig ถูกแทนที่ด้วย ip addr และ ip link
ifconfig เป็นคำสั่งที่ใช้ตรวจสอบและตั้งค่า Network Interface มาอย่างยาวนาน ปัจจุบันถูกแทนที่ด้วยคำสั่ง ip ที่มีความสามารถมากกว่า
ดูข้อมูล Interface ทั้งหมด:
# คำสั่งเก่า
ifconfig
# คำสั่งใหม่
ip addr show
เปิดหรือปิด Interface:
# คำสั่งเก่า
ifconfig eth0 up
ifconfig eth0 down
# คำสั่งใหม่
sudo ip link set eth0 up
sudo ip link set eth0 down
กำหนด IP Address:
# คำสั่งเก่า
ifconfig eth0 192.168.1.10 netmask 255.255.255.0
# คำสั่งใหม่
sudo ip addr add 192.168.1.10/24 dev eth0
ข้อดีของ ip คือรองรับ Network Namespace ทำให้จัดการเครือข่ายแบบแยกส่วนได้
netstat ถูกแทนที่ด้วย ss
netstat เป็นคำสั่งยอดนิยมสำหรับตรวจสอบการเชื่อมต่อเครือข่ายและพอร์ตที่เปิดอยู่ คำสั่ง ss (Socket Statistics) ถูกพัฒนาขึ้นมาแทนที่ มีความเร็วในการแสดงผลที่เหนือกว่าอย่างชัดเจน
ดู port ที่เปิด listen อยู่:
# คำสั่งเก่า
netstat -tulnp
# คำสั่งใหม่
ss -tulnp
ดูเฉพาะ TCP connection ที่ established:
# คำสั่งเก่า
netstat -tan | grep ESTABLISHED
# คำสั่งใหม่
ss -tan state established
นับจำนวน connection ตาม state:
ss -s
ss ดึงข้อมูลจาก Kernel โดยตรง ทำให้เร็วกว่า netstat ที่ต้องอ่านจากไฟล์ใน /proc เป็นเครื่องมือสำคัญสำหรับการตรวจสอบความปลอดภัยของเซิร์ฟเวอร์
route ถูกแทนที่ด้วย ip route
คำสั่ง route สำหรับจัดการตาราง Routing ถูกแทนที่ด้วย ip route ที่มีความยืดหยุ่นสูงกว่ามาก
ดูตาราง routing:
# คำสั่งเก่า
route -n
# คำสั่งใหม่
ip route show
เพิ่ม route:
# คำสั่งเก่า
route add -net 10.0.0.0/8 gw 192.168.1.1
# คำสั่งใหม่
sudo ip route add 10.0.0.0/8 via 192.168.1.1
เพิ่ม default gateway:
# คำสั่งเก่า
route add default gw 192.168.1.1
# คำสั่งใหม่
sudo ip route add default via 192.168.1.1
ip route ยังรองรับ Policy-Based Routing ที่กำหนดเส้นทางต่างกันตามเงื่อนไขต่าง ๆ ได้
arp ถูกแทนที่ด้วย ip neigh
คำสั่ง arp สำหรับดูตาราง ARP ถูกแทนที่ด้วย ip neigh
# คำสั่งเก่า
arp -a
# คำสั่งใหม่
ip neigh show
เพิ่ม Static ARP:
# คำสั่งเก่า
arp -s 192.168.1.50 00:11:22:33:44:55
# คำสั่งใหม่
sudo ip neigh add 192.168.1.50 lladdr 00:11:22:33:44:55 dev eth0
คำสั่งอื่น ๆ ที่กำลังเปลี่ยนแปลง
นอกจากคำสั่งเครือข่ายแล้ว iptables กำลังถูกแทนที่ด้วย nftables:
# iptables (เก่า)
sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT
# nftables (ใหม่)
sudo nft add rule inet filter input tcp dport 80 accept
สำหรับองค์กรที่ใช้ Tunnel เชื่อมต่อระหว่างสำนักงานกับดาต้าเซ็นเตอร์ Colocation การเข้าใจคำสั่ง ip tunnel จะช่วยจัดการเครือข่ายได้อย่างมีประสิทธิภาพ
เคล็ดลับการเปลี่ยนผ่าน
แนะนำให้เริ่มจากการใช้คำสั่งใหม่ควบคู่กับคำสั่งเก่า เพื่อเปรียบเทียบผลลัพธ์ นอกจากนี้ควรอัปเดต Script อัตโนมัติที่ใช้คำสั่งเก่าให้ใช้คำสั่งใหม่แทน เพราะใน Linux Distribution รุ่นใหม่คำสั่งเก่าอาจไม่ถูกติดตั้งมาให้แล้ว
ติดตั้งคำสั่งเก่ากลับมาใช้ชั่วคราว (ถ้าจำเป็น):
# Debian/Ubuntu
sudo apt install net-tools
# RHEL/CentOS/Fedora
sudo dnf install net-tools
สำหรับผู้ดูแลเซิร์ฟเวอร์ Dedicated การอัปเดตความรู้จะช่วยให้ทำงานได้ราบรื่นเมื่อต้องอัปเกรดระบบปฏิบัติการ
คำถามที่พบบ่อย
คำสั่งเก่ายังใช้ได้อยู่หรือไม่
ยังใช้ได้ในบาง Distribution แต่ต้องติดตั้งแพ็กเกจ net-tools เพิ่มเติม อย่างไรก็ตาม Distribution รุ่นใหม่หลายตัวไม่รวม net-tools มาให้แล้ว แนะนำให้เปลี่ยนมาใช้คำสั่งใหม่
ip command เรียนรู้ยากหรือไม่
ไม่ยาก เพราะคำสั่ง ip มีรูปแบบที่สม่ำเสมอ เช่น ip addr, ip route, ip link, ip neigh เมื่อเข้าใจโครงสร้างแล้วจะใช้งานได้คล่องกว่าคำสั่งเก่าที่แต่ละตัวมี Syntax ต่างกัน
ควรเปลี่ยนมาใช้ nftables แทน iptables เลยหรือไม่
หากใช้ Distribution ที่รองรับ nftables อยู่แล้ว แนะนำให้เปลี่ยน เพราะ nftables มีประสิทธิภาพดีกว่าและจะเป็นมาตรฐานในอนาคต แต่ถ้ายังใช้ Script ที่เขียนด้วย iptables อยู่มาก อาจค่อย ๆ เปลี่ยนทีละส่วน
คำสั่งใหม่ทำงานเร็วกว่าคำสั่งเก่าจริงหรือไม่
ใช่ โดยเฉพาะ ss ที่เร็วกว่า netstat อย่างชัดเจนเพราะดึงข้อมูลจาก Kernel โดยตรง ส่วนคำสั่ง ip ก็มีประสิทธิภาพดีกว่า ifconfig เพราะใช้ Netlink Interface ที่ทันสมัยกว่า
อัปเกรดความรู้ Linux กับ DriteStudio
การเปลี่ยนแปลงของคำสั่ง Linux เป็นส่วนหนึ่งของวิวัฒนาการที่ทำให้ระบบมีประสิทธิภาพดีขึ้น หากต้องการ Hosting หรือ VPS ที่ใช้ Linux รุ่นใหม่และดูแลโดยทีมผู้เชี่ยวชาญ DriteStudio พร้อมให้บริการ ติดต่อทีมงานเพื่อรับคำปรึกษา
