원격 연결과 고정 IP 과정을 마쳤으면 그 다음은 공유기 설정이다.
안해도 집 혹은 라즈베리파이를 설치한 장소의 내부망 사용에는 문제가 없지만 밖에서 집에 있는 라즈베리파이에 접속한다던지 하는 경우엔 공유기 설정이 필수이다.
포트포워딩
공유기의 포트포워딩 기능을 구성해야 외부에서 내 공인IP로 접속했을 때 포트에 따라 어느 PC로 접속할지 공유기가 판단할 수 있다.
공유기가 다른 회사의 제품이라 하더라도 대부분의 기능은 같기에 크게 걱정할 필요 없다.
iptime 기준 - 고급 설정 -> NAT/라우터 관리 -> 포트포워드 설정
디링크 기준 - 고급 -> 포트 포워딩
입력하는 폼은 비슷하다.
이름 - 내가 알아볼 수 있도록 적당히 구분해서 넣는다.
IP - 내부 주소를 뜻한다. 라즈베리파이에 적용할 경우 라즈베리파이의 고정IP
TCP / UDP 포트 - 포워딩할 포트와 종류. 모르겠으면 둘 다 하면 된다.
예를 들어 SSH를 밖에서도 접속하고 싶다면
이름 - Raspberry_SSH
IP - 192.168.0.2
포트 - 22(SSH의 기본 포트)
이런식으로 작성하고 적용하면 끝.
잘 동작하는지 확인하고 싶다면 SSH를 실행해서 라즈베리파이의 내부 주소가 아닌 내 공유기의 공인 IP를 넣고 테스트하면 된다.
DDNS
IP주소를 매번 외워서 치는 것도 일이고, 혹여나 IP주소가 바뀌면 정말이지 난감하다.
이를 위해서 공유기에는 DDNS라는 서비스가 존재하는데, 고정된 문자 주소를 입력하면 알아서 IP주소로 접속해주는 기능이다.
iptime 기준 - 고급 설정 -> 특수 기능 -> DDNS 설정
디링크 기준 - 고급 -> DDNS
간단하게 쓰고자 하는 호스트명과 몇 가지 정보만 넣으면 끝난다.
하지만 공유기 DDNS 서비스의 단점이 있는데...
서비스에 대한 품질이 과연 좋은가?에 대해 의문이다.
실제로 나는 디링크 공유기를 쓰면서 dlinkddns.com을 이용했는데, 별일이야 있겠냐며 여러 코드들을 해당 주소로 사용했다.
그러던 어느날 서비스 종료한다는 공지 메일을 받았고, 당사와 도메인사의 계약기간이 끝났으므로 도메인사에서 50%할인해서 구매할 수 있다고 했다.
청천벽력과도 같은 소식에 부랴부랴 코드들을 수정했고, 결국 갱신일에 보이지 않던, 놓쳤던 부분들에서 장애들이 발생했다.
이 뿐만 아니라 도메인 서버가 장애가 발생할 경우는 내 쪽에 아무런 문제가 없다 하더라도 어쩔 수 없다. 장애 복구시까지 기다려야 한다.
그 외에도 IP주소 변경시 변경된 주소가 즉각 반영되지 않는 서비스도 있다.
이러한 이유로 많은 사람들이 사설 서비스를 이용한다.
이에 주로 사용하는 무료 도메인 서비스가 duckdns.org이다.
Duck DNS - install
linux cron if your linux install is running a crontab, then you can use a cron job to keep updated we can see this with ps -ef | grep cr[o]n if this returns nothing - then go and read up how to install cron for your distribution of linux. also confirm that
www.duckdns.org
회원가입을 진행하면 내 계정 정보가 나오고 도메인을 등록할 수 있는 폼이 나온다.
도메인을 등록하고 나면 나의 IP와 도메인을 연결해줘야 한다.
도메인을 등록할때 IP가 같이 등록되지만, 내 IP가 바뀌면 자동으로 갱신되지는 않는다.
공유기 자체에서 DDNS에 사설 도메인을 연결시켜 자동으로 IP를 갱신해주는 서비스가 있는 공유기도 있다. (iptime은 안되는듯 하다)
디링크 공유기의 DDNS 설정 화면
지금은 디링크에서 duckdns를 지원하지만 지원되지 않는 공유기를 위해 설명하자면
호스트명 : xxxx.duckdns.org
아이디 : duckdns 계정 아이디
비밀번호 : duckdns의 토큰 비밀번호 입력
순서로 입력하면 된다.
공유기에서 지원하지 않는다면 공유기에 연결된 PC에서 주기적으로 갱신시켜줘야한다. 갱신이 언제 이루어질지 모르므로 24시간 켜놓는 라즈베리파이에 작업을 해두는게 좋다.
해당 부분은 이래 링크를 참고하자
Duck DNS - install
linux cron if your linux install is running a crontab, then you can use a cron job to keep updated we can see this with ps -ef | grep cr[o]n if this returns nothing - then go and read up how to install cron for your distribution of linux. also confirm that
www.duckdns.org
중간에 Operating System에서 pi를 선택하고 아래에 내가 등록한 도메인을 선택하면
라즈베리파이에서 5분 주기로 duckdns에 IP를 갱신시키는 방법이 나온다.
구글도메인
좀 더 있어보이는 나만의 도메인을 갖고 싶다면 유료 도메인을 구매해서 사용할 수 있다.
무료 도메인과 차이점은 여러 가지가 있지만 도메인 자체를 구입하게 되므로 CNAME(Canonical name) 설정이 가능하다.
CNAME은 서브도메인이라고 보면 된다. 이 블로그의 CNAME은 blog라고 보면 된다.
각각의 CNAME을 여러개 만들어 서로 다른 성향의 사이트 여러개를 운영할 수 있다.
또한 별도 구매 형식으로 Google Workspace에 가입하면 이메일의 도메인도 사용이 가능해진다!
구글에서는 도메인에 따라 다르지만 싸게는 약 $12로 1년 사용권을 구매 가능하다.
영구 소유권은.. 없다. 예전에 구매하려고 알아봤으나 미친 가격 + 되게 귀찮게 해서 스팸처리했다. 알고보니 이제 이 도메인은 당신거에요하고 몇 년 뒤에 잠수타는 경우가 많다.
도메인 구매는 국내에도 여러 사이트가 있으니 비교를 잘 해보고 구입하기 바란다.
몇 달전, 도메인 업체에서 랜섬웨어 감염 사태가 발생했으니 말이다. 나는 이것 저것 비교하기 귀찮아서 가장 믿음직해보이는 구글을 이용했다.
구글 도메인을 구매했다면 마찬가지로 연결 작업을 해줘야 한다.
도메인 관리 페이지에서 DNS -> 고급 설정 표시 클릭 -> 동적 DNS 관리 -> 새 레코드 만들기를 클릭한다.
호스트 이름에는 @를 입력하고 저장을 누르면 맨 위 리소스 레코드에 항목이 생성된다. (아직 IP는 0.0.0.0이다.)
다시 동적 DNS 항목으로 내려와서 새로 추가된 레코드 우측의 사용자 인증 정보 보기를 클릭한다.
우측의 보기 버튼을 누르면 암호화된 내용이 보일 것이다. 일단 메모해두자.
다음은 라즈베리파이 차례이다. 무료 도메인과 마찬가지로 IP주소가 변경됐을 때를 대비해서 자동으로 갱신시켜주도록 해야한다.
아래 명령어를 실행해서 ddclient를 설치하자.
sudo apt-get install ddclient -y
설치가 완료되면 설정 파일을 건드릴 차례다.
sudo nano /etc/ddclient.conf
위에 메모해둔 사용자 정보를 쓸 차례이다.
아래 폼에 맞춰서 작성하자.
daemon=300
ssl=yes
use=web
protocol=googledomains
login=사용자 이름
password=비밀번호
zone=구매한 도메인
구매한 도메인
저장(Ctrl + O), 종료(Ctrl + X)한 후 아래 명령을 쳐서 확인해보자
sudo ddclient -query
마지막 줄의 address is 뒤에 내 외부 IP가 뜬다면 성공이다.
마지막으로 구글도메인 페이지에서 리소스 레코드에 추가한 레코드에 내 IP가 뜬다면 모든 설정이 완료된다.
여기까지 라즈베리파이의 아주 기본적인 설정은 다 끝났다.
추가적인 설정은 APM(apache, php, mariadb)가 있고, 나스처럼 데이터 서버 용도라면 ftp, dlna등이 있다.
이정도는 설치해줘야 서버로서 내가 뭔가를 하고 싶을 때 바로바로 쓸 맛이 난다.
'라즈베리파이' 카테고리의 다른 글
라즈베리파이 - php 설치 (0) | 2022.08.04 |
---|---|
라즈베리파이 - Apache2 설치 (0) | 2022.08.04 |
라즈베리파이 - 고정 IP 할당 (0) | 2022.08.04 |
라즈베리파이 - 업데이트 실패 (0) | 2022.08.03 |
라즈베리파이 - 원격 접속(XRDP) (0) | 2022.08.03 |