VPN 설정 · 12 min read · Dec 20, 2025

Ubuntu 22.04에서 Tinc로 P2P VPN 설정하기

Tinc는 메쉬 VPN 네트워크를 생성하는 데 사용할 수 있는 무료 오픈 소스 VPN 소프트웨어입니다. 여러 플랫폼에 설치할 수 있는 작고 강력한 VPN 데몬입니다. Tinc는 여러 호스트 간에 안전한 개인 네트워크를 생성하기 위해 암호화 및 터널링을 사용합니다.

Tinc는 암호화, 압축 및 자동 메쉬 라우팅과 같은 추가 기능을 제공합니다. 이를 통해 서로 다른 위치에 있는 서버 간에 안전하고 분산된 개인 네트워크를 생성할 수 있습니다.

이 튜토리얼에서는 여러 Ubuntu 22.04 서버를 사용하여 tinc로 P2P VPN 서버를 설정합니다. 세 개의 서로 다른 서버로 P2P VPN을 설정합니다. 각 서버는 안전한 VPN 연결을 통해 연결할 수 있습니다.

이 튜토리얼의 끝에서 각 서버가 안전한 내부 VPN 연결을 통해 서로 통신할 수 있도록 tinc P2P VPN 설치를 확인합니다.

전제 조건

이 튜토리얼을 완료하려면 다음 요구 사항이 필요합니다:

  • Ubuntu 22.04 서버 운영 체제를 사용하는 두 개 이상의 Linux 서버.
  • sudo/root 관리자 권한이 있는 비루트 사용자.

이 예제에서는 세 개의 서로 다른 Ubuntu 서버를 사용합니다. 아래는 자세한 서버 목록입니다:

Hostname        Extrernal IP  
------------------------------  
tinc-ubuntu     192.168.5.30  
client1         192.168.5.120  
client2         192.168.5.122

그게 전부입니다. 이러한 요구 사항이 준비되면 각 서버에서 tinc 설치를 시작할 수 있습니다.

Tinc VPN 설치하기

tinc은 Linux, BSD, MacOS 또는 Windows와 같은 여러 운영 체제에 설치할 수 있는 작고 강력한 가상 사설망(VPN) 데몬입니다. Tinc은 중앙 노드에 의존하지 않고 메쉬 VPN 네트워크를 생성할 수 있게 해줍니다. Tinc VPN은 터널링 및 암호화를 사용하여 인터넷의 호스트 간에 안전한 개인 네트워크를 생성합니다.

이 단계에서는 모든 Ubuntu 서버에 Tinc VPN 서버를 설치합니다.

기본적으로 tinc 패키지는 Ubuntu 리포지토리에서 사용할 수 있습니다. 시작하기 전에 아래의 ‘apt update’ 명령을 입력하여 Ubuntu 패키지 인덱스를 업데이트하고 새로 고칩니다.

sudo apt update

다음 apt 명령을 사용하여 Ubuntu 22.04 리포지토리에서 사용할 수 있는 ‘tinc‘ 패키지를 확인합니다.

sudo apt info tinc

이 글을 작성할 당시, Ubuntu 22.04 리포지토리는 tinc v1.0.36을 제공합니다.

출력:

show tinc package

‘apt install’ 명령을 입력하여 ‘tinc‘ 패키지를 설치합니다. 프롬프트가 표시되면 y를 입력하여 확인하고 ENTER를 눌러 진행합니다.

sudo apt install tinc

출력:

install tinc

tinc VPN이 설치되면 다음으로 ufw 방화벽을 설정하고 tinc에서 사용할 기본 포트를 엽니다.

UFW 방화벽 구성하기

이 단계에서는 모든 Ubuntu 서버에서 기본 방화벽 ufw를 설정합니다. OpenSSH 서비스를 추가하고, tinc VPN 포트를 추가한 다음 ufw 방화벽을 시작하고 활성화합니다.

