Lệnh ls trong ftp> không hoạt động!


17

Tôi đang thực hành ftp nhưng gặp phải một vấn đề: lệnh ls không hoạt động trên ftp>. Tại sao? Tôi đã kiểm tra trên 2 máy chủ từ xa nhưng ls không hoạt động trên cả hai và cho đầu ra khác nhau khi ls được thực thi. Xin vui lòng xem dưới đây cho 2 hộp từ xa.

Dưới đây cho thấy máy chủ từ xa của tôi, nơi tôi đã cài đặt vsftpd ngày hôm nay.

ravbholua@ravbholua-Aspire-5315:~$ ftp rs
Connected to ravi.com.
220 (vsFTPd 3.0.2)
Name (rs:ravbholua): 
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> pwd
257 "/home/ravbholua"
ftp> ls
500 Illegal PORT command.
ftp: bind: Address already in use
ftp> 

Dưới đây là cho một máy từ xa khác, nơi tôi phải gửi một số tệp. Nhưng vì ls trên ftp> không hoạt động, tôi sẽ chuyển các tệp từ hộp cục bộ của mình sang hộp đó như thế nào vì tôi không thể được xác nhận nếu không có các tệp đã được chuyển hay chưa.

ravbholua@ravbholua-Aspire-5315:~$ ftp 125.21.153.140
Connected to 125.21.153.140.
220---------- Welcome to Pure-FTPd [TLS] ----------
220-You are user number 1 of 10 allowed.
220-Local time is now 04:34. Server port: 21.
220-This server supports FXP transfers
220 You will be disconnected after 2 minutes of inactivity.
Name (125.21.153.140:ravbholua): peacenews
331 User peacenews OK. Password required
Password:
230 OK. Current restricted directory is /
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> ls
200-FXP transfer: from 123.63.112.168 to 10.215.10.80
200 PORT command successful

Xin lưu ý rằng đối với máy ở trên, một khi tôi chạy ls trên ftp>, lời nhắc không quay lại.

Trên cả hai máy từ xa, tôi nhận được đầu ra khác nhau khi thực hiện ls trên ftp>


3
sử dụng chế độ thụ động. Kiểm tra trang man của khách hàng ftp của bạn để biết cách kích hoạt nó.
Stéphane Chazelas

Làm thế nào để biết khách hàng ftp nào đang chạy ở cuối của tôi?
Ravi

@stephane cảm ơn! Tôi đã chạy man ftpvà tìm thấy -ptùy chọn được sử dụng cho chế độ thụ động. Như đã man ftpđề cập rằng ftp là giao diện người dùng với giao thức truyền tệp chuẩn Internet: vì vậy đó là giao diện chứ không phải máy khách ftp !!! Điều tôi hiểu là máy khách ftp sử dụng giao diện này (ftp) để truyền tệp.
Ravi

Câu trả lời:


26

FTP là một giao thức cổ xưa. Nó phụ thuộc vào hai kết nối TCP: kết nối điều khiển qua đó các lệnh được trao đổi và kết nối dữ liệu cho nội dung của tệp và cũng cho đầu ra của các lệnh như ls. Điều xảy ra ở đây là kết nối điều khiển được thiết lập, nhưng các kết nối dữ liệu không đi qua.

Theo mặc định (chế độ hoạt động), các kết nối dữ liệu được thiết lập từ người gửi đến người nhận. Đối với đầu ra của ls, dữ liệu được gửi bởi máy chủ, vì vậy máy chủ cố gắng mở kết nối đến máy khách. Điều này hoạt động tốt khi FTP được phát minh, nhưng ngày nay, các máy khách thường đứng sau tường lửa hoặc NAT có thể hỗ trợ FTP hoạt động. Chuyển sang chế độ thụ động, trong đó máy khách luôn khởi tạo kết nối dữ liệu.

Kiểm tra hướng dẫn sử dụng ftplệnh của bạn để xem cách chuyển sang chế độ thụ động theo mặc định. Đối với một điều một lần, gõ lệnh passivethường làm thủ thuật.

Bạn có thể muốn chuyển sang một máy khách FTP đẹp hơn như ncftp hoặc lftp .


Cảm ơn!! Nhưng tại sao đột nhiên vấn đề này xảy ra. Eariler Tôi đã có thể chạy ls trên ftp>. Nhưng hôm qua, tôi đã cài đặt vsftpd trên máy chủ từ xa (VPS của tôi) và cũng chỉnh sửa tệp .netrctrên hộp cục bộ của tôi (đơn giản là đã đặt hàm băm ở đầu dòng trong .netrc). Đó là tất cả và sau đó là vấn đề ls tôi đã phải đối mặt. Điều gì có thể là lý do mà ls đã hoạt động tốt trước đó và kể từ ngày hôm qua không hoạt động?
Ravi

Bạn có quyền đề nghị lftp. Tôi đang có kinh nghiệm làm việc với điều đó. lftpthực sự tuyệt vời Ngoài ra tôi muốn thêm rằng tôi vừa mới kiểm tra lftpvà nó hoàn toàn chạy tốt, không có vấn đề gì với ls. lsở đây (trong lftp) đang hiển thị đầu ra đúng.
Ravi

3

Giải pháp hoàn chỉnh đầy đủ cho "lệnh ftp 500 trái phép PORT". Nhấp vào liên kết sau: http://www.ucodice.com/articles/ftp-500-illegal-port-command/ .

Trích

Đang cố gắng kết nối máy chủ ftp và nhận 500 lệnh cổng bất hợp pháp. Sự cố này có thể xảy ra khi chương trình ftp không được cấu hình cho chế độ Bị động.

Bạn có thể nhận được đoạn mã lỗi, chẳng hạn như:

COMMAND:>              [3/11/2015 1:17:05 PM] PORT 192,168,0,101,196,215    
                       [3/11/2015 1:17:05 PM] 500 Illegal PORT command.    
ERROR:>                [3/11/2015 1:17:05 PM] Syntax error: command unrecognized.    
ERROR:>                [3/11/2015 1:17:05 PM] Failed to establish data socket.

Để giải quyết vấn đề này, bạn có thể xác định cổng hoặc ftp trong tệp cấu hình của máy chủ ftp và xác định Địa chỉ IP hoặc máy chủ PASV.

Kiểm tra tập tin cấu hình cho các cài đặt bên dưới.

pasv_enable=YES
pasv_promiscuous=YES
pasv_max_port=Enter the max port range allowed on your server.
pasv_min_port=Enter the min port range allowed on your server.
pasv_address=Ip Address of your server.

Sau đó khởi động lại dịch vụ ftp và kiểm tra kết nối ftp.

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.