LainyZine: 프로그래머 가이드 🐣

Ubuntu에 Tailscale VPN 설치하는 방법

Tailscale은 Zero config VPN을 구현하는 서비스입니다. Windows, macOS, Ubuntu 등의 리눅스 배포판과 Synology DSM 등을 지원하며, Tailscale 클라이언트가 설치된 기기들을 하나의 네트워크로 연결해줍니다.

Tailscale VPN 네트워크 구성. 공식 사이트에서 인용

Tailscale로 VPN 네트워크를 구성하면 번거로운 설정 없이, 원격에서도 홈 네트워크처럼 다른 장비들에 접근하는 것이 가능합니다. 이 글에서는 Ubuntu 리눅스 배포판에 Tailscale을 설치하는 방법에 대해서 소개합니다.

Ubuntu 용 Tailscale 설치하는 방법

Tailscale은 공식적으로 macOS, Windows, Linux, iOS, Android를 지원하고 있으며 아래 페이지에서 OS 별 공식 클라이언트를 다운로드 받을 수 있습니다.

아직 실험적인 버전이지만 Synology DSM 용 클라이언트도 별도로 개발되고 있으니 참고해주세요.

Tailscale에서는 Amazon Linux, Arch Linux, CentOS, Fedora, RHEL, Oracle Linux, Ubuntu 등 다양한 리눅스 배포판을 지원하고 있습니다. 배포판 별 자세한 설치 방법에 대해서는 다운로드 페이지에서 확인할 수 있습니다.

다운로드 페이지에서 리눅스 배포판 별 설치 방법을 확인할 수 있습니다

이 글에서는 Ubuntu 18.04 기준으로 설치를 진행해보겠습니다. 같은 Ubuntu 배포판이라도 (큰 차이는 없지만) 버전에 따라서 명령어가 다를 수 있으므로 정확한 버전을 확인하고 진행해주세요.

먼저 다음 명령어로 Tailscale 패키지 저장소를 추가해줍니다.

$ curl -fsSL https://pkgs.tailscale.com/stable/ubuntu/bionic.gpg | sudo apt-key add -
$ curl -fsSL https://pkgs.tailscale.com/stable/ubuntu/bionic.list | sudo tee /etc/apt/sources.list.d/tailscale.list

패키지 목록을 업데이트하고 tailscale 패키지를 설치합니다. 다음 명령어들을 관리자 권한으로 실행합니다.

$ sudo apt-get update
$ sudo apt-get install tailscale

패키지로 제공되기 때문에 설치는 간단하게 끝났습니다. 🥳

Tailscale 실행하고 계정 인증하는 방법

Tailscale 계정은 이미 가지고 있다고 가정합니다. 아직 계정이 없다면 먼저 계정을 생성하고 진행해주세요.

계정이 준비되고, tailscale 패키지 설치가 완료되었으면 관리자 권한으로 tailscale up을 실행합니다.

$ sudo tailscale up
To authenticate, visit:

        https://login.tailscale.com/a/3339d666107c

인증을 위한 로그인 페이지 주소가 나오고, 터미널은 대기 상태가 됩니다. 출력된 주소를 복사해서 웹브라우저에서 실행합니다.

Tailscale 로그인을 진행합니다

로그인 페이지가 나타나면 자신의 Tailscale 계정으로 로그인해주세요.

로그인에 성공하였습니다

로그인에 성공하면 웹 브라우저에는 ‘Authorization successful’ 메시지가 나타납니다. 터미널에도 Success. 메시지가 나타납니다.

Success.

여기까지 Tailscale 셋업을 마쳤습니다. 이제 Ubuntu에는 tailscale0 네트워크 인터페이스가 추가되었습니다. 이 인터페이스를 통해서 Tailscale 네트워크에 연결된 다른 장비들에 접근하거나, 다른 장비들에서 이 Ubuntu 머신으로 접근하는 게 가능합니다.

ip addr show tailscale0 명령어로 Tailscale 네트워크의 ip를 확인할 수 있습니다.

$ ip addr show tailscale0
5: tailscale0: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 1280 qdisc fq_codel state UNKNOWN group default qlen 500
    link/none
    inet 100.82.111.33/32 scope global tailscale0
       valid_lft forever preferred_lft forever
    inet6 fd43:cd96:6252:ef5a/128 scope global
       valid_lft forever preferred_lft forever
    inet6 fe03:e332/64 scope link stable-privacy
       valid_lft forever preferred_lft forever

중간에 보이는 100.82.111.33이 Tailscale 네트워크의 주소가 됩니다.

접속이 잘 되어있는지는 Tailscale 관리자 페이지에서도 확인할 수 있습니다. Machines 페이지로 이동해서 앞서 추가한 Ubuntu 머신의 상태를 확인해봅니다.

머신 목록에서 방금 클라이언트를 설치한 Ubuntu를 확인할 수 있습니다

IP나 Host 이름을 Machines 목록에서 찾아봅니다. 맨 앞에 초록색 동그라미가 있다면 현재 Tailscale 네트워크에 접속되어있는 상태입니다.

Ubnutu에 Nginx 서버 띄우고 접속해보기

간단한 테스트를 위해서 방금 Tailscale을 설치한 Ubuntu에 Nginx 서버를 실행하고, Tailscale VPN 네트워크의 데스크톱에서 Nginx 서버에 접속해보겠습니다.

Ubuntu에서 다음 명령어로 nginx를 설치합니다.

$ sudo apt-get install nginx

설치하고 나면 자동으로 서버가 실행됩니다. curl로 서버 동작 여부를 확인해봅니다.

$ curl 0.0.0.0:80
<!DOCTYPE html>
<html>
<head>
<title>Welcome to nginx!</title>
...

이번에는 Tailscale 클라이언트가 설치된 데스크톱(여기서는 맥)에서 웹브라우저를 열고 앞서 확인한 IP로 접속해봅니다. 80 포트가 기본이기 때문에 IP만 입력해주면됩니다.

Tailscale 네트워크로 접속한 Ubuntu의 Nginx 서버

위와 같이 Nginx 서버가 나타나면 성공입니다! 😎

보너스: MagicDNS 옵션이 활성화되어있으면 Admin에서 확인할 수 있는 Host 이름으로도 접속할 수 있습니다.

magicDNS를 사용하면 머신 이름만으로도 접속이 가능합니다
LainyZine은 쿠팡 파트너스 활동에 따른 수수료를 제공받습니다.