홈 서버 일기 (3) - 외부 연결 (포트포워딩 및 공유기 설정)

이승현·2023년 11월 14일
1

홈 서버 일기

목록 보기
3/3
post-thumbnail

💻 포트포워딩(port forwarding)

네트워킹상에서 데이터 패킷의 유입을 한 포트에서 다른 포트로 연결해주는 것을 의미한다. 특히 공유기를 사용해 인터넷을 사용하는 경우 외부 ip와 내부 ip가 존재하게 된다.

  • 외부 ip : 외부 인터넷 회선에서 들어오는 ip 주소
  • 내부 ip : 외부 ip 주소를 받아 각각의 컴퓨터 기기에 할당되는 주소
    그냥 외부 아이피로 접근을 시도하면 당연히 공유기 입장에서는 어느 기기에 연결을 해주어야 하는지 알지 못하기 때문에 접근이 거부된다. 따라서 (외부 ip:포트)를 (내부 ip:포트)를 서로 연결해준다. 그러면 외부에서 특정 위치의 컴퓨터에 데이터를 요청해야 하는 서버 시스템 구축에서 위치를 알려줄 수 있게 된다.
    그러니까 정리하자면 네트워크라는 길에 이정표를 꽂아주는 것이라 보면 된다.

✅ Ubuntu 포트포워딩

현재 웹 서버인 80번 포트를 다른 포트 번호로 포워딩해주어야 한다.
sudo iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 80
해당 명령어는 현재 80번 포트를 다른 80번으로 매핑해주는 것을 의미한다.

sudo iptables -t nat -L --line-numbers 를 입력하면 현재 어떤 포트가 열려있는지 확인할 수 있다.

이 목록에서 가장 왼쪽의 번호를 기분으로 포워딩을 삭제할 수도 있다.
iptables -t nat -D PREROUTING 번호

✅ 공유기 포트포워딩 설정 (LG 공유기)

다음 공유기에 대한 설정을 해주어야 한다.

공유기를 사용하고 있다면 다음과 같이 기본 게이트웨이를 확인할 수 있다.

접속하면 이렇게 확인할 수 있다.
LG U+를 사용하기 때문에 이렇게 나타나고 공유기마다 다른 페이지 모양이 나타난다.

여기서 패스워드는 공유기에 붙어있는 웹 암호를 의미하고
code는 하단의 이미지 캡쳐를 입력하면 된다.

네트워크 설정에서 NAT 설정

포트포워딩에 추가를 하면 된다.
이때 내부 IP 주소를 입력해야 하는데 이는 서버 PC의 내부 IP를 의미한다.

리눅스에서 내부 IP는 ifconfig을 검색하면 찾을 수 있다.

내부 포트는 80으로 설정하고 추가를 누르면 이후에 외부에서는 서버 컴퓨터의 외부 IP로 접속할 수 있게 된다.

findip
외부 ip의 경우 다음과 같은 페이지에서 쉽게 찾을 수 있다.

✅ 도메인 생성하기

DDNS를 설정하면 아주 쉽게 도메인을 등록할 수 있다.

✌ DDNS

Dynamic Domain Name System의 약자인 DDNS는 동적으로 실시간 갱신이 가능한 DNS를 의미한다. 유동적인 IP 주소를 통해 ip가 바뀌어도 도메인 값은 변경되지 않게 된다. 네이버의 경우 naver.com 이라는 도메인은 지금까지도 바뀐적이 없지만 IP를 여러 개 사용할수도 필요에 따라 변경할 수도 있다.

no-ip에 접속한다.

외부 ip와 함께 도메인을 만들고 난 다음

no-ip에서 만든 계정과 비밀번호, 도메인을 입력하면 된다.

📣 주의사항

물론 해당 공유기의 내부망(wifi나 같은 공유기 사용시)에 있을경우에는 내부 IP로 들어가야 한다. 호스트 도메인이 잘 작동하는지 확인하기 위해서는 외부망에서 접근해야한다. 즉 데이터를 활용해 도메인으로 들어가야 한다.


(추가) 노트북 연결 설정

노트북을 사용해 웹 서버를 만들려고하니 아무래도 노트북을 켜놓아야 할텐데 계속 열려있는게 신경쓰여서 닫힌 상태에서도 계속 서버가 돌아갈 수 있도록 설정이 필요했다.

해당 파일에 접근해서 24번 문장을 변경해주면 간단하게 설정 가능!

0개의 댓글