2012-05-30 42 views
7

是的,我知道ftp比telnet好,但現在我堅持使用telnet。 我已經可以登錄等。這只是我無法獲得一個文件。我GOOGLE了它,它給了我這個:使用telnet傳輸文件從/到服務器

(來源:http://www.webdigi.co.uk/blog/2009/ftp-using-raw-commands-and-telnet/

220 ProFTPD 1.3.1 Server (ProFTPD) [64.170.98.33] 
USER anonymous 
331 Anonymous login ok, send complete email address as your password 
PASS [email protected] 
230 Anonymous access granted, restrictions apply 
CWD ietf/ftpext/ 
250 CWD command successful 
PASV 
227 Entering Passive Mode (64,170,98,33,151,31). 
RETR ftpext-charter.txt 
150 Opening ASCII mode data connection for ftpext-charter.txt (6060 bytes) 
226 Transfer complete 
QUIT 
221 Goodbye. 

現在你可以看到,這裏使用的人RETR獲取文件。 但是,當我這樣做..它只是執行它..並沒有做任何事情。它只停留在那裏..有人知道如何解決這個問題嗎?

謝謝!

編輯:現在我試圖通過在我的Windows機器上使用telnet來完全正確,因爲我被我的腳本卡住了。我試圖在我的服務器上編寫一個腳本,在每天的基礎上(自動)從另一臺服務器(使用netsock)中抽取幾個文件...並且不需要任何人的交互。

的screenie的RETR的:

screenshot

+2

這是做FTP。不是telnet。 – adarshr

+1

如果你想通過telnet發送文件,你可以(雖然不是那樣,它是你正在查看的FTP會話),但你需要安排使用一些管道和IO重定向來做到這一點。在我看來,這不是一個編程問題。無論如何,你會比使用telnet更好地使用ssh/scp。 – Flexo

+0

你會得到什麼?有它的截圖,包括你的telnet命令行? –

回答

5

你不能遠程登錄使用FTP。 Ftp需要一個命令通道和一個數據通道。您可以通過Telnet使用該命令通道,但不能將該數據通道與Telnet一起使用。結果就是你所看到的。進一步的詳細信息在Ftp RFC中:http://www.ietf.org/rfc/rfc959.txt

+0

如果您執行被動模式,則可以在另一個telnet上使用數據通道。 –

+0

是的,爲了讀取您的telnet終端中的二進制文件的內容。獲取數據通道內容的唯一有效方法是使用netcat:'nc -n -l -p dataport> download'。但不是安裝netcat,而是使用* wget *,* curl *,* lftp *或優秀的舊標準* ftp *客戶端。 – ceving

6

如果您正在遠程登錄的系統上已安裝了Python(當前大多數基於Unix的系統默認安裝了某種版本的Python),那麼您可以運行超高速緩存簡單的Python HTTP服務器,使用這個命令:

$ python -m SimpleHTTPServer 

只要確保你在你想傳輸的文件所在的目錄下運行這個。然後打開任何網頁瀏覽器,並指向同一個地址到你的telnet-ING,除了使用8000端口,如:

http://192.168.2.1:8000/ 

(只需更換與遠程機器的實際地址的IP地址) 。這將加載瀏覽器中的文件列表,並且您可以右鍵單擊並保存您想要的任何文件。

希望這會有所幫助!

+0

謝謝喬丹。我剛剛編輯了我的原始問題,以闡明我的情況:我想自動執行文件傳輸,因此每天(例如)它都會從另一臺服務器中提取某個文件。所以我不想打開一個webbrowser或任何東西..一切都需要發生在後臺基本上.. – Malachi

+1

只是想添加,在Python 3它是python -m http.server – pugnator

相關問題