외부에서 인터넷 망으로 내PC 쪽에 정보를 요구할 때는 IP(192.168.XXX.XXX)+포트번호(80 등)로 접근해 옵니다. (이 요청을 받아들여서 정보를 내줄 수 있으면? 그게 바로 서버죠.)
반대로 내PC가 어떤 서버에 정보를 요구하려면 서버쪽 IP+포트번호로 접근해야 합니다.
예를 들어 볼까요?
우리가 웹브라우저에 www.naver.com 이라고 치면 실제로는 www.naver.com:80 이라고 자동적으로 80포트가 붙어서 접근하도록 조치됩니다. 네이버의 IP는 125.209.222.142 니까… DNS(도메인 네임 서버)를 거치면서 125.209.222.142:80 이라고 전환되어 네이버 홈페이지로 들어가겠죠.
공유기를 쓰면 별도의 개방설정(DMZ 등)을 하지 않는 이상 모든 포트는 공유기 단에서 막히게 됩니다.
그래서 공유기에서 포트포워딩 기능을 쓰면 포트를 제한적으로 개방할 수 있습니다. 그러면 “연결된 특정 PC 혹은 스마트폰(의 특정 포트) 까지” 데이터 요청이 전달되게끔 구성하는 첫 단추를 꿰는거죠.
IpTime / 네티스 등의 공유기들은 “포트포워딩”이라고 해당 기술을 칭하는데
디링크 / 티피링크 공유기들은 “가상서버”라고 부릅니다. Dlink / TPLink 공유기의 “포트포워딩” 항목은 연결된 PC쪽 포트를 제한하지 않기때문에 IpTime 쪽에서 정의하는 “포트포워딩”과 차이가 있고, 상대적으로 보안에 취약합니다…(만 그래도 필요하면 쓰죠. -_-;;)
어쨋든,
DIR-615 에서 가상서버/포트포워딩 메뉴를 이용한 사례를 보여드리겠습니다.
(구축사례를 보여드리는 게 이해가 빠를 것 같네요.)
일단 인터넷 선을 PC에 직결합니다.(공유기를 연결하지 않는 겁니다. 아니면 공유기를 물리되 DMZ 기능으로 모든 포트를 개방합니다.)
https://www.yougetsignal.com/tools/open-ports/
위 링크에서 인터넷 회선이 특정 포트를 열어줬는지 확인합니다.(IP 확인은 덤입니다.)
웹서버를 운영하려면 80포트(http), 443포트(https)가 열려있어야 되고, SSH 서비스의 기본 포트는 22번이니까(SSH용 포트는 임의로 설정할 수 있습니다.) 세 포트(80, 443, 22)를 Check해 줬네요.
체크한 포트들이 닫혀있다면 회선업체 측에 전화해서 풀어달라고 하던가, 다른 포트를 체크해 보던가, 업체를 갈아타던가 하셔야겠고요,
열려 있다면?
명령프롬프트(Win키+R 누르고 command 라고 입력)에서 ipconfig 라고 쳐서, 연결된 PC의 내부망 주소를 확인합니다. 저는 무선랜 연결이라 무선 LAN 어댑터의 IPv4 주소를 확인했는데, 유선랜 연결시에는 이더넷 어댑터에서 IPv4 주소를 확인하면 됩니다.
이제 DIR-615 공유기를 연결하고 “고급 – 가상서버” 메뉴로 진입합니다.
가상 서버 목록에서 체크박스를 하나 체크해 주고,
“이름”은 본인이 알아볼 수 있게끔 적당히,
“IP주소”는 위에서 확인한 내부망(사설망) IPv4 주소를 적고,
“공인 포트”는 외부망에서 진입할 때 입력하게 될 포트를 적고, (만약 22번 포트를 입력하면… 내 IP주소가 222:222:222:222일 경우 Putty 같은 터미널 프로그램에서 222:222:222:222:22라고 쳤을 때 등록한 PC로 접속되는 겁니다.)
“사설 포트”는 내부망(사설망) IPv4 주소의 포트를 적고, (만약 22라고 입력하면… 222:222:222:222:22 라고 쳐서 접속시도 했을 때 192.168.X.X:22로 연결됩니다. 123 이라고 입력하면 192.168.X.X:123 으로 연결되겠죠.)
“프로토콜”은 TCP, “스케쥴”은 항상, “수신 필터”는 모두 허용 으로 지정하고
설정을 저장합니다.
끝입니다. 이렇게 하면 22번 포트가 열린 겁니다.
https://www.yougetsignal.com/tools/open-ports/
https://www.whatsmyip.org/port-scanner/
에서 22번 포트 테스트 해보면 열린 것을 확인할 수 있을겁니다.
참, 아직 안끝났네요.
192.168.XXX.XXX 형식의 내부망 주소는 연결을 끊었다가 재연결하면 바뀌는 경향이 있죠? 그래서 이걸 고정해주는 작업을 해야 합니다.
“설정 – 네트워크 설정” 메뉴로 들어가서…
제일 하단의 “동적 DHCP 클라이언트 수”에 가보면 연결된 PC의 내부망(사설) IP주소가 보일겁니다.
“보유”를 클릭하면 “DHCP RESERVATION 추가/편집” 항목으로 복사될 텐데, “저장”을 누르면 “DHCP 주소 보유 리스트”로 넘어갈 겁니다. 이제 설정을 저장하면 연결을 끊더라도 다음번 연결시 주소가 바뀌지 않습니다.
————————————–
“고급 – 포트포워딩” 메뉴는 좀더 간단합니다.
사설 IP의 포트를 지정하는 항목이 없기 때문인데요, 앞서 언급했듯이 보안에는 좀더 취약하겠죠?
iptime 공유기를 써보신 분들께서는 “가상서버” 기능이 좀더 익숙하실텐데, 외부망 포트를 범위로 지정할 수 있다는 점이 가상서버 기능과 구분되는 부분이라고 보시면 되겠습니다.
저는 TCP/UDP 80포트, 443포트를 열어서 웹서버를 가동시켜 봤는데요, 열려있는 서버의 상태가 궁금하시면 https://www.sobi.tips 로 접속해 보세요. 연결이 되면 서버가 켜져있는 겁니다.ㅋ