2015-02-18 25 views
14

Tôi đã chuyển sang máy ảo của máy tính của mình và muốn ftp tới một máy chủ khác từ đó. Nó hỏi tên người dùng và mật khẩu của tôi, tôi có thể đăng nhập mà không có vấn đề gì. nhưng khi tôi làm ls hoặc get, tôi nhận được lỗi này:Nhận "Tôi sẽ không mở kết nối" khi kết nối với máy chủ FTP từ Google Compute Engine

500 I won't open a connection to 10.240.XX.XX (only to XX.XX.XX.XX) 
ftp: bind: Address already in use 

Đó 10.240.XX.XX là địa chỉ IP nội bộ của tôi, tôi đã thấy trong ifconfig kết quả.

Làm cách nào để chuyển tệp từ máy chủ khác bằng FTP? Hệ thống: Debian7

Trả lời

38

Bạn đang sử dụng chế độ hoạt động của FTP để kết nối với máy chủ chạy Pure-FTPd. Ở chế độ hoạt động, máy chủ phải kết nối lại với máy khách để mở kết nối truyền dữ liệu (để truyền tệp hoặc danh sách thư mục). Để làm điều đó, máy khách gửi địa chỉ IP của nó đến máy chủ FTP trong lệnh PORT.

Nếu máy chủ FTP nằm ngoài mạng riêng GCE, rõ ràng là không thể kết nối lại với máy khách, vì máy nằm sau tường lửa và NAT.

Và thực tế Pure-FTPd kiểm tra rõ ràng địa chỉ IP trong lệnh PORT khớp với địa chỉ IP của khách hàng của kết nối điều khiển FTP. Nó sẽ không khớp, nếu khách hàng gửi địa chỉ IP nội bộ của nó trong mạng GCE. Nếu trường hợp này, máy chủ-ftpd tinh khiết từ chối việc chuyển giao hoàn toàn (không có thậm chí cố gắng để kết nối) với thông báo lỗi, bạn đang nhận được:

I won't open a connection to ... (only to ...)

(nơi ... đầu tiên là địa chỉ IP được cung cấp bởi khách hàng trong lệnh PORT [địa chỉ cục bộ trong mạng riêng GCE) và ... thứ hai là địa chỉ IP [NATed] bên ngoài của máy khách, như máy chủ đã biết).


Thậm chí nếu khách hàng báo cáo địa chỉ [NAT] bên ngoài trong lệnh PORT, nó vẫn sẽ không làm việc như những nỗ lực kết nối sẽ không nhận được quá khứ NAT và tường lửa.

Vì lý do này, chế độ FTP thụ động tồn tại, trong đó máy khách kết nối với máy chủ để mở kết nối truyền dữ liệu. Trên thực tế, không ai sử dụng chế độ hoạt động hiện nay.

Xem (bài viết của tôi) FTP connection modes để biết chi tiết về các chế độ.

Vì vậy, hãy chuyển sang chế độ thụ động. Làm thế nào điều này được thực hiện là khách hàng cụ thể.

  • Trong phổ biến nhất * nix ftp dòng lệnh khách hàng, sử dụng công tắc -p dòng lệnh, mặc dù chế độ thụ động được sử dụng bởi mặc định anyway:

    -p Use passive mode for data transfers. Allows use of ftp in environments where a firewall prevents connections from the outside world back to the client machine. Requires that the ftp server sup- port the PASV command. This is the default now for all clients (ftp and pftp) due to security concerns using the PORT transfer mode. The flag is kept for compatibility only and has no effect anymore.

  • Một số khách hàng còn hỗ trợ passive lệnh .

+0

Đây là vấn đề của tôi quá; rõ ràng, không phải tất cả các máy khách FTP Linux đều sử dụng chế độ thụ động theo mặc định. –

+3

chỉ để thêm, lệnh là 'ftp -p SERVER' – arun

+0

True. loại bỏ .. – Row1e

15

Enable FTP của bạn với chế độ thụ động, nếu bạn đã kết nối xin vui lòng gõ

ftp> passive 
Passive mode on. 

Bạn đang sử dụng FTP trong chế độ thụ động.

+0

Như một lưu ý - thụ động là một boolean sẽ chuyển đổi giữa chế độ thụ động và chế độ hoạt động trong ftp. Điều này có thể gây nhầm lẫn cho những người chưa chuyển đổi chế độ trước đây. –

+0

Cảm ơn bạn đã giải thích. Có, tất nhiên, nó chuyển đổi chế độ thụ động hoặc hoạt động. Hầu hết máy chủ FTP hiện đang sử dụng chế độ thụ động làm kết nối mặc định. – RizonBarns

+0

@RizonBarns Không có chế độ mặc định trong giao thức FTP. Và máy chủ không kiểm soát được chế độ này. Vì vậy, * "FTP Server sử dụng chế độ thụ động như kết nối mặc định" * chỉ là một điều vô nghĩa. Đó là máy khách FTP chọn chế độ trước mỗi lần chuyển. –

2

Nếu bạn sử dụng trình soạn PSPad và bạn có cùng một vấn đề, cố gắng thiết lập cấu hình này cho kết nối của bạn:

enter image description here

+1

* Cấu hình này là gì *? Hãy mô tả nó bằng lời nói, không chỉ bằng cách sử dụng một ảnh chụp màn hình. –

+0

Nó không chỉ là một ảnh chụp màn hình như bạn thấy, tôi đã viết rằng đây là cách để thiết lập kết nối của bạn để làm việc, tôi đã có vấn đề này và tôi không tìm thấy giải pháp ở bất cứ nơi nào, tôi tìm thấy nó ngày hôm nay bởi tôi và tôi muốn giúp đỡ người khác không phải để giảm thời gian của họ như tôi đã làm. – paulalexandru

+0

[Ảnh chụp màn hình có hữu ích trong câu trả lời không?] (Http://meta.stackoverflow.com/a/287829/850848) - * "Không có gì sai khi đăng ảnh chụp màn hình để cho người dùng biết cách hoạt động của một cái gì đó, ** miễn là Ảnh chụp màn hình đi kèm với thông tin văn bản giải thích điều tương tự trong các từ ** "* –

Các vấn đề liên quan