Có 2 máy tính A, B. Máy A cài FTP server, máy B dùng chương trình ftp.exe của lấy Windows để download/upload file ở máy A
Máy B vì dùng ftp.exe nên sẽ kết nối với máy A theo mode PORT (không dùng mode PASSIVE được)
Cụ thể phương thức kết nối như sau:
- B kết nối đến cổng 21 của A
- Sau khi chứng thực thành công, B yêu cầu lấy 1 file từ A và B mở 1 port mới (lúc này B đóng vai trò server) và A kết nối vào port này của B đề truyền file.
Đây là nguyên tắc hoạt động của FTP ở mode PORT
Tuy nhiên thực tế A, B là 2 máy ở 2 vùng mạng khác nhau và do những lý do bảo mật riêng, khi B kết nối đến A thì B phải NAT thành B' (A chỉ chấp nhận kết nối từ B' và cũng chỉ nối được đến B', không giao tiếp được với B)
Và vấn đề phát sinh ra từ đây:
- Khi B nối đến 21 của A thì B được NAT thành B' và A chấp nhận kết nôi
- Khi B mở 1 port để A kết nối ngược lại truyền file, trong bản tin TCP/IP mà B gửi thông báo cho A về IP, Port phải kết nối đến, B lại thông báo địa chỉ thật B chứ không phải B'. Và như vậy A không thể kết nối lại được đến B (vì chỉ nối được đến B')
Vấn đề do những lý do riêng, B phải bắt buộc phải dùng ftp.exe chế độ PORT và khi báo cho A nó chỉ báo được địa chỉ thật
Vấn đề này chắc nhiều bạn Admin network đã gặp phải. Xin các bạn biết chỉ giúp, tôi xin cảm ơn nhiều
Máy B vì dùng ftp.exe nên sẽ kết nối với máy A theo mode PORT (không dùng mode PASSIVE được)
Cụ thể phương thức kết nối như sau:
- B kết nối đến cổng 21 của A
- Sau khi chứng thực thành công, B yêu cầu lấy 1 file từ A và B mở 1 port mới (lúc này B đóng vai trò server) và A kết nối vào port này của B đề truyền file.
Đây là nguyên tắc hoạt động của FTP ở mode PORT
Tuy nhiên thực tế A, B là 2 máy ở 2 vùng mạng khác nhau và do những lý do bảo mật riêng, khi B kết nối đến A thì B phải NAT thành B' (A chỉ chấp nhận kết nối từ B' và cũng chỉ nối được đến B', không giao tiếp được với B)
Và vấn đề phát sinh ra từ đây:
- Khi B nối đến 21 của A thì B được NAT thành B' và A chấp nhận kết nôi
- Khi B mở 1 port để A kết nối ngược lại truyền file, trong bản tin TCP/IP mà B gửi thông báo cho A về IP, Port phải kết nối đến, B lại thông báo địa chỉ thật B chứ không phải B'. Và như vậy A không thể kết nối lại được đến B (vì chỉ nối được đến B')
Vấn đề do những lý do riêng, B phải bắt buộc phải dùng ftp.exe chế độ PORT và khi báo cho A nó chỉ báo được địa chỉ thật
Vấn đề này chắc nhiều bạn Admin network đã gặp phải. Xin các bạn biết chỉ giúp, tôi xin cảm ơn nhiều