วิธีตรวจสอบ Service และ Port ที่ใช้งานอยู่บน Linux

วิธีง่ายๆ ในการตรวจสอบว่าพอร์ต ที่กำลังใช้งานบนอินเทอร์เฟซเครือข่ายของเซิร์ฟเวอร์ ว่ามีพอร์ตใหนบ้างที่เปิดอยู่ เพื่อตรวจสอบหรือ แก้ไขปัญหาแล้ว เรายังตรวจสอบได้ว่ามีการใช้งานพอร์ตโดยแอปพลิเคชันอื่นบนเซิร์ฟเวอร์ของเราอยู่หรือไม่ ตัวอย่างเช่นเราอาจติดตั้งเซิร์ฟเวอร์ Apache และ Nginx ในระบบเดียวกัน ดังนั้นจำเป็นต้องรู้ว่า Apache หรือ Nginx ใช้พอร์ต TCP # 80/443 ถูกต้องหรือไม่

มาดูวิธีเช็คกันง่ายๆ ในการใช้คำสั่ง netstat, nmap และ lsof เพื่อตรวจสอบพอร์ตที่ใช้งานและดูแอปพลิเคชันที่ใช้พอร์ตนั้นๆอยู่กันครับ

  1. Open a terminal application i.e. shell prompt.
  2. Run any one of the following command on Linux to see open ports:
sudo lsof -i -P -n | grep LISTEN 
sudo netstat -tulpn | grep LISTEN
sudo lsof -i:22 ## see a specific port such as 22 ##
sudo nmap -sTU -O IP-address-Here
  1. For the latest version of Linux use the ss command. For example, ss -tulw

Linux netstat syntax

Run netstat command along with grep command to filter out port in LISTEN

$ netstat -tulpn | grep LISTEN

The netstat command deprecated for some time on Linux. Therefore, you need to use the ss command as follows:

sudo ss -tulw
sudo ss -tulwn

โดยที่ option คำสั่ง ss มีคำอธิบายดังนี้:

  • -t : Show only TCP sockets on Linux
  • -u : Display only UDP sockets on Linux
  • -l : Show listening sockets. For example, TCP port 22 is opened by SSHD server.
  • -p : List process name that opened sockets
  • -n : Don’t resolve service names i.e. don’t use DNS

Leave a Reply

iameveme