먼저 아래의 ufw 명령을 사용하여 OpenSSH 서비스를 추가합니다. 출력 ‘ 규칙이 업데이트되었습니다 ‘는 새 규칙이 ufw에 추가되었음을 확인합니다.

sudo ufw allow OpenSSH

다음 명령을 입력하여 tinc VPN에서 사용할 포트 655를 추가합니다.

sudo ufw allow 655

이제 아래의 ufw 명령을 실행하여 ufw 방화벽을 시작하고 활성화합니다. 프롬프트가 표시되면 y를 입력하여 확인하고 ENTER를 눌러 진행합니다.

sudo ufw enable

출력 메시지 ‘ 방화벽이 활성화되었으며 시스템 시작 시 활성화됩니다 ‘는 ufw 방화벽이 실행 중이며 활성화되었음을 확인합니다. 이는 ufw가 시스템 시작 시 자동으로 실행됨을 의미합니다.

출력:

setup ufw

마지막으로 다음 명령을 입력하여 ufw 방화벽 상태를 확인합니다. 출력 ‘ 상태: 활성 ‘는 방화벽이 실행 중임을 확인합니다. 또한 포트 655에 대한 모든 연결이 허용됩니다.

sudo ufw status

출력:

verify ufw

모든 서버에 tinc VPN이 설치되고 ufw 방화벽이 활성화되었으므로 이제 이러한 서버 간에 P2P VPN을 설정하고 구성할 준비가 되었습니다.

Tinc VPN 서버 구성하기

이 단계에서는 세 개의 서로 다른 Ubuntu 서버 간에 P2P VPN 서버를 설정합니다.

각 서버에서 수행해야 할 작업 목록은 다음과 같습니다:

  • tinc VPN 구성을 저장할 새 디렉토리와 세부 호스트 구성을 저장할 새 ‘hosts‘ 디렉토리를 생성합니다.
  • 각 서버에서 기본 tinc 구성으로 tinc VPN 구성 ‘tinc.conf‘를 생성합니다.
  • 각 서버에 대한 호스트 구성을 생성합니다.
  • tinc VPN에서 사용할 공개 및 개인 키를 생성합니다.
  • ‘tinc-up ‘ 또는 ‘tinc-down’ VPN 인터페이스 및 네트워크를 활성화하는 데 사용할 간단한 bash 스크립트를 생성합니다. 또한 이러한 스크립트 ‘tinc-up ‘ 및 ‘tinc-down ‘을 실행 가능하게 만들어야 합니다.

이 점을 염두에 두고 이제 tinc VPN 서버 구성을 시작하겠습니다.

첫 번째 서버 구성: tinc-ubuntu

먼저 첫 번째 노드/서버 ‘tinc-ubuntu‘에서 tinc를 설정합니다.

다음 명령을 실행하여 새 VPN 프로젝트 디렉토리 ‘/etc/tinc/testVPN/‘를 생성합니다. 또한 ‘/etc/tinc/testVPN/‘ 디렉토리 내에 ‘hosts‘ 디렉토리를 생성합니다.

‘/etc/tinc/testVPN’ 디렉토리로 VPN 서버를 ‘testVPN‘이라는 이름으로 설정합니다.

mkdir -p /etc/tinc/testVPN/hosts

다음으로 아래의 nano 편집기 명령을 사용하여 새 tinc VPN 구성 파일 ‘/etc/tinc/testVPN/tinc.conf’를 생성합니다.

nano /etc/tinc/testVPN/tinc.conf

파일에 다음 줄을 추가합니다. 이러한 구성으로 이 서버의 이름을 ‘tinc_ubuntu‘로 지정하고 tinc VPN의 인터페이스 이름을 ‘tun0‘으로 설정하며 IPv4를 사용합니다.

또한 tinc VPN 노드의 ‘이름‘은 ‘-‘ 또는 마이너스를 사용하지 않아야 합니다. ‘-‘ 마이너스를 ‘_’ 언더스코어로 대체할 수 있습니다.

