Bài 11: Network cơ bản và DNS
Bài này giúp anh debug kết nối mạng theo lớp: IP, route, DNS, port, HTTP response.
- Kiểm tra IP, route, DNS.
- Phân biệt lỗi DNS, firewall, service và application.
- Dùng
ping,curl,dig,traceroute.
Chốt ý nhanh
| Chủ đề | Điểm cần nhớ |
|---|---|
| Debug network | Đi theo lớp: DNS → IP → route → port → service → application. |
| DNS | Lỗi domain không phải lúc nào cũng là lỗi web server. |
| HTTP test | curl, dig, ss, nc là bộ công cụ nền tảng. |
1. Tư duy debug network
Khi website không vào được, đừng kết luận ngay. Hãy đi theo lớp: DNS → IP route → port/firewall → service → application.
2. Lệnh kiểm tra IP và route
ip addr ip route ping -c 4 8.8.8.8 ping -c 4 google.com
Nếu ping IP được nhưng domain không được, nghi DNS. Nếu cả IP không được, nghi network/route/firewall.
3. Kiểm tra DNS
dig example.com nslookup example.com dig +short example.com
dig +short giúp xem nhanh domain trỏ về IP nào.
4. Kiểm tra HTTP/HTTPS
curl -I http://example.com curl -I https://example.com curl -v https://example.com
-I lấy header. -v xem chi tiết kết nối, TLS, response.
5. Tình huống thực tế
dig +short domain để xác nhận IP, sau đó kiểm tra DNS record tại provider.6. Debug port
ss -tulpn nc -vz example.com 443 curl -I --connect-timeout 5 https://example.com
nc -vz kiểm tra port có mở từ client không.
7. Checklist network troubleshooting
- DNS resolve đúng IP chưa?
- Server có route ra ngoài không?
- Service có listen đúng port không?
- Firewall/security group có mở không?
- HTTP response là 200/301/403/404/500?
8. Lỗi thường gặp
- Nhầm lỗi DNS với lỗi web server.
- Quên cache DNS/TTL.
- Chỉ test từ server, không test từ ngoài Internet.
9. Bài tập
- Chạy
digvới 3 domain. - Dùng
curl -Ixem status code. - Viết quy trình debug website không truy cập được.
Phần thực hành mở rộng: troubleshooting network có trình tự
Khi website không vào được, người mới rất hay nhảy cóc tới kết luận sai. Bài này cần tạo thói quen debug theo lớp, vì đó là cách tiết kiệm thời gian nhất trong thực tế.
Lab 1: Phân biệt lỗi mạng và lỗi DNS
ping -c 4 8.8.8.8
ping -c 4 google.com
ip addr
ip route
Nếu ping IP được mà ping domain không được, khả năng cao là DNS. Nếu cả hai đều không ổn, cần xem route hoặc connectivity cơ bản.
Lab 2: Dùng dig để đọc record rõ ràng
dig example.com
dig +short example.com
dig NS example.com
dig MX example.com
Lab này giúp người học phân biệt A record, NS, MX và biết domain đang trỏ đi đâu thật.
Lab 3: Đọc HTTP response thay vì chỉ “mở trình duyệt thấy lỗi”
curl -I http://example.com
curl -I https://example.com
curl -v https://example.com
Hãy tập nhìn:
- HTTP status code
- redirect đi đâu
- TLS handshake có vấn đề gì không
- server header và response time
Lab 4: Kiểm tra port theo hướng client
nc -vz example.com 80
nc -vz example.com 443
curl -I --connect-timeout 5 https://example.com
Mục tiêu là hiểu “service up trên server” chưa chắc đồng nghĩa “client ngoài Internet truy cập được”.
Tình huống thực tế
Một domain mới trỏ DNS nhưng vẫn vào site cũ vì TTL cache chưa hết. Nếu không hiểu DNS propagation, người vận hành rất dễ đổi cấu hình sai chỗ trong khi nguyên nhân thực chỉ là thời gian cache.
Lỗi phổ biến
- Nhầm lỗi DNS với lỗi Nginx/app.
- Chỉ test từ trong server, không test từ bên ngoài.
- Không nhìn status code và redirect chain.
- Không để ý TTL khi sửa record.
Kết bài
Sau bài này, anh nên có một khung debug network đủ chắc để không hoảng khi website “không vào được”. Chỉ cần đi đúng lớp, rất nhiều sự cố sẽ bớt mơ hồ ngay lập tức. Từ đây, anh có thể bước sang Nginx và reverse proxy với nền tảng mạng rõ ràng hơn nhiều.
