업데이트로 돌아가기
New releaseSep 1, 2026

TrustTunnel v1.1.0

오픈소스 VPN 프로토콜로, TCP, UDP, ICMP 트래픽을 HTTPS를 통해 터널링하여 DPI와 트래픽 제한을 우회합니다. 분할 터널링, SOCKS5 프록시, 사용자 지정 DNS, 크로스 플랫폼 클라이언트를 제공합니다.

공유

TrustTunnel

클라이언트 · App Store · Play Store


목차


소개

TrustTunnel은 AdGuard VPN에서 원래 개발한 현대적이고 오픈 소스인 VPN 프로토콜로, 이제 누구나 사용하고 감사할 수 있습니다.

일반적인 트레이드오프 없이 빠르고 안전하며 신뢰할 수 있는 VPN 연결을 제공합니다. 설계상 TrustTunnel 트래픽은 일반 HTTPS 트래픽과 구별할 수 없어, 강력한 개인정보 보호를 유지하면서 스로틀링 및 심층 패킷 검사를 우회할 수 있습니다.

TrustTunnel 프로젝트에는 VPN 엔드포인트(이 저장소), 클라이언트용 라이브러리 및 CLI, GUI 애플리케이션이 포함됩니다.

서버 기능

  • VPN 프로토콜: 이 라이브러리는 HTTP/1.1, HTTP/2 및 QUIC와 호환되는 VPN 프로토콜을 구현합니다. 일반 네트워크 트래픽을 모방하여 감지 및 차단이 불가능해집니다.

  • 유연한 트래픽 터널링: TrustTunnel은 클라이언트와의 TCP, UDP 및 ICMP 트래픽을 터널링할 수 있습니다.

  • 플랫폼 호환성: 서버는 Linux 및 macOS와 호환됩니다. 클라이언트는 Android, Apple, Windows 및 Linux에서 사용할 수 있습니다.


클라이언트 기능

  • 트래픽 터널링: 이 라이브러리는 클라이언트에서 엔드포인트로, 그리고 다시 돌아오는 TCP, UDP 및 ICMP 트래픽을 터널링할 수 있습니다.

  • 크로스 플랫폼 지원: Linux, macOS 및 Windows 플랫폼을 지원하여 다양한 운영 체제에서 일관된 경험을 제공합니다.

  • 시스템 전체 터널 및 SOCKS5 프록시: 가상 네트워크 인터페이스를 활용한 시스템 전체 터널 및 SOCKS5 프록시로 설정할 수 있습니다.

  • 분할 터널링: 이 라이브러리는 분할 터널링을 지원하여 사용자가 특정 도메인 또는 호스트에 대한 연결을 VPN 엔드포인트를 통한 라우팅에서 제외하거나, 반대로 제외 목록을 기준으로 특정 도메인 또는 호스트에 대한 연결만 엔드포인트를 통해 라우팅할 수 있습니다.

  • 사용자 정의 DNS 업스트림: 사용자는 VPN 엔드포인트를 통해 라우팅되는 DNS 쿼리에 사용되는 사용자 정의 DNS 업스트림을 지정할 수 있습니다.


빠른 시작

엔드포인트 설정

엔드포인트 설치

다음 명령으로 실행할 수 있는 설치 스크립트가 제공됩니다:

curl -fsSL https://raw.githubusercontent.com/TrustTunnel/TrustTunnel/refs/heads/master/scripts/install.sh | sh -s -

설치 스크립트는 적절한 시스템 아키텍처에 맞는 최신 GitHub 릴리스에서 미리 빌드된 패키지를 다운로드하여 /opt/trusttunnel에 압축을 풉니다. 위 명령 끝에 -o DIR 플래그를 지정하여 출력 디렉터리를 재정의할 수 있습니다.

특정 버전(최신 버전 대신)을 설치하려면 -V <version>을 사용하세요:

curl -fsSL https://raw.githubusercontent.com/TrustTunnel/TrustTunnel/refs/heads/master/scripts/install.sh | sh -s - -V <version>

[!NOTE] 사전 빌드된 패키지는 linux-x86_64, linux-aarch64macos-universal(Intel 및 Apple Silicon) 아키텍처에서 사용할 수 있습니다.

엔드포인트 업데이트

설치 스크립트는 항상 최신 버전을 설치합니다. 따라서 설치를 업데이트하려면 설치 명령을 다시 실행하세요:

curl -fsSL https://raw.githubusercontent.com/TrustTunnel/TrustTunnel/refs/heads/master/scripts/install.sh | sh -s -

이렇게 하면 설치 프로그램이 다시 실행되고 설치 디렉터리(기본값 /opt/trusttunnel 또는 -o DIR로 지정한 디렉터리)의 바이너리가 교체됩니다.