Name = tinc_ubuntu  
AddressFamily = ipv4  
Interface = tun0

작업이 끝나면 파일 ‘/etc/tinc/testVPN/tinc.conf ‘를 저장하고 종료합니다.

다음으로 아래의 nano 편집기 명령을 사용하여 새 호스트 구성 ‘/etc/tinc/testVPN/hosts/tinc_ubuntu‘를 생성합니다. 호스트 구성 파일 이름은 ‘ tinc.conf ‘ 파일에서 정의한 호스트의 ‘이름’과 일치해야 합니다.

nano /etc/tinc/testVPN/hosts/tinc_ubuntu

파일에 다음 줄을 추가합니다. 여기서 ‘주소‘는 이 서버의 외부 IP 주소입니다. ‘서브넷‘은 tinc VPN을 실행하는 데 사용될 내부 IP 주소입니다. 환경에 맞게 세부 IP 주소를 변경하고 조정할 수 있습니다.

Address = 192.168.5.30  
Subnet = 10.0.0.1/32

작업이 끝나면 파일 ‘ /etc/tinc/testVPN/hosts/tinc_ubuntu’를 저장하고 닫습니다.

다음으로 아래의 ‘tincd‘ 명령을 실행하여 RSA 공개 및 개인 키를 생성합니다. RSA 공개 키는 자동으로 호스트 구성 파일 ‘/etc/tinc/testVPN/hosts/tinc_ubuntu‘에 저장되며, RSA 개인 키는 ‘/etc/tinc/testVPN/rsa_key.priv‘에 저장됩니다.

sudo tincd -n testVPN -K4096

출력:

generate RSA key

RSA 공개 및 개인 키가 생성된 후, 다음으로 tinc VPN 네트워크를 활성화하고 비활성화하는 데 사용할 새 bash 스크립트를 생성합니다.

아래의 nano 편집기 명령을 사용하여 새 bash 스크립트 ‘ /etc/tinc/testVPN/tinc-up ‘를 생성합니다. 이 스크립트는 tinc VPN 네트워크 인터페이스를 활성화하는 데 사용됩니다.

sudo nano /etc/tinc/testVPN/tinc-up

파일에 다음 줄을 추가합니다. 아래의 IP 주소 서브넷을 ‘tinc.conf’ 파일에서 정의한 VPN 네트워크 서브넷으로 변경해야 합니다.

#!/bin/sh  
ip link set $INTERFACE up  
ip addr add 10.0.0.1/32 dev $INTERFACE  
ip route add 10.0.0.0/24 dev $INTERFACE

작업이 끝나면 파일 ‘ /etc/tinc/testVPN/tinc-up’를 저장하고 닫습니다.

이제 tinc VPN 네트워크 인터페이스를 비활성화하는 데 사용할 새 bash 스크립트 ‘/etc/tinc/testVPN/tinc-down’을 생성합니다.

sudo nano /etc/tinc/testVPN/tinc-down

파일에 다음 줄을 추가합니다.

#!/bin/sh  
ip route del 10.0.0.0/24 dev $INTERFACE  
ip addr del 10.0.0.1/32 dev $INTERFACE  
ip link set $INTERFACE down

작업이 끝나면 파일 ‘/etc/tinc/testVPN/tinc-down’을 저장하고 닫습니다.

이제 아래의 chmod 명령을 실행하여 두 개의 bash 스크립트 ‘ /etc/tinc/testVPN/tinc-up ‘ 및 ‘/etc/tinc/testVPN/tinc-down’을 실행 가능하게 만듭니다.

sudo chmod +x /etc/tinc/testVPN/tinc-*

이제 아래의 tree 명령을 사용하여 ‘/etc/tinc/testVPN/‘ 디렉토리의 파일 목록을 확인할 수 있습니다.

tree /etc/tinc/testVPN/

