출처: https://m.blog.naver.com/PostView.naver?isHttpsRedirect=true&blogId=rnjsrldnd123&logNo=221515762155
FileZilla 사용 시 호스트 주소와 사용자명, 패스워드를 정확히 입력했음에도 불구하고
"서버가 알 수 없는 주소와 수동형 응답을 보냈습니다. 대신 서버 주소를 사용합니다."라는 메시지와 함께
디렉터리 목록이 조회되지 않는 경우가 있습니다.
이러한 현상의 이유는 ftp 서버에 패시브 모드에 관한 설정을 해두지 않고, ftp 클라이언트에서 패시브 모드로 ftp 연결을 시도했기 때문입니다.
(패시브 모드에 관한 설명은 오른쪽 링크를 참고하세요. https://extrememanual.net/3504)
이를 해결하기 위한 간단한 방법으로는 ftp 클라이언트(FileZilla) 쪽에서 패시브 모드 사용을 비활성화해주면 됩니다. (액티브 모드를 사용하도록)
하지만, 액티브 모드를 개선해서 만들어진 것이 패시브 모드이고, 최근에는 대부분 패시브 모드를 이용하기 때문에
이 포스팅에서는 추가적으로 패시브 모드 관련 설정을 통해서 위 에러를 해결하는 방법을 알아보겠습니다.
먼저 ftp 서버에서 패시브 모드를 사용할 수 있도록 설정 파일을 수정해야 합니다.
vi 편집기로 vsftpd 설정 파일을 엽니다. (Ubuntu 16.04기준)
설정 파일 맨 위의
listen=NO
listen_ipv6=YES
부분을 다음과 같이
listen=YES
listen_ipv6=NO
로 수정합니다.
그리고 설정 파일의 맨 마지막에 아래 구문을 추가합니다. (패시브 모드를 사용할 수 있도록 설정하는 부분입니다.)
저장 후 vsftpd 서비스를 재시작 합니다.
추가로 iptables 및 EC2 보안 그룹(AWS를 사용하고 있다면)에서 ftp 포트(20,21)와 위에서 설정한 패시브 모드 연결 포트(1100 ~ 1110)가
차단되어 있지 않은지 확인하고, 차단되어 있다면 풀어줍니다.
여기까지 잘 설정하셨다면 이제 ftp 연결이 정상적으로 될 것입니다.
그런데, 위 설정을 모두 적용했음에도 불구하고 여전히 "서버가 알 수 없는 주소와 수동형 응답을 보냈습니다. 대신 서버 주소를 사용합니다."
가 표시되는 경우가 있습니다.
원인은 ftp 서버가 공유기에 연결되어있기 때문입니다. (AWS EC2에서도 동일한 문제가 발생합니다.)
이해를 돕기 위해 다음 그림을 보겠습니다.
3,4를 보면 ftp 서버가 공유기와 연결되어있기 때문에 ftp 클라이언트에게 사설 ip 주소를 보냅니다.
ftp 클라이언트는 분명 111.111.111.111이라는 ip로 요청을 보냈는데 응답이 192.168.219.101(사설 ip)로 돌아왔기 때문에
"서버가 알 수 없는 주소와 수동형 응답을 보냈습니다."가 표시되는 겁니다.
해결 방법은 vsftpd 설정 파일에 한 줄만 추가하면 됩니다.
이렇게 마지막 부분에 해당 구문을 추가한 후 vsftpd를 재시작합니다.
이제 "서버가 알 수 없는 주소와 수동형 응답을 보냈습니다." 가 뜨지 않고 정상적으로 ftp 연결이 이뤄집니다.
'Dev > Linux' 카테고리의 다른 글
[Ubuntu] 서비스 확인, 시작, 중지, 재시작 (0) | 2022.09.01 |
---|