Mục lục

Mạng & Debug Network

Xử lý sự cố kết nối, kiểm tra Port, DNS và làm chủ các công cụ mạng (Curl, Netstat, Dig).

Khi Server "mất mạng" hoặc App không truy cập được, đây là bộ công cụ giúp bạn bắt bệnh.

1. Kiểm tra IP và Info mạng

Trước khi fix, phải biết mình là ai.

  • ip a (hoặc ip addr): Xem địa chỉ IP của các card mạng.
    • Tìm eth0 hoặc ens33: Đây thường là IP LAN/Public của server.
    • Tìm lo (Loopback): Luôn là 127.0.0.1 (localhost).
  • curl ifconfig.me: Cách nhanh nhất để xem Public IP thực tế của server (IP mà thế giới nhìn thấy).

2. Kiểm tra Port (Cổng kết nối)

Bạn đã start Web Server (Port 80) nhưng bên ngoài không vào được? Hãy kiểm tra xem Port đó có thực sự đang mở không.

Lệnh netstat (Cần cài net-tools) hoặc ss (Có sẵn, hiện đại hơn).

bash:
# Liệt kê tẩt cả các port đang LẮNG NGHE (Listening)
# -t: TCP, -u: UDP, -l: Listening, -p: Show Process Name, -n: Numeric (hiện số thay vì tên dịch vụ)
sudo ss -tulpn

# Hoặc dùng netstat
sudo netstat -tulpn

Kết quả mẫu:

Code:
State   Local Address:Port   Process
LISTEN  0.0.0.0:80           nginx
LISTEN  127.0.0.1:3000       node
  • 0.0.0.0:80 -> Nginx đang mở port 80 cho toàn thế giới truy cập. (OK)
  • 127.0.0.1:3000 -> Nodejs chỉ mở port 3000 cho nội bộ (Localhost). Bên ngoài không vào được trực tiếp. Muốn vào phải qua Nginx Proxy.

3. Kiểm tra kết nối ra ngoài (Connectivity)

Ping: Kiểm tra server có thông tới đích không.

bash:
ping google.com
# Nếu thấy "bytes from...", mạng ngon.
# Nếu thấy "Destination Host Unreachable" hoặc đứng hình -> Mất mạng hoặc bị Firewall chặn ICMP.

Curl: Kiểm tra cụ thể Web/API có trả về dữ liệu không.

bash:
# -I: Chỉ lấy Header (nhanh gọn)
curl -I https://google.com
# Mong đợi: HTTP/2 200 OK

# -v: Verbose (Chi tiết quá trình handshake, debug SSL lỗi rất tốt)
curl -v https://api.my-domain.com

4. Debug DNS (Phân giải tên miền)

Khi ping google.com báo lỗi "Name or service not known", nghĩa là Server không dịch được tên miền ra IP -> Lỗi DNS.

Công cụ: dig hoặc nslookup.

bash:
# Cài đặt: sudo apt install dnsutils

# Kiểm tra xem google.com trỏ về IP nào
nslookup google.com

# Debug kỹ hơn với dig
dig google.com +short

Cách sửa lỗi DNS: Sửa file /etc/resolv.conf, thêm Google DNS:

bash:
nameserver 8.8.8.8
nameserver 8.8.4.4

5. Quy trình Debug chuẩn (Flow)

Khi Client báo: "Không vào được web của em ơi!"

  1. Tại Server:

    • Service có đang chạy không? (systemctl status nginx)
    • Port có đang mở không? (ss -tulpn)
    • Log có báo lỗi gì không? (tail -f /var/log/nginx/error.log)
  2. Tại Client (Máy tính cá nhân):

    • Ping thử IP server xem thông không?
    • Telnet thử port xem Firewall có chặn không? (telnet ip-server 80)
  3. Kiểm tra tầng giữa:

    • Firewall (UFW) trên server có open port chưa? (ufw status)
    • Security Group (nếu dùng AWS/GCP/DigitalOcean) đã mở port chưa?

Ghi nhớ: 90% lỗi kết nối đến từ Firewall hoặc Service chưa Start/Crash.

Quảng cáo
mdhorizontal