다음과 같은 출력을 받아야 합니다:

list files tinc-ubuntu

이로써 첫 번째 서버 ‘tinc-ubuntu’에서 tinc VPN 구성을 완료했습니다. 다음으로 ‘ client1 ‘ 및 ‘ client2 ‘ 서버에서 tinc VPN을 설정합니다.

두 번째 서버 구성: client1

다음 명령을 실행하여 새 VPN 프로젝트 디렉토리 ‘/etc/tinc/testVPN/‘를 생성합니다. 또한 ‘/etc/tinc/testVPN/‘ 디렉토리 내에 ‘hosts‘ 디렉토리를 생성합니다.

‘/etc/tinc/testVPN’ 디렉토리로 VPN 서버를 ‘testVPN‘이라는 이름으로 설정합니다.

mkdir -p /etc/tinc/testVPN/hosts

다음으로 아래의 nano 편집기 명령을 사용하여 새 tinc VPN 구성 파일 ‘/etc/tinc/testVPN/tinc.conf’를 생성합니다.

nano /etc/tinc/testVPN/tinc.conf

파일에 다음 줄을 추가합니다. 이러한 구성으로 이 서버의 이름을 ‘client1‘로 지정하고 tinc VPN의 인터페이스 이름을 ‘tun0‘으로 설정하며 IPv4를 사용합니다. 또한 tinc VPN ‘client1‘이 tinc VPN ‘tinc_ubuntu‘ 및 ‘client2‘에 연결할 수 있도록 허용합니다.

Name = client1  
AddressFamily = ipv4  
Interface = tun0  
  
ConnectTo = tinc_ubuntu  
ConnectTo = client2

작업이 끝나면 파일 ‘/etc/tinc/testVPN/tinc.conf’를 저장하고 종료합니다.

다음으로 아래의 nano 편집기 명령을 사용하여 새 호스트 구성 ‘/etc/tinc/testVPN/hosts/client1‘을 생성합니다. 호스트 구성 파일 이름은 ‘ tinc.conf ‘ 파일에서 정의한 호스트의 ‘이름’과 일치해야 합니다.

sudo nano /etc/tinc/testVPN/hosts/client1

파일에 다음 줄을 추가합니다. 여기서 ‘주소‘는 이 서버의 외부 IP 주소입니다. ‘서브넷‘은 tinc VPN을 실행하는 데 사용될 내부 IP 주소입니다. 환경에 맞게 세부 IP 주소를 변경하고 조정할 수 있습니다.

Address = 192.168.5.120  
Subnet = 10.0.0.2/32

작업이 끝나면 파일 ‘/etc/tinc/testVPN/hosts/client1 ‘을 저장하고 닫습니다.

다음으로 아래의 ‘tincd’ 명령을 실행하여 RSA 공개 및 개인 키를 생성합니다. RSA 공개 키는 자동으로 호스트 구성 파일 ‘/etc/tinc/testVPN/hosts/client1’에 저장되며, RSA 개인 키는 ‘/etc/tinc/testVPN/rsa_key.priv ‘에 저장됩니다.

sudo tincd -n testVPN -K4096

출력:

generate rsa key client1

RSA 공개 및 개인 키가 생성된 후, 다음으로 tinc VPN 네트워크를 활성화하고 비활성화하는 데 사용할 새 bash 스크립트를 생성합니다.

아래의 nano 편집기 명령을 사용하여 새 bash 스크립트 ‘/etc/tinc/testVPN/tinc-up ‘를 생성합니다. 이 스크립트는 tinc VPN 네트워크 인터페이스를 활성화하는 데 사용됩니다.

sudo nano /etc/tinc/testVPN/tinc-up

파일에 다음 줄을 추가합니다. 아래의 IP 주소 서브넷을 ‘tinc.conf’ 파일에서 정의한 VPN 네트워크 서브넷으로 변경해야 합니다.

