IP공유기(넷타미 제품 : 모델 ER-1400)를 사용할 때 포트포워딩
고수님들께...
포트포워딩 구성 현황(집)
ISP는 한국통신이고, 상품은 Megapass Premium(공인 유동 IP)을 사용중입니다.
이는 리눅스(레드햇 9 - 최소설치) eth0에 연결되고, eth1은 스위칭 허브에 연결됩니다.
스위칭 허브에는 보통 서너대의 컴퓨터가 연결됩니다(Win98, Win2000, WinXP).
IP 현황
eth0 : 공인 유동 IP = blacksmile.net(CoDNS.com에서 동적으로 도메인과 유동 IP를 연결시켜줌)
eth1 : 192.168.1.1
Win98 : 192.168.1.22
Win2000 : 192.168.1.33
WinXP : 192.168.1.99
WinXP(SP2)에 IIS 설치하여 FTP 서버(포트:21)를 구동중입니다.(192.168.1.99:21)
아래의 리스트는 리눅스에서 포트포워딩을 하기 위해서 iptables의 설정 상태입니다.
마스크레이딩
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
포트포워딩
iptables -t nat -A PREROUTING -p tcp -i eth0 --dport 60020 -j DNAT --to 192.168.1.99:20
iptables -t nat -A PREROUTING -p udp -i eth0 --dport 60020 -j DNAT --to 192.168.1.99:20
iptables -t nat -A PREROUTING -p tcp -i eth0 --dport 60021 -j DNAT --to 192.168.1.99:21
iptables -t nat -A PREROUTING -p udp -i eth0 --dport 60021 -j DNAT --to 192.168.1.99:21
(위 60020(tcp, udp), 60021(tcp, udp)는 /etc/services 파일에 등록시켰습니다.)
192.168.1.99의 FTP 서버에 접속을 하기 위해 외부에서 접근하는 형태는
ISP는 한국통신이고, 상품은 Megapass Lite(공인 유동 IP)를 사용중입니다.
이는 IP공유기(넷타미 제품 : 모델 ER-1400)에 연결되고, 이 공유기에 스위칭 허브가 연결됩니다.
스위칭 허브에는 회사에서 사용중인 컴퓨터들이 접속이 됩니다(IP공유기에서 자동으로 설정되는 사내 유동IP로 설정됨).
회사의 어떤 컴퓨터(위 환경에 연결된 컴퓨터)에서 알FTP v3.4 나 Total Commander 6.3a의 FTP 기능을 이용해서
blacksmile.net:60021 로 연결하면 접속할때 나타나는 메시지는 나타나는데.. 아래와 같은 에러가 발생합니다.
(접속시 Passive Mode 설정 안함)
500 Invalid PORT Command.
위와 같은 로그를 남깁니다. 그리고 서버쪽 목록이 나타나질 않습니다. 왜 그런거죠?
(참고로 IP공유기를 사용하지 않으면 정상적으로 연결이 됩니다. 물론 목록도 나타나지요.)
만약에 다른건 모두 그대로 두고 60020을 20으로, 60021을 21로 포트포워딩을 하게되면
iptables -t nat -A PREROUTING -p tcp -i eth0 --dport 20 -j DNAT --to 192.168.1.99:20
iptables -t nat -A PREROUTING -p udp -i eth0 --dport 20 -j DNAT --to 192.168.1.99:20
iptables -t nat -A PREROUTING -p tcp -i eth0 --dport 21 -j DNAT --to 192.168.1.99:21
iptables -t nat -A PREROUTING -p udp -i eth0 --dport 21 -j DNAT --to 192.168.1.99:21
위 처럼 포트포워딩을 한 상태에서 IP공유기를 통해 FTP 서버(192.168.1.99:21)를 접근하게 되면
이상없이 접속이 됩니다.
아는 분은 답변 좀 부탁 드립니다.
500 Invalid PORT Command. 메세지는 서버가 클라이
500 Invalid PORT Command.
메세지는 서버가 클라이언트로 접속을 하지 못하기
때문에 나옵니다.
회사에서 서버의 60021 포트로 접속을 하면
서버에서 클라이언트로도 접속을 시도합니다.(액티브
모드일경우 패시브모드는 그반대)
이때 서버는 클라이언트가 보내준 자신(클라이언트)의
주소로 접속을 시도하는데 이주소가 공유기 하단에있는
컴이므로 사설아이피일것이고 이주소로는 서버가
접속을 시도해도 접속이 이루어 지지 않습니다.
그래서 그런 메세지가 나옵니다.
클아이언트의 공유기를 제거하면 이상없이 될꺼구요.
그리고
다른건 모두 그대로 두고 60020을 20으로, 60021을 21로 포트포워딩을 했을때 이상없이 되는건 저도 이해가안돼네요.
클라이언트가 공유기에 물려 있으면 패시브 모드로 해야
되는걸로 알고 있는데 저도 알수가 없군요.
우리 항시 웃고 살아요 ^^
댓글 달기