IIS FTP 세션 끊김 및 재연결 원인
IIS FTP 세션 끊김 및 재연결 원인과 해결 방법
IIS(인터넷 정보 서비스) FTP 서버에서 세션이 예기치 않게 끊어지거나 재연결되는 현상은 다양한 원인으로 인해 발생할 수 있습니다. 주로 네트워크 구성, 방화벽 설정, IIS 자체의 타임아웃 설정 문제인 경우가 많습니다. 주요 원인과 해결 방법을 아래와 같이 정리했습니다.
주요 원인 및 해결 방법
1. 제어 채널 및 데이터 채널 타임아웃 ⌛
FTP는 명령을 주고받는 '제어 채널'과 실제 파일 데이터를 전송하는 '데이터 채널'을 사용합니다. 일정 시간 동안 아무런 활동이 없으면 IIS는 보안 및 리소스 관리를 위해 이들 채널의 연결을 종료하도록 설정되어 있습니다. 특히 대용량 파일 전송 시 데이터 채널은 활발하지만 제어 채널은 유휴 상태로 간주되어 연결이 끊어질 수 있습니다.
💡 해결 방법
- IIS 관리자를 엽니다.
- 서버 노드를 선택한 후 'FTP 사이트 기본값 설정'으로 이동하거나, 특정 FTP 사이트를 선택하고 '고급 설정'으로 이동합니다.
- '연결' 섹션에서 '제어 채널 시간 제한' 및 '데이터 채널 시간 제한' 값을 늘려줍니다. 기본값은 각각 120초와 30초입니다. 대용량 파일 전송이 잦다면 이 값을 충분히 길게 (예: 600초 이상) 설정하는 것이 좋습니다.
2. 방화벽 및 네트워크 장비 설정 🧱
Windows 방화벽이나 외부 네트워크 방화벽, NAT(네트워크 주소 변환) 라우터 등이 FTP 트래픽을 올바르게 처리하지 못해 연결이 끊어지는 경우가 매우 많습니다. 특히 FTP의 '수동 모드(Passive Mode)'에서 사용하는 데이터 채널 포트가 차단되는 것이 주된 원인입니다.
💡 해결 방법
- 수동 모드 포트 범위 설정: IIS 관리자의 서버 수준에서 'FTP 방화벽 지원' 기능으로 이동하여 데이터 채널에 사용할 포트 범위를 명시적으로 지정합니다. (예: 50000-51000)
- 방화벽 인바운드 규칙 추가: Windows 방화벽 및 기타 네트워크 장비에서 다음 규칙을 추가합니다.
- FTP 서비스(svchost.exe) 또는 포트 21(제어 채널) 허용
- 위에서 지정한 수동 모드 포트 범위(예: TCP 50000-51000) 허용
- 외부 IP 주소 설정: FTP 서버가 NAT 환경 뒤에 있는 경우, 'FTP 방화벽 지원'에서 '방화벽의 외부 IP 주소'를 올바르게 설정해야 클라이언트가 정확한 주소로 접속할 수 있습니다.
- Application Layer Gateway (ALG) 비활성화: 일부 공유기나 방화벽의 FTP ALG 기능이 IIS와 충돌을 일으킬 수 있습니다. 가능하다면 해당 기능을 비활성화하고 테스트해 보십시오.
3. FTP 수동 모드(Passive Mode) 구성 오류 ↔️
대부분의 최신 FTP 클라이언트는 기본적으로 수동 모드를 사용합니다. 서버가 수동 모드 요청에 응답할 때, 데이터 연결을 위한 IP 주소와 포트 번호를 클라이언트에 알려줍니다. 이 과정에서 잘못된 정보(예: 내부 IP 주소)를 전달하거나 클라이언트가 해당 포트로 연결할 수 없으면 오류가 발생하고 연결이 끊어집니다.
💡 해결 방법
- 앞서 언급한 'FTP 방화벽 지원' 설정이 올바르게 구성되었는지 다시 한번 확인합니다. 특히 '방화벽의 외부 IP 주소'가 공인 IP로 정확히 지정되어야 합니다.
- 지정한 수동 모드 포트 범위가 방화벽과 라우터에서 모두 포트 포워딩 되었는지 확인합니다.
- 문제가 지속되면 FTP 클라이언트에서 '능동 모드(Active Mode)'로 강제 변경하여 테스트해 볼 수 있습니다. 다만, 이 경우 클라이언트 측의 방화벽 설정이 문제가 될 수 있습니다.
4. FTP 서비스 재시작 필요 🔄
IIS에서 FTP 관련 설정을 변경한 후에는 해당 내용이 즉시 적용되지 않을 수 있습니다. 변경된 구성을 적용하려면 FTP 서비스를 재시작해야 합니다.
💡 해결 방법
- 서비스 관리자(services.msc)를 엽니다.
- 목록에서 'Microsoft FTP Service'를 찾아 마우스 오른쪽 버튼으로 클릭하고 '다시 시작'을 선택합니다.
진단을 위한 확인 방법
FTP 접속 문제를 진단하기 위해 서버 측에서 방화벽, 네트워크 경로 및 인터넷 속도를 확인하는 방법을 안내합니다.
1. 방화벽 설정 확인 (Windows Server 기준)
방화벽이 FTP 포트를 차단하고 있는지 확인하는 것이 가장 중요합니다.
💡 확인 방법
- 고급 보안이 포함된 Windows Defender 방화벽 열기:
시작 메뉴에서 'wf.msc'를 검색하여 실행합니다. - 인바운드 규칙 확인:
왼쪽 패널에서 '인바운드 규칙'을 선택합니다. 규칙 목록에서 'FTP' 관련 규칙을 찾습니다.- FTP 서버 (수동): FTP Passive 모드 데이터 연결을 위한 규칙입니다. (상태: 사용, 동작: 허용)
- FTP 서버 (비 SSL): 포트 21 제어 채널 연결을 위한 규칙입니다. (상태: 사용, 동작: 허용)
- 사용자 지정 포트 범위를 사용한다면, 해당 범위(예: TCP 50000-51000)에 대한 인바운드 규칙이 '허용'으로 설정되어 있는지 확인해야 합니다.
- 규칙이 없다면 새로 만들기:
오른쪽 작업 패널에서 '새 규칙'을 클릭하여 '포트' 유형을 선택하고, FTP 제어 포트(21)와 수동 모드 데이터 포트 범위에 대한 TCP 연결을 허용하는 규칙을 만듭니다.
2. 네트워크 장비 및 경로 확인
클라이언트와 서버 사이에 어떤 네트워크 장비(라우터, 게이트웨이)가 있는지, 그리고 데이터 패킷이 어떤 경로를 통해 전달되는지 확인하여 문제 지점을 추측할 수 있습니다.
💡 확인 방법 (명령 프롬프트 사용)
명령 프롬프트(cmd
) 또는 PowerShell을 관리자 권한으로 실행합니다.
경로 추적 (tracert):
클라이언트 PC에서 FTP 서버의 주소로 tracert
명령을 실행하여 패킷이 거쳐가는 라우터 목록과 각 구간의 지연 시간을 확인할 수 있습니다. 특정 구간에서 지연이 급격히 늘어나거나 요청이 시간 초과되면 해당 네트워크 장비에 문제가 있을 수 있습니다.
tracert ftp.example.com
서버와 클라이언트가 동일한 내부망에 있다면, 외부 네트워크 장비보다는 내부 스위치나 라우터의 설정 문제일 가능성이 높습니다.
3. 인터넷 속도 확인
파일 전송 속도가 현저히 느리거나 불안정하다면 서버의 인터넷 회선 자체의 문제일 수 있습니다. 이는 FTP 세션 타임아웃의 간접적인 원인이 될 수 있습니다.
💡 확인 방법
- 웹 기반 속도 측정 사이트 이용:
서버의 웹 브라우저에서 Speedtest.net, Fast.com (Netflix 제공)과 같은 사이트에 접속하여 현재 인터넷의 다운로드 및 업로드 속도를 간단하게 측정할 수 있습니다. FTP는 주로 업로드 속도에 영향을 받으므로 업로드 속도를 유심히 확인해야 합니다. - 명령줄 인터페이스(CLI) 도구 이용 (고급 사용자용):
Speedtest® 에서 제공하는 공식 CLI 도구를 설치하여 명령줄 환경에서 속도를 측정할 수 있습니다. 더 정확하고 자동화된 테스트가 가능합니다.