#!/bin/sh  
ip link set $INTERFACE up  
ip addr add 10.0.0.2/32 dev $INTERFACE  
ip route add 10.0.0.0/24 dev $INTERFACE

작업이 끝나면 파일 ‘/etc/tinc/testVPN/tinc-up’를 저장하고 닫습니다.

이제 tinc VPN 네트워크 인터페이스를 비활성화하는 데 사용할 새 bash 스크립트 ‘/etc/tinc/testVPN/tinc-down’을 생성합니다.

sudo nano /etc/tinc/testVPN/tinc-down

파일에 다음 줄을 추가합니다.

#!/bin/sh  
ip route del 10.0.0.0/24 dev $INTERFACE  
ip addr del 10.0.0.2/32 dev $INTERFACE  
ip link set $INTERFACE down

작업이 끝나면 파일 ‘/etc/tinc/testVPN/tinc-down ‘을 저장하고 닫습니다.

이제 아래의 chmod 명령을 실행하여 두 개의 bash 스크립트 ‘/etc/tinc/testVPN/tinc-up ‘ 및 ‘/etc/tinc/testVPN/tinc-down ‘을 실행 가능하게 만듭니다.

sudo chmod +x /etc/tinc/testVPN/tinc-*

이제 아래의 tree 명령을 사용하여 ‘/etc/tinc/testVPN/‘ 디렉토리의 파일 목록을 확인할 수 있습니다.

tree /etc/tinc/testVPN/

다음과 같은 출력을 받아야 합니다:

list files

이로써 두 번째 서버 ‘client1‘에서 tinc VPN 구성을 완료했습니다. 다음으로 ‘client2‘ 서버에서 tinc VPN을 설정합니다.

세 번째 서버 구성: client2

다음 명령을 실행하여 새 VPN 프로젝트 디렉토리 ‘/etc/tinc/testVPN/‘를 생성합니다. 또한 ‘/etc/tinc/testVPN/‘ 디렉토리 내에 ‘hosts‘ 디렉토리를 생성합니다.

‘/etc/tinc/testVPN’ 디렉토리로 VPN 서버를 ‘testVPN‘이라는 이름으로 설정합니다.

mkdir -p /etc/tinc/testVPN/hosts

다음으로 아래의 nano 편집기 명령을 사용하여 새 tinc VPN 구성 파일 ‘/etc/tinc/testVPN/tinc.conf’를 생성합니다.

nano /etc/tinc/testVPN/tinc.conf

파일에 다음 줄을 추가합니다. 이러한 구성으로 이 서버의 이름을 ‘client2‘로 지정하고 tinc VPN의 인터페이스 이름을 ‘tun0‘으로 설정하며 IPv4를 사용합니다. 또한 tinc VPN ‘client2‘가 tinc VPN ‘tinc_ubuntu‘ 및 ‘client1‘에 연결할 수 있도록 허용합니다.

Name = client2  
AddressFamily = ipv4  
Interface = tun0  
  
ConnectTo = tinc_ubuntu  
ConnectTo = client1

작업이 끝나면 파일 ‘/etc/tinc/testVPN/tinc.conf’를 저장하고 종료합니다.

다음으로 아래의 nano 편집기 명령을 사용하여 새 호스트 구성 ‘/etc/tinc/testVPN/hosts/client2‘을 생성합니다. 호스트 구성 파일 이름은 ‘ tinc.conf ‘ 파일에서 정의한 호스트의 ‘이름’과 일치해야 합니다.

sudo nano /etc/tinc/testVPN/hosts/client2

파일에 다음 줄을 추가합니다. 여기서 ‘주소‘는 이 서버의 외부 IP 주소입니다. ‘서브넷‘은 tinc VPN을 실행하는 데 사용될 내부 IP 주소입니다. 환경에 맞게 세부 IP 주소를 변경하고 조정할 수 있습니다.

Address = 192.168.5.122  
Subnet = 10.0.0.3/32

