Rất hay, bạn đã đi sâu đến mức kiểm tra trạng thái TCP connection trên NFS server (A) — điều này cực kỳ hữu ích để khoanh vùng lỗi kết nối khi mount NFS.
| Server | Mô tả khi kết nối đến NFS server (A) | Trạng thái TCP ở phía A |
|---|---|---|
| B | Mount NFS thành công | ESTABLISHED ✅ |
| C | Mount NFS thất bại | SYN_RECV ❗ |
ESTABLISHED(trường hợp B): kết nối TCP đã được thiết lập thành công 3-way handshake (SYN → SYN-ACK → ACK) → giao tiếp bình thường.SYN_RECV(trường hợp C): server (A) đã nhận gói SYN từ client (C), gửi lại SYN-ACK, nhưng client không trả ACK lại → handshake không hoàn tất.
→ Đây là dấu hiệu rõ ràng lỗi mạng hoặc firewall trên đường về từ A → C, hoặc bị chặn chiều về.
- Client gửi SYN nhưng chặn phản hồi → TCP không thiết lập được kết nối.
- Có thể là
ufw,iptables, hoặc nhóm bảo mật (security group nếu dùng cloud).
✅ Kiểm tra từ server C:
sudo iptables -L -n
sudo ufw status- Switch, router, hoặc cloud VPC firewall chặn chiều A → C, dù chiều C → A đi được.
- Trường hợp này rất phổ biến trong cloud, ví dụ AWS/NCP/Google Cloud nếu security group hoặc subnet firewall không cho phép return traffic.
- Kiểm tra bảng định tuyến (
ip route) - Nếu có nhiều NIC hoặc subnet, có thể route default không đi qua interface có kết nối với A
- Nhưng nếu B vẫn mount được bình thường, khả năng này gần như loại trừ.
- Kiểm tra firewall:
sudo ufw status
sudo iptables -L -n- Kiểm tra có nhận được gói từ A không:
sudo tcpdump -i any host <nfs-server-ip> and port 2049Nếu bạn thấy
SYNgửi đi nhưng không có phản hồi → khả năng bị chặn chiều về.
- Kiểm tra route:
ip route- Kiểm tra nếu có nhiều NIC:
ip addr- Dùng
sshoặcnetstatđể quan sát:
ss -tn src :2049 | grep <ip-c>→ Nếu thấy SYN-RECV liên tục → xác nhận handshake không xong.
- Kiểm tra log:
journalctl -u nfs-server -e| Tình trạng | Giải nghĩa |
|---|---|
SYN-RECV (mãi không thành ESTABLISHED) |
Client gửi SYN, server gửi SYN-ACK, nhưng client không nhận được hoặc drop |
| → 99% lỗi nằm ở chiều về từ server A đến client C (mạng hoặc firewall) |
Nếu bạn cần giúp phân tích cấu hình firewall hoặc muốn test chiều A → C, mình có thể hướng dẫn dùng ncat, tcpdump, hoặc traceroute để bắt và xác nhận luồng mạng nhé!