[!NOTE] 업데이트하기 전에 엔드포인트를 중지하는 것을 잊지 마세요:

sudo systemctl stop trusttunnel

업데이트 후 엔드포인트를 다시 시작하려면:

sudo systemctl start trusttunnel

엔드포인트 설정 마법사

엔드포인트 구성 방법에 대한 자세한 문서는 CONFIGURATION.md를 참조하세요.

설치 디렉터리에는 엔드포인트 실행에 필요한 구성 파일 생성을 돕는 setup_wizard 바이너리가 포함되어 있습니다:

cd /opt/trusttunnel/
./setup_wizard -h

설정 마법사는 대화형 모드를 지원하므로 실행하면 엔드포인트 구성에 필요한 데이터를 묻습니다.

cd /opt/trusttunnel/
sudo ./setup_wizard

[!NOTE] TLS 인증서를 올바르게 관리하려면 sudo가 필요합니다.

마법사는 다음 필드를 묻습니다. 일부 필드는 안전하게 사용할 수 있는 기본값이 있습니다:

  • 수신 대기할 주소 - 엔드포인트가 수신 대기할 주소를 지정합니다. 기본 배포(모든 인터페이스에서 HTTPS)의 경우 0.0.0.0:443을 사용합니다. Docker 포트 매핑 443:8443으로 실행하는 경우 0.0.0.0:8443으로 설정합니다.

  • 자격 증명 파일 경로 - 인증을 위한 사용자 자격 증명이 저장될 경로입니다.

  • 사용자 이름 - 사용자가 인증에 사용할 사용자 이름입니다.

  • 비밀번호 - 사용자의 비밀번호입니다.

  • 사용자를 더 추가하시겠습니까? - 더 많은 사용자를 추가하려면 yes를 선택하고, 구성 과정을 계속하려면 no를 선택합니다.

  • 규칙 파일 경로 - 필터링 규칙을 저장할 경로입니다.

  • 연결 필터링 규칙 - 다음을 기준으로 사용자 연결을 허용하거나 차단하는 규칙을 추가할 수 있습니다:

    • 클라이언트 IP 주소
    • TLS 랜덤 접두사
    • 마스크가 있는 TLS 랜덤

    모든 연결을 허용하려면 n을 누릅니다.

  • 라이브러리 설정을 저장할 파일 경로 - 기본 엔드포인트 구성 파일을 저장할 경로입니다.

  • 인증서 선택 - TLS 인증서를 획득하는 방법을 선택합니다:

    • Let's Encrypt 인증서 발급(공개 도메인 필요) - 설정 마법사에 ACME 지원이 내장되어 있으며 Let's Encrypt에서 무료로 공개적으로 신뢰할 수 있는 인증서를 자동으로 획득할 수 있습니다. 다음이 필요합니다:
      • 서버 IP 주소를 가리키는 등록된 도메인
      • 인터넷에서 접근 가능한 포트 80(HTTP-01 챌린지용) 또는
      • DNS TXT 레코드를 추가할 수 있는 기능(DNS-01 챌린지용)
    • 자체 서명 인증서 생성 - 테스트 또는 CLI 클라이언트만 사용할 때 적합합니다. 참고: Flutter 클라이언트는 아직 자체 서명 인증서를 지원하지 않습니다.
    • 기존 인증서 경로 제공 - 다른 CA 또는 certbot과 같은 도구에서 얻은 자체 인증서 파일을 사용합니다.
  • TLS 호스트 설정을 저장할 파일 경로 - TLS 호스트 설정 파일을 저장할 경로입니다.

이 시점에서 필요한 모든 구성 파일이 생성되어 디스크에 저장됩니다.

Let's Encrypt 인증서 수명 주기

설정 마법사는 초기 설정 중에 Let's Encrypt 인증서를 얻을 수 있지만, 시간이 지남에 따라 인증서가 유효하게 유지되도록 하는 책임(갱신 및 서비스 재로드/재시작)은 사용자에게 있습니다.

Certbot을 사용하여 인증서를 관리하고 자동으로 갱신하는 경우 CERT_RENEWAL.md의 가이드를 따르세요.

엔드포인트 실행

설치된 패키지에는 trusttunnel.service.template이라는 systemd 서비스 템플릿이 포함되어 있습니다.

이 템플릿을 사용하여 엔드포인트를 systemd 서비스로 설정할 수 있습니다:

[!NOTE] 템플릿 파일은 TrustTunnel 엔드포인트 바이너리와 모든 구성 파일이 /opt/trusttunnel에 있고 기본 파일 이름을 사용한다고 가정합니다. 다른 경로를 사용한 경우 템플릿을 수정하세요.

