명령 줄 FTP 기능이 작동하지 않습니다


12

Windows 7을 사용하고 있으며 여러 FTP 클라이언트 응용 프로그램이 아무런 문제없이 작동합니다. 그러나 명령 줄 FTP를 사용하면 연결할 수 있으며 (사용자 이름과 암호를 입력 한 후) 로그인 할 수 있지만 dir 또는 ls 명령을 사용하면 항상 연결이 끊어집니다. 응답은 다음과 같습니다.

원격 호스트에 의해 연결이 종료되었습니다.

이 문제를 어떻게 해결할 수 있습니까?


방화벽에서 포트 20, 21을여십시오.
Sean Perkins

답변:


13

일반적으로 서버가 다시 연결을 시도하지만 연결할 수없는 경우 이러한 유형의 작업이 발생합니다. FTP는 원래 두 개의 TCP 채널을 사용했습니다. 하나는 명령을위한 것이고 다른 하나는 데이터를 전송하기위한 것입니다. dir 명령을 실행하면 데이터 채널이 사용됩니다. 데이터 채널은 요청시 설정되며 서버가 다시 연결을 시도합니다.

라우터 나 Windows 방화벽에 의해 차단되었을 가능성이 높습니다. PASV 모드 를 지원하는 클라이언트가 필요 합니다.

Internet Explorer에서 PASV 모드를 활성화 할 수 있습니다 . 또는 다른 클라이언트를 사용하십시오. 명령 줄 버전이 PASV 모드를 사용할 수 있는지 잘 모르겠습니다. 매우 기본적인 고객입니다.


고마워, 매트 커맨드 라인 FTP 클라이언트가 기본적으로 수동 모드를 사용한다고 생각했지만 Windows 커맨드 라인 FTP가 실제로 수동 모드를 제외한다는 여러 게시물을 발견했습니다. IE는 항상 내 컴퓨터에서 FTP를 위해 잘 작동합니다. FTP 서버에서 일부 원시 데이터를 검사하기 위해 명령 줄을 사용하고 싶습니다.
Hong

실험적으로 인터넷 익스플로러에서 PASV를 활성화 또는 비활성화하면 차이가 발생하는지 또는 유사한 오류가 발생하는지 확인할 수 있습니다.
barlop

1
ftp> PASV-유효하지 않은 명령. (Windows 7 Ent.). 이 대답은 정확히 직장에서 일어나는 일입니다.
Bratch

6
QUOTE PASV
여야

5

문제의 상자에 로그인하면 FTP를 통해 파일을 전송하는 데 문제가있었습니다. 파일 이름을 만들지 만 파일이 비어있었습니다. 다음을 수행하여 해결했습니다.

  • 제어판 → Windows 방화벽 → 고급 설정 → 인바운드 규칙으로 이동하십시오.
  • 이름 별로 정렬하려면 이름 열을 두 번 클릭하십시오.
  • "파일 전송 프로그램"이라는 두 가지 규칙이 보일 때까지 아래로 스크롤하십시오. 이것들은 내 PC 에서 차단 으로 설정되었습니다 (빨간색 원이 그 위에 선이 있음)
  • 규칙을 두 번 클릭하십시오.
  • 일반 탭에서 액션 , 집합하는 연결 허용
  • 딸깍 하는 소리 OK
  • 다른 규칙을 위해 이것을하십시오

지금 가면 좋을 것입니다.


이 작업의 보안 영향은 무엇입니까?
피터 Mortensen

PC의 프로그램은 이제 ftp를 사용할 수 있습니다.
Mark Deven

규칙을 삭제 한 다음 FTP를 통해 연결하고 "dir"명령 (Windows 방화벽을 트리거하여 FTP 허용 여부를 묻고 예라고 대답 한 경우 규칙을 다시 작성)과 같은 것을 발행하는 것도 도움이 될 수 있습니다.
mlvljr

5

Windows FTP 명령 줄 클라이언트 ftp.exe는 활성 FTP 모드 만 지원합니다.

현재 방화벽과 NAT로 인해 활성 모드에서 FTP를 설정하는 것이 번거로울 수 있습니다.

로컬 방화벽 또는 NAT로 인해 서버가 클라이언트에 다시 연결하여 디렉토리 목록 ( ls또는 dir명령)에 대한 데이터 전송 연결을 설정할 수 없었을 수 있습니다.

또는 클라이언트가 외부 IP 주소를 인식하지 못하고 서버가 대신 PORT사용할 수없는 서버에 내부 주소를 제공합니다 ( 명령에서).

기사 활성 모드에 대한 네트워크 구성을 참조하십시오 .


가능하면 수동 모드는 일반적으로 클라이언트 측에서 추가 설정이 필요하지 않으므로 수동 모드를 사용해야합니다.

불행히도 Windows FTP 명령 줄 클라이언트 ( ftp.exe)는 수동 모드를 전혀 지원하지 않습니다. 요즘 꽤 쓸모가 없습니다.

다른 Windows FTP 명령 줄 클라이언트를 대신 사용하십시오. 다른 대부분은 패시브 모드를 지원합니다.

예를 들어, WinSCP는 기본적으로 수동 모드이며 Windows FTP 스크립트를 WinSCP 스크립트 로 변환하는 데 사용할 수있는 안내서가 있습니다 .

(저는 WinSCP의 저자입니다)


