공유기 사용시 ftp ??
글쓴이: kkachy / 작성시간: 금, 2004/04/16 - 6:34오후
공유기 밑단의 PC ip는 192.168.~~ 이고 이게 211.x.x.100으로 바꿔서
나갑니다...
이 PC가 울 회사 ftp server로 접속 후 netstat 로 보면...
(참고로 ftp port를 11121로 바꿔서 서비스중)
들어 올때는
211.x.x.100:11121로 들어오는데,,
나갈때는
192.168.~~로 나가서,,
접속이 되지 않습니다...
공인 ip로 들어오는 pc는 괜찮은데.. 공유기 밑의 pc는 접속이 안되네여..
방화벽만 열심히 봤는데 결구 linux 문제인데..
해결 방법이 없을까요?
혹시 아시는 분 계시면 답변 부탁드립니다.
Forums:
솔직히 무슨 말인지 잘 모르겠습니다. ^^
에 사실 잘 이해가 안가는데요, 일단 공유기같은 NAT환경하의 일반적인
에러라고 생각하고 적습니다.
PC 공유기 서버
192.168.X.X 211.X.X.100 100.X.X.X
----------->1 ------------------->2-------------------->3
<----------3---------------------2<---------------------1
대략 저렇게 데이터를 생각해보면, 우선
들어오고 나간다는 개념이 좀 애매했습니다.
FTP는 두개의 세션을 사용하는데, 컨트롤과 데이타 세션입니다.
컨트롤은 kkachy님께서 지정하신 바로 그 포트이고
데이타 포트는 아마도 거기서 -1하는 것이거나 랜덤이 될 것입니다.
문제는 바로 데이타 포트입니다. 보통 컨트롤 세션등의 커넥션은
클라이언트가 서버에 요청을 하게 됩니다. 그래서 나갈때 아무런 이상이 없는 것이죠.
그런데 데이타 세션은 클라이언트가 컨트롤 포트로, 내 몇번 포트로 전송하라
라고 이야기해서 서버가 세션을 시작합니다.
즉 클라이언트가 내 IP가 192.168.X.X구~ 포트 X번 열었으니 그리로
전송해~ 라고 이야기한걸 서버가 곧이 곧대로 및고 그대로 syn패킷을 보내지만
왠걸~ 192.168.대는 사설아이피이니 당연히 갈 수 없죠
이를 해결하기 위해 passive모드를 사용하세요 <- 이게 핵심 -_-
passive모드를 사용하면 서버가 가만히 기다리고
데이타 커넥션 역시 클라이언트가 먼저 syn패킷을 보냅니다.
요새 대부분의 클라이언트들은 passive모드를 지원하니
메뉴얼을 잘 읽어보시고 성공하세요!
C++, 그리고 C++....
죽어도 C++
댓글 달기