cd /opt/trusttunnel/
cp trusttunnel.service.template /etc/systemd/system/trusttunnel.service
sudo systemctl daemon-reload
sudo systemctl enable --now trusttunnel

클라이언트 구성 내보내기

엔드포인트 바이너리는 두 가지 형식으로 클라이언트 구성을 생성할 수 있습니다:

딥링크 형식(기본값)

QR 코드 및 모바일 앱에 적합한 간결한 tt://? URI를 생성합니다:

# <client_name> - 이름이 구성에 포함될 클라이언트
# <address> - 클라이언트가 연결에 사용할 `ip`, `ip:port`, `domain` 또는 `domain:port`
#           `ip` 또는 `domain`만 지정하면 `listen_address` 필드의 포트가 사용됩니다.
cd /opt/trusttunnel/
./trusttunnel_endpoint vpn.toml hosts.toml -c <client_name> -a <address>

# 또는 형식을 명시적으로 지정:
./trusttunnel_endpoint vpn.toml hosts.toml -c <client_name> -a <address> --format deeplink

이렇게 하면 다음과 같이 사용할 수 있는 tt://? 딥링크 URI가 출력됩니다:

추가 옵션을 제공할 수도 있습니다:

  • --name <display_name>: 클라이언트 앱에서 서버의 사용자 정의 표시 이름을 설정합니다.
  • --dns-upstream <dns_upstream>: 클라이언트의 DNS 업스트림을 지정합니다. IP 주소 또는 보안 DNS URI(예: tls://1.1.1.1, https://dns.google/dns-query)일 수 있습니다. 이 플래그는 여러 번 사용하여 DNS 업스트림 목록을 제공할 수 있습니다.

사용자 정의 이름 및 DNS 업스트림을 사용한 예:

./trusttunnel_endpoint vpn.toml hosts.toml -c <client_name> -a <address> \
    --name "My Secure VPN" \
    --dns-upstream 1.1.1.1 --dns-upstream tls://8.8.8.8

--generate-client-random-prefix가 사용되면 엔드포인트는 생성된 값에 대한 허용 규칙을 vpn.toml에서 참조되는 rules.toml 파일에 추가합니다.

참고: 인증서가 신뢰할 수 있는 CA(예: Let's Encrypt)에 의해 서명된 경우 간결함을 유지하기 위해 딥링크에서 자동으로 생략됩니다. 자체 서명 인증서는 자동으로 포함됩니다.

TOML 형식(CLI 클라이언트용)

전통적인 TOML 구성 파일을 생성합니다:

cd /opt/trusttunnel/
./trusttunnel_endpoint vpn.toml hosts.toml -c <client_name> -a <public_ip> --format toml

CLI 클라이언트에 적합한 TOML 구성 파일을 출력합니다.

두 형식 모두 엔드포인트에 연결하는 데 필요한 모든 정보를 포함합니다. 설정 지침은 TrustTunnel Flutter 클라이언트 문서를 참조하세요.

축하합니다! 엔드포인트 설정이 완료되었습니다!

클라이언트 설정

엔드포인트에 연결하는 데 사용할 수 있는 여러 클라이언트가 있습니다. 전체 목록은 클라이언트 섹션을 참조하세요. 아래 지침은 공식 CLI 클라이언트 설정을 다룹니다.

클라이언트 설치

Linux / macOS

다음 명령으로 실행할 수 있는 설치 스크립트가 제공됩니다:

curl -fsSL https://raw.githubusercontent.com/TrustTunnel/TrustTunnelClient/refs/heads/master/scripts/install.sh | sh -s -

설치 스크립트는 적절한 시스템 아키텍처에 맞는 최신 GitHub 릴리스에서 미리 빌드된 패키지를 다운로드하여 /opt/trusttunnel_client에 압축을 풉니다. 위 명령 끝에 -o DIR 플래그를 지정하여 출력 디렉터리를 재정의할 수 있습니다.

[!NOTE] 설치 스크립트는 linux용 x86_64, aarch64, armv7, mips 및 mipsel 아키텍처와 macos용 arm64 및 x86_64를 지원합니다.

Windows

TrustTunnel 클라이언트 릴리스 페이지에서 최신 릴리스 아카이브를 다운로드하세요.

아카이브를 원하는 디렉터리에 추출합니다(예: C:\TrustTunnel\).

라우터 설정

라우터 배포의 경우 라우터별 클라이언트 설치 가이드를 참조하세요.

클라이언트 업데이트

Linux / macOS

설치 스크립트는 항상 최신 버전을 설치합니다. 따라서 설치를 업데이트하려면 설치 명령을 다시 실행하세요:

curl -fsSL https://raw.githubusercontent.com/TrustTunnel/TrustTunnelClient/refs/heads/master/scripts/install.sh | sh -s -

이렇게 하면 설치 프로그램이 다시 실행되고 설치 디렉터리(기본값 /opt/trusttunnel_client 또는 -o DIR로 지정한 디렉터리)의 바이너리가 교체됩니다.

[!NOTE] 업데이트하기 전에 클라이언트를 중지하는 것을 잊지 마세요(예: 실행 중인 프로세스 중지).

Windows

릴리스 페이지에서 최신 릴리스를 다운로드하여 설치 디렉터리의 파일을 교체하세요.

클라이언트 설정 마법사

설치 디렉터리에는 클라이언트 실행에 필요한 구성 파일 생성을 돕는 setup_wizard 바이너리가 포함되어 있습니다.

Linux / macOS
cd /opt/trusttunnel_client/
./setup_wizard -h

엔드포인트에서 생성된 구성을 사용하도록 클라이언트를 구성하려면 다음 명령을 실행하세요:

./setup_wizard --mode non-interactive \
     --endpoint_config <endpoint_config> \
     --settings trusttunnel_client.toml
Windows
setup_wizard.exe --mode non-interactive ^
    --endpoint_config <endpoint_config> ^
    --settings trusttunnel_client.toml

두 경우 모두 <endpoint_config>는 엔드포인트에서 생성된 구성 파일의 경로입니다.

trusttunnel_client.toml에는 클라이언트에 필요한 모든 구성이 포함됩니다.

[!TIP] 생성된 구성에는 엔드포인트에 연결하기 위한 기본 설정이 포함되어 있습니다. 고급 기능의 경우 trusttunnel_client.toml을 직접 편집하세요. 다음을 구성할 수 있습니다:

  • VPN 모드: 모든 트래픽 라우팅(general) 또는 특정 대상만 라우팅(selective)
  • 킬 스위치: VPN 연결이 끊어졌을 때 트래픽 차단
  • DNS 업스트림: 사용자 정의 DNS 리졸버(DoH, DoT, DoQ 지원)
  • 제외: VPN을 우회하거나 통과시킬 도메인/IP
  • 리스너 유형: TUN 장치 또는 SOCKS5 프록시

사용 가능한 모든 옵션은 TrustTunnel CLI 클라이언트 README를 참조하세요.

[!NOTE] 구성을 편집한 후 변경 사항을 적용하려면 클라이언트를 다시 시작하세요.

클라이언트 실행

Linux / macOS
cd /opt/trusttunnel_client/
sudo ./trusttunnel_client -c trusttunnel_client.toml

경로 및 tun 인터페이스를 설정하려면 sudo가 필요합니다.

Windows

관리자 권한으로 터미널을 열고 다음을 실행하세요:

trusttunnel_client.exe -c trusttunnel_client.toml

경로 및 TUN 인터페이스를 설정하려면 관리자 권한이 필요합니다.

클라이언트

공식

CLI

TrustTunnel 클라이언트 — Linux, macOS, Windows

GUI

TrustTunnel Flutter 클라이언트 — iOS, Android (macOS, Windows — 곧 제공). App Store* 및 Play Store에서 사용 가능.

[!NOTE]

커뮤니티

[!NOTE] 커뮤니티 클라이언트는 독립적으로 개발 및 유지 관리됩니다. TrustTunnel 팀에서 공식적으로 지원하지 않습니다.

GUI

Trusty - Flutter로 빌드된 크로스 플랫폼 GUI 클라이언트(Windows 안정화, macOS 알파). 실시간 로그, 1클릭 SSH 서버 배포, 분할 터널링 도메인 그룹 자동 검색 등의 기능이 포함됩니다.

TrustTunnel-GUI-ClientTrustTunnel 클라이언트용 Python 래퍼로 구현된 Windows GUI 클라이언트

Surge — (상용) 실험적 TrustTunnel 지원이 포함된 macOS 및 iOS 네트워크 도구 상자

FireTunnel - 수정된 TrustTunnel 클라이언트를 사용하는 QT로 작성된 크로스 플랫폼 클라이언트

참고

로드맵

현재 VPN은 TCP/UDP/ICMP 트래픽 터널링을 지원하지만, 향후 클라이언트 간 P2P 통신 지원을 추가할 계획입니다.

향후 릴리스에서 이 기능을 기대해 주세요.

라이선스

이 프로젝트는 Apache 2.0 라이선스에 따라 라이선스가 부여됩니다. 자세한 내용은 LICENSE를 참조하세요.

카테고리