Microsoft/Windows2010.11.10 12:37
FTP는 두개의 포트를 사용한다. 하나는 컨트롤 다른 하나는 데이터이다.
접속시에는 컨트롤 포트인 21번을 이용하고, 데이터는 20번 포트를 주로 사용하는데

표준모드 FTP의 경우는 20번을 사용하지만
수동모드 FTP의 경우 1024~5000번 중에 사용하기 때문에

IE에서는 기본적으로 표준모드로 작동하므로 수동모드 FTP 서버로는 접속이 안된다.
(그래서 알FTP로 접속시 IE는 맨날 목록이 안온건가!)

이를 해결하기 위해서는 인터넷 옵션에서
"방화벽 및 DSL 모뎀과 호환되는 수동 FTP 사용"의 체크를 꺼주면된다.


아래는 MS사의 정보이다.
이 문서에서는 파일 전송 프로토콜(FTP) PORT 모드와 PASV 모드를 모두 사용하도록 Internet Explorer를 구성하는 방법을 설명합니다.

FTP는 두 가지 모드를 지원합니다. 이들 모드는 각각 표준(또는 PORT나 능동)과 수동(또는 PASV)이라고 합니다. 표준 모드 FTP 클라이언트는 PORT 명령을 FTP 서버에 보냅니다. 수동 모드 클라이언트는 PASV 명령을 FTP 서버에 보냅니다. 이러한 명령은 FTP 세션을 설정할 때 FTP 명령 채널을 통해 보내집니다.

표준 모드 FTP 클라이언트는 먼저 FTP 서버의 TCP 포트 21에 연결을 설정합니다. 그러면 이 연결이 FTP 명령 채널을 설정합니다. FTP 클라이언트가 폴더 목록이나 파일 같은 데이터를 보내거나 받아야 할 때는 클라이언트가 FTP 명령 채널을 통해 PORT 명령을 보냅니다. PORT 명령에는 FTP 클라이언트가 데이터 연결에 사용하는 포트에 대한 정보가 포함되어 있습니다. 표준 모드에서는 FTP 서버가 항상 TCP 포트 20에서 데이터 연결을 시작합니다. FTP 서버에서 데이터를 보내거나 받을 때는 클라이언트에 대한 연결을 새로 열어야 합니다. 또한 FTP 클라이언트도 PORT 명령을 다시 사용하여 클라이언트에 대한 연결을 새로 열도록 요청합니다.

수동 모드 FTP 클라이언트도 먼저 FTP 서버의 TCP 포트 21에 연결을 설정해서 제어 채널을 만듭니다. 클라이언트가 명령 채널을 통해 PASV 명령을 보내면 FTP 서버는 임시 포트(1024 - 5000)를 열고 데이터 전송을 요청하기 전에 해당 포트에 연결하도록 FTP 클라이언트에 알립니다. 표준 모드와 마찬가지로 전송 전에 FTP 클라이언트에서 새로 PASV 명령을 보내야 하며 FTP 서버는 전송이 이루어질 때마다 새 포트에서 연결을 기다립니다.

FTP 클라이언트나 서버 중 한 곳의 방화벽 구성에 따라 FTP 클라이언트에서 사용하는 모드를 변경해야 할 수 있습니다. Microsoft Internet Explorer 5 이상은 표준 모드와 수동 모드를 모두 지원합니다.

[링크 : http://support.microsoft.com/kb/323446/ko]

신고
Posted by 구차니
TAG FTP, IE FTP

댓글을 달아 주세요

  1. 오오... 몰랐던 사실. 감사합니다.

    2010.11.11 13:36 신고 [ ADDR : EDIT/ DEL : REPLY ]
  2. 오우~ 아이폰에서 분명 댓글을 올렸는데, 사라졌네요.
    매우 즐거운 팁입니다. 분명히 IE에서 FTP 접속이 되는 것으로 알고 있고 사용한 적도 있는데
    이상하게 안 되더군요. 이럴 때 말씀 주신 내용을 확인해야 겠어요. ^^

    2010.11.12 22:04 신고 [ ADDR : EDIT/ DEL : REPLY ]
    • 음.. 저는 모바일 티스토리는 댓글달기 이런게 짜증나서 잘 이용을 안하게 되더라구요 ㅎ
      그냥 댓글확인정도 밖에 안하거든요 ^^;

      아무튼 PASV 라고 뜨는건 본거 같은데 그게 먼지 찾을 생각도 안했던 제가 부끄러워 져요 ㅠ.ㅠ

      2010.11.13 11:25 신고 [ ADDR : EDIT/ DEL ]

# ftp
ftp: ftp/tcp: unknown service

검색을 해보니 root로는 잘되는데 일반유저로는 안된다는 문제도 있고
-> /etc/services 의 퍼미션 문제
[링크 : 워낙 자주 나오니 생략]

services에 제대로 등록이 안되서 그렇다는 문제도 있고
-> /etc/services에
ftp-data         20/tcp
ftp              21/tcp
만 등록되어 있는 문제
[링크 : https://www.linuxquestions.org/questions/linux-software-2/ftptcpunknown-services-368671/]

그리고 내가 원했던 대답은
libncurse.so 뿐만 아니라 libnss_files.so 도 필요 하다는 것이었다.
[링크 : http://lists.busybox.net/pipermail/busybox/2004-August/012250.html]


일단 busybox에서 구동을 하다 보면, 용량을 위해서 사용하지 않는 각종 라이브러리들을 삭제하게 되는데
그로 인해서, nss관련 라이브러리가 삭제 되어 있었나보다.

문제는, ftp 프로그램이 ncurse가 없을때는 에러가 나더니
nss가 없을때는 nss 라이브러리 부족이라고 에러가 안나고 뜬금없는 unknown service라는 에러를 발생한다.
신고
Posted by 구차니

댓글을 달아 주세요