FTP Client와 Server 간의 통신 방식은 설정은
기본적으로 FTP 통신 인증이 이루어지고,
Data 연결부분에서는 임의의 Port를 이용하는 방식으로 구성되는 편입니다.
그래서, 간혹 방화벽을 21번 포트만 Open 해줘서,
FTP Client 프로그램에서 기본 FTP 통신 Port 21번만 연결되고,
FTP의 Data을 목록과 데이터를 읽어오는 부분에서 멈추게 되는 경우를 경험하곤 합니다.
그걸 오류를 막아주기 위해서는
FTP 설정에서 사용할 포트의 범위를
"데이터 포트 범위 (Data Port Chanel Rate)"라는 설정 해 줘야 합니다.
그리고 네트워크 공유기와 Route에서 해당 포트를 연결해줘야만 원활한 FTP 서비스가 가능합니다.
FTP 서버 설정 작업 순서
- IIS에서 FTP 방화벽 지원 설정
- FTP 서비스 재기동하기
- 공유기에서 포트 포워딩 설정
- 윈도우 방화벽 예외 처리
STEP 1. IIS 기본 셋팅 홈
- 방화벽의 외부 IP주소(E): 부분은 옵션사항입니다. 공백으로 사용하셔도 됩니다.
STEP 2. FTP방화벽 지원
변경된 설정값을 적용하기 위해서는, ftpsvc를 재시작해야 합니다.
(주의: 서버의 Root노드 선택해야 합니다. Site>FTP(일반 사이트)는 Read Only입니다.)
Root 노드 선택 (활성) |
일반사이트 선택 (비활성) |
|
STEP 3. 서비스 중지/시작
관리자 권한 커맨드 창 사용
(꼭, FTP방화벽 설정을 적용을 위해서, 재시작해야 합니다.)
net stop ftpsvc
net start ftpsvc
STEP 4. 라우터 포트 포워딩
(참고: 라우터 설정하기(영문 안내) Active and Passive FTP Overview and Configuration)
STEP 5. 윈도우 방화벽 부분 예외처리
또는
[ Windows Firewall with Advanced Security에서 New Rule...로 추가 설정 ]
Port
> TCP / Specific local ports: 5000-5010 추가
> Allow the connection
> [v] Domain / Private / Public
> Passive FTP Port 5000 - 5010 형식으로 추가
(AWS) AWS에서 ftp Port Rule 추가해주기
서버가 AWS 서비스를 사용하고 계신다면, 보안 룰에서도 FTP Data통신 범위의 포트를 오픈해 줘야 합니다.
Security Groups에 Port Rage를 추가합니다.
(ex: 50000-50010일 때)
참고: NAT 환경에서 IIS 7.5 Passive 모드 설정하기
참고 2: (추천) AWS EC2 2012 Server FTP setting
FTP통신 방식: Active Mode와 Passive Mode
Active Mode: 최초 승인 21번 포트, 데이터 전송 20번 포트
Passive Mode: 최초 승인 21번 포트, 데이터 전송 임의 포트 정보 제공
참고: FTP 동작방식 - Active mode, Passive mode
FTP 오류 메시지
오류 메시지: 530 User <Username> Cannot Log In. Login Failed.
현상:
FTP 유틸리티를 사용하여 FTP 사이트에 연결하면 다음 오류 메시지가 나타납니다.
530 User <username> cannot log in.
Login failed.
원인:
이 문제는 다음과 같은 경우에 발생합니다.
- Microsoft Management Console(MMC)에서 익명 연결만 허용을 설정한 경우
- 사용자 관리자에서 사용자 이름에 로컬 로그온 권한이 없는 경우
- 사용자 관리자에서 사용자 이름에 네트워크에서 이 컴퓨터 액세스 권한이 없는 경우
- 사용자 이름과 함께 도메인 이름을 지정하지 않은 경우(형식: DOMAIN\username)
해결 방법:
참고: https://support.microsoft.com/ko-kr/kb/200475
개인적인 CAST:
FTP 데이터 채널 포트를 제한 후에,
net stop ftpsvc / net start ftpsvc를 통해서, 재시작하지 않았을 때도 이런 에러가 나타납니다.
(방화벽에서, FTP 데이터 채널 포트가 달라서 에러가 발생합니다.)
FTP 오류 메시지 2
C:\Users\Administrator>ftp test.******.com
Connected to test.******.com
220 Microsoft FTP Service
User (test.******.com:(none)): userid
331 Password required
Password:
230 User logged in.
ftp> ls
501 Server cannot accept argument.
150 Opening ASCII mode data connection.
멈춤 증상...(Hang Out 됨)
IIS 오류 코드:
간혹, WIN10의 경우 Allowed apps에 등록이 안돼서 ftp유틸이 실행이 안될 수 있습니다.
cmd의 ftp.exe를 이용한 해결 방법을 찾지 못했습니다. (W2012 R2는 불가능으로 결론)
해당 원인은 DATA 연결 부분에, Passive모드가 안되기 때문에 문제가 발생한다고 하네요.
(참고로, 윈도우 OS의 모든 firewall를 off 시켜도 동일한 반응이 나타납니다.)
Window Server 2008 / 2012 R2의 경우 불가능한 것으로 결론.
[해결방법: Window Server에서 cmd로 ftp 서버로 파일 보내기]
WinSCP(Potable)를 다운로드하여서, /command 방식으로 cmd실행을 처리하였습니다.
https://winscp.net/eng/docs/commandline
필요사항
- WinSCP(Portable) 프로그램.
- PATH에 winscp.exe가 있는 경로 추가.
@ECHO OFF
for /f %%I in ('wmic os get localdatetime ^|find "20"') do set dt=%%I
set dt=%dt:~0,8%T%dt:~8,4%
winscp /command "open ftp://username:password@test.com:2222" "bi" "cd DATA" "mput data_%dt%.zip" "exit"
추가로, WinSCP의 synchronize 기능을 통해서, SYNC처리가 가능합니다.
'Server관련 > Sever(OS)' 카테고리의 다른 글
DNS설정 A 레코드와 CNAME 레코드 (0) | 2016.10.05 |
---|---|
Outlook에서 POP3 lock 또는 0x8004210e 에러가 발생할때 (0) | 2016.02.27 |
모바일 OS로 윈도우을 사용 Continuum (0) | 2016.02.26 |
[OS] Window 윈도우 10 K 와 KN 의 차이 (0) | 2016.02.26 |
windows uptime (가동시간) 확인하기 (0) | 2015.10.02 |
[linux] cp owner (소유자) permit (권한) 같게 하는 옵션 (0) | 2015.08.22 |
윈도우 8 사용중인 Disk 디스크 파디션 나누기 - Disk Management (0) | 2015.03.06 |
[WIN8]파티션 나누기(축소/확대) Mini Partition Wizard 툴 (0) | 2014.06.18 |
(로그인하지 않으셔도 가능)