작업이 끝나면 파일 ‘/etc/tinc/testVPN/hosts/client2’을 저장하고 닫습니다.

다음으로 아래의 ‘tincd’ 명령을 실행하여 RSA 공개 및 개인 키를 생성합니다. RSA 공개 키는 자동으로 호스트 구성 파일 ‘/etc/tinc/testVPN/hosts/client2‘에 저장되며, RSA 개인 키는 ‘/etc/tinc/testVPN/rsa_key.priv‘에 저장됩니다.

sudo tincd -n testVPN -K4096

출력:

generate rsa key

RSA 공개 및 개인 키가 생성된 후, 다음으로 tinc VPN 네트워크를 활성화하고 비활성화하는 데 사용할 새 bash 스크립트를 생성합니다.

아래의 nano 편집기 명령을 사용하여 새 bash 스크립트 ‘/etc/tinc/testVPN/tinc-up ‘를 생성합니다. 이 스크립트는 tinc VPN 네트워크 인터페이스를 활성화하는 데 사용됩니다.

sudo nano /etc/tinc/testVPN/tinc-up

파일에 다음 줄을 추가합니다. 아래의 IP 주소 서브넷을 ‘tinc.conf’ 파일에서 정의한 VPN 네트워크 서브넷으로 변경해야 합니다.

#!/bin/sh  
ip link set $INTERFACE up  
ip addr add 10.0.0.3/32 dev $INTERFACE  
ip route add 10.0.0.0/24 dev $INTERFACE

작업이 끝나면 파일 ‘/etc/tinc/testVPN/tinc-up’를 저장하고 닫습니다.

이제 tinc VPN 네트워크 인터페이스를 비활성화하는 데 사용할 새 bash 스크립트 ‘/etc/tinc/testVPN/tinc-down’을 생성합니다.

sudo nano /etc/tinc/testVPN/tinc-down

파일에 다음 줄을 추가합니다.

#!/bin/sh  
ip route del 10.0.0.0/24 dev $INTERFACE  
ip addr del 10.0.0.3/32 dev $INTERFACE  
ip link set $INTERFACE down

작업이 끝나면 파일 ‘/etc/tinc/testVPN/tinc-down ‘을 저장하고 닫습니다.

이제 아래의 chmod 명령을 실행하여 두 개의 bash 스크립트 ‘/etc/tinc/testVPN/tinc-up ‘ 및 ‘/etc/tinc/testVPN/tinc-down ‘을 실행 가능하게 만듭니다.

sudo chmod +x /etc/tinc/testVPN/tinc-*

이제 아래의 tree 명령을 사용하여 ‘/etc/tinc/testVPN/‘ 디렉토리의 파일 목록을 확인할 수 있습니다.

tree /etc/tinc/testVPN/

다음과 같은 출력을 받아야 합니다:

list files client2

이로써 세 번째 서버 ‘client2‘에서 tinc VPN 구성을 완료했습니다. 이제 모든 Ubuntu 서버에서 tinc VPN 구성을 완료했습니다. 다음 단계에서는 scp(SSH를 통한 안전한 복사)를 통해 각 서버의 RSA 공개 키를 교환합니다.

호스트/서버 간 키 교환

이 단계에서는 각 서버의 호스트 구성 파일을 서로 복사합니다. 여기에는 호스트 구성 파일에 저장된 RSA 공개 키가 포함됩니다.

아래는 복사해야 할 호스트 파일의 세부 정보입니다:

  • tinc-ubuntu‘ 서버에서 ‘client1‘ 및 ‘client2‘ 서버로 호스트 파일을 복사합니다.
  • client1‘ 서버에서 ‘tinc-ubuntu‘ 및 ‘client2‘ 서버로 호스트 파일을 복사합니다.
  • client2‘ 서버에서 ‘tinc-ubuntu‘ 및 ‘client1‘ 서버로 호스트 파일을 복사합니다.

