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 2049
Nếu bạn thấy
SYN
gử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
ss
hoặ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é!