답변:
일반적으로 서버가 다시 연결을 시도하지만 연결할 수없는 경우 이러한 유형의 작업이 발생합니다. FTP는 원래 두 개의 TCP 채널을 사용했습니다. 하나는 명령을위한 것이고 다른 하나는 데이터를 전송하기위한 것입니다. dir 명령을 실행하면 데이터 채널이 사용됩니다. 데이터 채널은 요청시 설정되며 서버가 다시 연결을 시도합니다.
라우터 나 Windows 방화벽에 의해 차단되었을 가능성이 높습니다. PASV 모드 를 지원하는 클라이언트가 필요 합니다.
Internet Explorer에서 PASV 모드를 활성화 할 수 있습니다 . 또는 다른 클라이언트를 사용하십시오. 명령 줄 버전이 PASV 모드를 사용할 수 있는지 잘 모르겠습니다. 매우 기본적인 고객입니다.
문제의 상자에 로그인하면 FTP를 통해 파일을 전송하는 데 문제가있었습니다. 파일 이름을 만들지 만 파일이 비어있었습니다. 다음을 수행하여 해결했습니다.
지금 가면 좋을 것입니다.
Windows FTP 명령 줄 클라이언트 ftp.exe
는 활성 FTP 모드 만 지원합니다.
현재 방화벽과 NAT로 인해 활성 모드에서 FTP를 설정하는 것이 번거로울 수 있습니다.
로컬 방화벽 또는 NAT로 인해 서버가 클라이언트에 다시 연결하여 디렉토리 목록 ( ls
또는 dir
명령)에 대한 데이터 전송 연결을 설정할 수 없었을 수 있습니다.
또는 클라이언트가 외부 IP 주소를 인식하지 못하고 서버가 대신 PORT
사용할 수없는 서버에 내부 주소를 제공합니다 ( 명령에서).
내 기사 활성 모드에 대한 네트워크 구성을 참조하십시오 .
가능하면 수동 모드는 일반적으로 클라이언트 측에서 추가 설정이 필요하지 않으므로 수동 모드를 사용해야합니다.
불행히도 Windows FTP 명령 줄 클라이언트 ( ftp.exe
)는 수동 모드를 전혀 지원하지 않습니다. 요즘 꽤 쓸모가 없습니다.
다른 Windows FTP 명령 줄 클라이언트를 대신 사용하십시오. 다른 대부분은 패시브 모드를 지원합니다.
예를 들어, WinSCP는 기본적으로 수동 모드이며 Windows FTP 스크립트를 WinSCP 스크립트 로 변환하는 데 사용할 수있는 안내서가 있습니다 .
(저는 WinSCP의 저자입니다)
winscp.com
와 winscp.exe
같은 폴더에 있습니다. 오류 메시지에 폴더에서 winscp.com
찾는 것이 명확하게 표시되어 있다고 생각 winscp.exe
합니다. winscp.net/eng/docs/ executables
Windows 2008 서버에서이 문제가 발생했습니다.
이 문서 에서는 응용 프로그램 계층 게이트웨이 서비스를 활성화 할 것을 제안합니다. 이것은 나를 위해 문제를 해결하지 못했습니다.
문제를 해결 한 것은 C : \ Windows \ system32 \ ftp.exe에 대한 Windows 방화벽에서 예외를 추가하는 것이 었습니다.
클라이언트 트랜잭션 데이터를 다시 SQL Server로 일괄 처리하는 Windows 7 시스템에서 타사 POS 소프트웨어 와 동일한 문제가 발생했습니다 .
클라이언트 위치가 ISP 와 정적 IP 주소를 변경할 때까지 제대로 작동했습니다 . 명령 줄 FTP 명령은 초기 로그인 이후에는 작동하지 않았으며 온라인에서 찾은 해결책이나이 스레드가 작동하지 않았습니다.
그냥 차기 위해 방화벽, 저렴한 D-Link 라우터 / 방화벽 및 비올라 에서 FTP 규칙을 다시 만들었습니다 . 다시 작동하는 것 같습니다.
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에서 차단으로 설정되었습니다 (선이있는 큰 빨간색 원) 규칙을 두 번 클릭하십시오. 일반 탭의 작업에서 연결 허용으로 설정하십시오. 확인을 클릭하십시오.