그게 전부입니다.

‘tinc-ubuntu’ 서버에서 다음 scp 명령을 실행하여 호스트 파일 ‘/etc/tinc/testVPN/hosts/tinc_ubuntu‘를 ‘client1‘ 및 ‘client2‘ 서버로 복사합니다. 대상 디렉토리는 ‘/etc/tinc/testVPN/hosts/‘ 디렉토리여야 합니다.

scp /etc/tinc/testVPN/hosts/tinc_ubuntu [email protected]:/etc/tinc/testVPN/hosts/  
scp /etc/tinc/testVPN/hosts/tinc_ubuntu [email protected]:/etc/tinc/testVPN/hosts/

출력:

‘client1’ 서버에서 다음 scp 명령을 실행하여 호스트 파일 ‘/etc/tinc/testVPN/hosts/client1‘을 ‘tinc-ubuntu‘ 및 ‘client2‘ 서버로 복사합니다. 대상 디렉토리는 ‘/etc/tinc/testVPN/hosts/‘ 디렉토리여야 합니다.

scp /etc/tinc/testVPN/hosts/client1 [email protected]:/etc/tinc/testVPN/hosts/  
scp /etc/tinc/testVPN/hosts/client1 [email protected]:/etc/tinc/testVPN/hosts/

출력:

scp client1

‘client2’ 서버에서 다음 scp 명령을 실행하여 호스트 파일 ‘/etc/tinc/testVPN/hosts/client2‘를 ‘tinc-ubuntu‘ 및 ‘client1‘ 서버로 복사합니다. 대상 디렉토리는 ‘/etc/tinc/testVPN/hosts/‘ 디렉토리여야 합니다.

scp /etc/tinc/testVPN/hosts/client2 [email protected]:/etc/tinc/testVPN/hosts/  
scp /etc/tinc/testVPN/hosts/client2 [email protected]:/etc/tinc/testVPN/hosts/

출력:

scp client2

이로써 각 서버의 ‘/etc/tinc/testVPN/hosts/‘ 디렉토리에서 세 개의 호스트 파일을 확인할 수 있습니다. 아래의 tree 명령을 사용하여 ‘/etc/tinc/testVPN/hosts/‘의 파일 목록을 확인합니다.

tree /etc/tinc/testVPN/hosts/

출력 - 각 서버에서 호스트 파일 ‘tinc_ubuntu‘, ‘client1‘, ‘client2‘를 확인할 수 있어야 합니다.

list host files

이 시점에서 모든 서버에 tinc VPN을 구성하고 호스트 파일 및 RSA 공개 키를 모든 서버에 복사했습니다. 이를 통해 여러 노드/서버 간의 P2P 연결을 위한 tinc VPN 설치를 확인할 준비가 되었습니다.

P2P VPN 서버 테스트하기

이 단계에서는 tinc VPN 설치를 확인하기 위해 각 서버에서 tinc를 수동으로 실행하고 tun0 인터페이스의 로컬 IP 주소로 한 서버에서 다른 서버로 ping을 실행합니다.

다음 명령을 사용하여 각 서버에서 tinc VPN 서버를 실행합니다.

sudo tincd -n testVPN -D -d3

아래는 세 개의 Ubuntu 서버 tinc-ubuntu, client1, client2의 자세한 출력입니다.

test tinc peer-to-peer vpn

다음으로 새 터미널 세션을 열고 ‘tinc-ubuntu’ 서버에 연결합니다. 그런 다음 client1 ‘10.0.0.2’client2 ‘10.0.0.3’의 내부 IP 주소로 ping 명령을 실행합니다.

ping 10.0.0.1 -c3  
ping 10.0.0.2 -c3

성공하면 각 서버에서 응답을 받아야 합니다.

ping tinc-ubuntu

이제 새 터미널 세션을 열고 ‘client1’ 서버에 연결합니다. 그런 다음 tinc-ubuntu ‘10.0.0.1’client2 ‘10.0.0.3’의 내부 IP 주소로 ping 명령을 실행합니다.

