2013-05-07 4 views
1

ftplib을 사용하여 FTP 클라이언트를 만들었습니다. 내 우분투 가상 머신 중 하나와 다른 클라이언트에서 서버를 실행 중입니다. ftplib을 사용하여 서버에 연결하려면 다음과 같이하십시오.ftplib (Python)에서 IP 주소를 사용할 수 없습니다.

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 

내가 파이썬 문서를 살펴본 결과 FTP ("도메인 이름")처럼 도메인 이름에만 사용되는 ftplib를 볼 수있었습니다. 도메인 이름 대신 IP 주소를 사용할 수 있습니까? 제 경우에는 오류를 이해할 수 없습니다. 누구든지 나를 도울 수 있다면 좋을 것입니다.

또한 내 서버에서 포트 21을 사용하는 경우 소켓 오류가 발생합니다. 연결이 거부되었습니다. FTP 서버에 포트 21을 어떻게 사용합니까?

감사합니다.

+2

connection refused는 코드가 실제로 원격 주소에 도달했음을 의미하지만 해당 컴퓨터가 ftp 서버를 실행하지 않거나 포트가 방화벽으로 연결되어 있음을 의미합니다. DNS 이름을 사용하면 아무 의미가 없습니다. 단순히 추상화 계층 일뿐입니다. 어쨌든 모든 것이 후드 아래의 IP에서 실행됩니다. –

+0

답장을 보내 주셔서 감사합니다. 포트가 방화벽으로 연결되어 있는지 어떻게 확인합니까? FTP 서버를 호스팅하는 서버의 – harnex

+1

을 실행하려면'iptables --list'를'root' 또는'sudo iptables --list'로 실행하십시오. – pcurry

답변

1

ftplib을 사용하여 SFTP 서버에 연결하려고 시도하는 것처럼 보이며 Connection Refused 오류가 발생합니다. ftplib 대신 pysftp를 사용해보고 작동하는지 확인하십시오.

가상 시스템에서 콘솔에 ftp 및 sftp 명령을 입력하여 테스트하십시오. 시스템이 실행중인 서버, 즉 ftp 또는 sftp에 대해 알게됩니다.

+0

예! 이게 내 문제를 해결했습니다. 고마워요! – ratskin