2012-08-31 4 views
1

Windows 7에서 IIS를 사용하여 ftp 서버를 설정하려고했습니다. 로컬 네트워크에서 성공적 이었지만 지금 공개하려고합니다. 나는 포트 21 portforwarded하지만 지금은 외부에서 내 FTP 서버 열 때 (FTP : // myexternalip) 나는 사용자 이름과 암호를 입력하라는 메시지가합니까,하지만 난에 로그인 할 때이 로그 얻을 : 결과적으로Windows 7 IIS FTP 문제

Command: OPTS UTF8 ON 
Response: 200 OPTS UTF8 command successful - UTF8 encoding now ON. 
Status: Connected 
Status: Retrieving directory listing... 
Command: PWD 
Response: 257 "/" is current directory. 
Command: TYPE I 
Response: 200 Type set to I. 
Command: PASV 
Response: 227 Entering Passive Mode (192,168,178,14,57,219). 
Status: Server sent passive reply with unroutable address. Using server address instead. 
Command: LIST 
Response: 150 Opening BINARY mode data connection. 
Error: Connection timed out 
Error: Failed to retrieve directory listing 

을 내 ftp 서버에있는 데이터/파일을 전혀 보지 못했습니다. 문제가 무엇인지, 어떻게 해결해야하는지 전혀 알지 못합니다. 또한 방화벽을 끄기 때문에 방화벽이 FTP 서버를 차단하지 않는다고 확신합니다. 나에게 계몽 할 수있는 지식이 더있는 사람?

답변

1

FTP 프로토콜은 명령이 실행되는 전용 포트 (21)를 사용하지 않고 (따라서 로그인 할 수있는 이유이기도 함) 다른 호스트와의 통신을 위해 자발적인 다른 포트를 사용한다는 점에서 다른 프로토콜과 다릅니다. 데이터 페이로드.

이것은 FTP가 설계되고 클라이언트와 서버가 일반적으로 직접 (방화벽은 이국적이었습니다) 보았지만 NAT가 게임을 변경하면 문제가되지 않았습니다. 서버에서 보는 주소 (192.168.178.14)는 인터넷.

유일한 수정 방법은 NAT에 있습니다. 연결 추적 모듈은 실제로 NAT 주소/포트를 공용 주소/포트로 변환하기 위해 명령 채널을 가로 채고 조작합니다. 대부분의 방화벽 장비는이를 수행하는 방법을 알고 있습니다.

방화벽에서 "트리거 응용 프로그램"또는 "FTP 전달"을 찾으십시오.

+0

@ user1534664 NAT는 실제로 NAT 라우터가 FTP 서버라고 생각할 수 있도록 FTP 제어 패킷을 다시 작성해야합니다. – Neil

+0

@Neil 네, 그렇지만 이것이 포워딩 뒤에있는 개념이 아닙니까? 데이터를 전송해야하는 PC를 NAT에 알리기 위해 포트 포워드하지 않습니까? 나는 포트 21을 포트 포워딩했다. – user1534664

+0

@ user1534664 일반적으로 NAT는 패킷의 IP 주소 (때로는 포트 번호) 만 변경한다. FTP의 경우에만 (실제로 FTP 명령 및/또는 응답) 패킷의 "데이터"를 변경해야합니다. – Neil