XP 이후의 모든 버전의 Windows에서 작동합니다. 어떤 오류가 발생합니까? 자세한 내용은 별도의 새로운 질문을 고려하십시오.
Martin Prikryl

둘 다 필요 winscp.comwinscp.exe같은 폴더에 있습니다. 오류 메시지에 폴더에서 winscp.com찾는 것이 명확하게 표시되어 있다고 생각 winscp.exe합니다. winscp.net/eng/docs/ executables
Martin Prikryl

Np, 댓글을 삭제하십시오.
Martin Prikryl

4

Windows 2008 서버에서이 문제가 발생했습니다.

이 문서 에서는 응용 프로그램 계층 게이트웨이 서비스를 활성화 할 것을 제안합니다. 이것은 나를 위해 문제를 해결하지 못했습니다.

문제를 해결 한 것은 C : \ Windows \ system32 \ ftp.exe에 대한 Windows 방화벽에서 예외를 추가하는 것이 었습니다.


1
기본적으로 Windows 방화벽에는 예외로 ftp.exe가 포함되지만 가정 / 직장 네트워크에만 해당됩니다. 공용 네트워크에 있지 않은지 확인하십시오. 그렇지 않으면 공용 네트워크에 ftp도 허용하십시오.
Jags

1

클라이언트 트랜잭션 데이터를 다시 SQL Server로 일괄 처리하는 Windows 7 시스템에서 타사 POS 소프트웨어 와 동일한 문제가 발생했습니다 .

클라이언트 위치가 ISP 와 정적 IP 주소를 변경할 때까지 제대로 작동했습니다 . 명령 줄 FTP 명령은 초기 로그인 이후에는 작동하지 않았으며 온라인에서 찾은 해결책이나이 스레드가 작동하지 않았습니다.

그냥 차기 위해 방화벽, 저렴한 D-Link 라우터 / 방화벽 및 비올라 에서 FTP 규칙을 다시 만들었습니다 . 다시 작동하는 것 같습니다.


0

FTP 문제

Azure NSG 및 서버 방화벽의 열린 포트 : 21,20,4000-40009,990,14147

문제 : 클라이언트가 명령 줄 및 Powershell에서 ftp에 연결할 수 없습니다

testuser와 연결할 수 있지만 디렉토리 / 목록을 볼 수 없습니다

패킷을 캡처하기 위해 서버와 랩톱에 Wireshark를 설치했습니다.“ftp”및“IP”를 사용하여 wireshark에 필터를 만들었습니다. 패킷 캡처에 날씨가 수동 또는 활성 모드이고 소스 IP가 올바르다 고 날씨가 표시되지 않습니다. (서버에서 기본 IP 및 보조 IP를 구성합니다)

명령 프롬프트에서 ftp 연결이 작동하지 않는 것으로 나타났습니다. 실제 FTP 서버 44.33.22.11이 아닌 11.22.33.44로 해석되는 ftp.abcd.com에 대한 연결을 시작하려고하면 IP 주소 11.22.33.44 및 44.33.22.11이 동일한 머신에 구성됩니다. 그러나 DNS는 기본 대신 보조 FTP IP로 확인되었습니다

처음에는 11.22.33.44에 대한 FTP 연결이 제대로 작동하고 있으며 이러한 연결이 활성 연결이라는 것을 알았습니다. 여기서 수동 모드가 작동하는 것을 볼 수 없었습니다. 또한 Commad promt에서 11.22.33.44에 연결을 시작하는 동안 'dir'명령을 실행하면 세션이 정지되지만 FileZilla 및 Winscp와 같은 다른 ftp 클라이언트와 동일하게 작동합니다.

WinSCP 및 FileZilla로 테스트를 시도한 결과 수동 모드 연결이 제대로 작동하고 정상 작동하지 않는 것으로 나타났습니다. 인증 성공 후 'dir'명령이 장치에서 작동하지 않는 이유를 확인한 결과 Windows 방화벽이 연결을 차단하고 있음을 확인했습니다. 방화벽을 비활성화하고 모든 것이 예상대로 작동하기 시작했습니다. 방화벽 규칙을 만든 후에도 동일한 내용을 확인했는데 문제가 해결되었습니다. 방화벽을 사용하지 않도록 설정 한 후에도 디렉토리 목록에서 방화벽이 비활성화 된 경우에도 해당 시스템 내에서 문제가 발생하거나 연결이 외부 요인에 의해 차단되고있는 시스템이 있습니다. 우리를 비활성화 한 후 대부분의 사람들이 잘 작동 할 수 있습니다.

컴퓨터에서 설정을 수행해야합니다. 제어판 → Windows 방화벽 → 고급 설정 → 인바운드 규칙으로 이동하십시오. 이름 열을 두 번 클릭하여 이름별로 정렬하십시오. "파일 전송 프로그램"이라는 두 가지 규칙이 나타날 때까지 아래로 스크롤하십시오. 이 규칙은 내 PC에서 차단으로 설정되었습니다 (선이있는 큰 빨간색 원) 규칙을 두 번 클릭하십시오. 일반 탭의 작업에서 연결 허용으로 설정하십시오. 확인을 클릭하십시오.


이것은 @Keljo의 답변이 이미 말한 것입니다 (실제로 자신의 답변을 복사했습니다).
Martin Prikryl
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.