我已經使用ftplib創建了一個FTP客戶端。我在其中一臺Ubuntu虛擬機和另一臺客戶機上運行服務器。我想用ftplib連接到服務器,我按照以下方式進行:無法使用ftplib的IP地址(Python)
host = "IP address of the server"
port = "Port number of the server"
ftpc = FTP()
ftpc.connect(host, port)
我收到以下錯誤!
Traceback (most recent call last):
File "./client.py", line 54, in <module>
ftpc.connect(host, port)
File "/usr/lib/python2.7/ftplib.py", line 132, in connect
self.sock = socket.create_connection((self.host, self.port), self.timeout)
File "/usr/lib/python2.7/socket.py", line 571, in create_connection
raise err
socket.error: [Errno 111] Connection refused
當我瀏覽python的文檔時,我可以看到ftplib僅用於域名,如FTP(「域名」)。我可以使用IP地址而不是域名嗎?就我而言,我無法理解錯誤。如果有人能幫助我,這將是非常棒的。
另外,如果我在我的服務器上使用端口21,我得到套接字錯誤:連接被拒絕。我如何使用端口21作爲我的FTP服務器?
謝謝。
連接拒絕意味着您的代碼實際上已到達遠程地址,但該計算機不運行ftp服務器,或者端口的防火牆已被屏蔽。使用dns名稱並不意味着什麼 - 它只是一個抽象層。無論如何,所有東西都在IP下運行。 – 2013-05-07 20:58:00
謝謝你的回覆。我如何檢查港口的防火牆?在承載FTP服務器的服務器上運行 – harnex 2013-05-07 21:07:08
,將'iptables --list'作爲'root'或'sudo iptables --list'運行。 – pcurry 2013-05-07 21:10:18