Tại sao tôi bị đuổi khỏi phiên FTP khi tôi chạy lệnh?


12

Tại sao tôi bị đuổi khỏi phiên FTP khi tôi chạy lệnh? Có vẻ như một khi tôi đăng nhập thành công vào máy chủ sẽ nhận được thông tin sau khi chạy lệnh như "ls" (Tôi đã đính kèm phần lỗi trong thẻ "[ERROR]"):

allen92@allen92-VirtualBox:~/Videos$ ftp -n ftp.FreeBSD.org
Connected to ftp.FreeBSD.org.
220 beastie.tdk.net FTP server (Version 6.00LS) ready.
ftp> user
(username) anonymous
331 Guest login ok, send your email address as password.
Password: 
230 Guest login ok, access restrictions apply.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> ls
[ERROR]
421 Service not available, remote server has closed connection
[ERROR]
ftp> 

Điều này dường như xảy ra trên bất kỳ máy chủ FTP từ xa. Mọi thứ hoạt động tốt khi tôi đăng nhập vào máy cục bộ và chạy các lệnh FTP. Nếu trên thực tế, lỗi "421" là lỗi chung, có cách nào để tìm ra nguồn gốc của vấn đề không? Bất kỳ dẫn nào về điều này sẽ được đánh giá cao. Tôi đã không thể tìm thấy bất kỳ hỗ trợ về vấn đề cụ thể này. Bất cứ ai có vấn đề tương tự xin vui lòng chia sẻ suy nghĩ của bạn.

LƯU Ý: Tôi đã cài đặt VSFTPD .

Câu trả lời:


13

Rất có thể có một tường lửa NAT giữa bạn và các máy chủ hiển thị triệu chứng. (Tường lửa NAT ẩn toàn bộ mạng phía sau một số IP).

Vấn đề là ftp muốn gửi dữ liệu thu được từ các lệnh trong một, mới riêng biệt TCP kết nối / IP và rằng không thể đi qua tường lửa vì nó cần phải đi từ máy chủ đến bạn, và bạn đang ẩn đằng sau các bức tường lửa trong đó có không có manh mối nào cho thấy dữ liệu dành cho máy của bạn. Khi giao thức FTP được thiết kế, nhiều thiết bị hiện đại như bộ định tuyến NAT (trở nên cần thiết khi có nhiều thiết bị hơn địa chỉ IP khả dụng) chưa được phát minh.

Sử dụng pasvlệnh (có thể được gọi là một cái gì đó khác nhau trong máy khách của bạn) để thay đổi thành kết nối thụ động nơi kết nối dữ liệu đi từ bạn đến máy chủ.

Xem http://slacksite.com/other/ftp.html để được giải thích chi tiết hơn.


Cảm ơn rất nhiều. Trong trường hợp của VSFTPD, lệnh để vào chế độ thụ động là "thụ động". Điều đó dường như đang làm việc cho bây giờ. Tôi nghĩ rằng toàn bộ tình huống này liên quan đến tôi khi chạy cài đặt Linux trên máy ảo và các cài đặt không chuẩn của nó. Tôi sẽ tìm hiểu làm thế nào để bật chế độ "thụ động" theo mặc định. Một khi tôi tìm ra tôi sẽ đăng cho bất cứ ai quan tâm.
AllenD

Không có gì lạ khi mạng mặc định cho các máy ảo là một loại NAT, vì vậy máy không bị lộ. Đối với VirtualBox, việc đổi thành Bridged khiến nó hiển thị như mọi máy khác trên mạng cục bộ.
Thorbjørn Ravn Andersen

-1

Thêm hoặc kích hoạt dòng này trong /etc/vsftpd.conf

seccomp_sandbox = KHÔNG


Câu trả lời này đã giải quyết vấn đề của tôi nhưng tôi vẫn có câu hỏi về cấu hình không có giấy tờ này.
A1rPun

Tại sao seccomp_sandbox=NOcâu trả lời đúng trong các trường hợp nhất định được ghi lại trong /etc/vsftpd.conftệp: `` `# seccomp_sanbox thêm một lớp bảo mật quảng cáo giới hạn số lượng # tòa nhà có thể được thực hiện thông qua vsftpd. Tuy nhiên, có thể xảy ra việc một danh sách trắng # không cho phép một cuộc gọi hợp pháp (thường được kích hoạt gián tiếp bởi thư viện của bên thứ ba như pam, hoặc openssl) và quá trình này bị giết bởi kernel. # # Do đó, nếu máy chủ của bạn chết trong các tình huống phổ biến (tải xuống tệp, tải lên), # uncomment theo dòng và đừng quên mở lỗi tại # bugzilla.novell.com se
GSchukat
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.