ping 10.0.0.1 -c3  
ping 10.0.0.3 -c3

성공하면 각 서버에서 응답을 받아야 합니다.

ping client1

마지막으로 새 터미널 세션을 열고 ‘client2’ 서버에 연결합니다. 그런 다음 tinc-ubuntu ‘10.0.0.1’client1 ‘10.0.0.2’의 내부 IP 주소로 ping 명령을 실행합니다.

ping 10.0.0.1 -c3  
ping 10.0.0.2 -c3

성공하면 각 서버에서 응답을 받아야 합니다.

ping client2

이제 각 서버가 tinc VPN의 내부 IP 주소를 통해 서로 연결할 수 있습니다. 이는 P2P VPN 서버를 생성하기 위한 tinc VPN 배포가 완료되고 성공적으로 완료되었음을 의미합니다.

각 터미널 세션으로 돌아가서 tinc VPN 프로세스에 대해 ‘Ctrl + \ ‘를 눌러 종료합니다. 다음 단계에서는 tinc VPN을 systemd 서비스로 시작하고 활성화합니다.

Tinc VPN 서비스 시작 및 활성화하기

다음 systemctl 명령 유틸리티를 실행하여 tinc VPN 서비스를 시작하고 활성화합니다. 이 명령은 모든 Ubuntu 서버에서 실행해야 합니다. 이 예제에서 VPN 이름은 ‘testVPN‘입니다. 이 이름을 원하는 이름으로 변경할 수 있습니다.

이로써 tinc VPN 서버는 백그라운드에서 실행되며 시스템 시작 시 자동으로 시작됩니다.

sudo systemctl start tinc@testVPN  
sudo systemctl enable tinc@testVPN

아래의 systemctl 명령 유틸리티를 입력하여 tinc VPN 서비스를 확인합니다.

sudo systemctl status tinc@testVPN

다음과 같은 출력을 받아야 합니다 - 출력 ‘ 활성(실행 중) ‘는 tinc VPN이 실행 중임을 확인하며, 출력 ‘ …; 활성화됨;… ‘는 tinc VPN이 활성화되어 있으며 시스템 시작 시 자동으로 실행될 것임을 확인합니다.

start tinc vpn service

또한 tinc VPN 서버에 의해 생성된 tun0 인터페이스를 확인할 수 있습니다. 각 서버에서 다음 ip 명령을 입력하여 tun0 인터페이스의 세부 정보를 확인합니다.

ip addr show tun0

‘tinc-ubuntu’ 서버에서는 tun0 인터페이스에 IP 주소 10.0.0.1이 표시되어야 합니다. ‘client1’ 머신에서는 tun0 인터페이스에 IP 주소 10.0.0.2가 표시되어야 합니다. 마지막으로 client2 머신에서는 tun0 인터페이스에 IP 주소 10.0.0.3가 표시되어야 합니다.

결론

이 튜토리얼에서는 Ubuntu 22.04 서버에서 tinc VPN 서버를 사용하여 P2P VPN을 생성하고 설정하는 방법을 배웠습니다. 여러 Ubuntu 서버에서 방화벽이 활성화된 상태로 tinc VPN을 설정하는 자세한 프로세스를 배웠습니다.

Tinc은 여러 운영 체제에 설치할 수 있는 간단하면서도 강력한 VPN 서버 소프트웨어입니다. 현재 tinc VPN 배포에 더 많은 서버/노드를 추가할 수 있습니다. 또한 중앙 노드에 의존하지 않고 메쉬 VPN을 생성할 수 있습니다.

tinc 공식 문서에서 tinc VPN 서버에 대해 자세히 알아보세요.

Share: X/Twitter LinkedIn

새 게시물을 받은 편지함에서 받기

스팸은 없습니다. 언제든지 구독 해지 가능합니다.