Turnout은 wg-quick과 같은 방식으로 Mac을 WireGuard 서버에 연결하는 네이티브 앱입니다.
훅이 그대로 실행되고, 경로는 사용자가 정한 대로 유지되며, 터널이 어느 네트워크 인터페이스로 나갈지 직접 선택할 수 있습니다.
출시 예정
첫 공개 버전을 준비하고 있습니다. 그때까지는 다운로드할 수 있는 것이 없습니다. 첫 버전 소식을 받으려면 GitHub 저장소를 Watch하거나 Releases 페이지를 확인하십시오.
wg-quick이 실행하는 그대로의 구성
Turnout은 wg-quick에서 이미 사용하는 .conf 파일을 읽어, wg-quick이 macOS에서 하는 방식대로 같은 시스템 도구를 사용해 한 단계씩 똑같이 적용합니다.
PreUpPostUpPreDownPostDown- 훅이 실행되며,
%i는 터널의utun인터페이스로,%I는 터널 이름으로 바뀝니다. 파일의 훅은 관리자가 승인해야 실행할 수 있습니다. 자세한 내용은 승인 방식을 참고하십시오. AllowedIPs- 가장 구체적인 것부터 터널로 라우팅됩니다. 전체 터널은 기본 경로를 대체하는 대신
0.0.0.0/1과128.0.0.0/1, 그리고 IPv6의 두 절반을 사용하며, 서버 주소는 물리 게이트웨이에 남아 있으므로 자신의 터널 안으로 라우팅되는 일이 없습니다. Tableauto와main은 위와 같이 라우팅하고,off는 라우팅 테이블을 사용자에게 맡깁니다.DNS- 터널이 연결되어 있는 동안 네트워크 서비스에 서버와 검색 도메인이 설정되며, 터널의 연결이 해제되면 원래 설정으로 돌아옵니다.
MTU- 적힌 값 그대로 사용하거나, wg-quick과 같은 방식으로 계산합니다. 즉, 출구 인터페이스의 MTU에서 80을 뺀 값입니다.
네트워크 인터페이스 선택
wg-quick 형식에는 없는 두 줄입니다. 이 줄은 #@ 기호로 시작하는데, wg-quick은 이를 주석으로 읽으므로 같은 파일을 wg-quick up에서도 그대로 사용할 수 있습니다.
[Interface]
PrivateKey = …
Address = 10.8.0.2/32
DNS = 10.8.0.1
#@ BindInterface = en0
#@ Route = 192.168.0.0/16 dev en0
[Peer]
PublicKey = …
AllowedIPs = 0.0.0.0/0, ::/0
Endpoint = vpn.example.com:51820
#@ BindInterface = en0- 다른 인터페이스가 기본 경로를 가지고 있어도 암호화된 트래픽은 항상
en0인터페이스로 나갑니다. 서버로 가는 경로도en0인터페이스를 거칩니다. #@ Route = 192.168.0.0/16 dev en0- 이 네트워크들은 터널을 우회하여
en0자체의 게이트웨이를 통해 나갑니다. 필요한 만큼 쉼표로 구분해 나열하십시오. AllowedIPs- 나머지는 모두 터널로 들어갑니다.
메인 윈도우에 표시된 경로에서 연결된 터널의 출구 인터페이스를 바꿀 수도 있습니다. 그러면 Turnout이 연결을 해제하고 변경 사항을 저장한 다음 다시 연결합니다.
네트워크 변화를 따라갑니다
게이트웨이, 인터페이스 또는 링크가 바뀌거나 Mac이 잠자기에서 깨어나면, Turnout은 물리 네트워크를 거치는 터널 경로를 현재 게이트웨이로 다시 지정하고, 자동 MTU를 다시 계산하고, DNS를 다시 적용합니다.
터널이 고정된 인터페이스가 사라졌다가 다시 나타나면, 터널은 그 인터페이스에 다시 고정되고 핸드셰이크를 다시 수행합니다. 인터페이스가 아예 사라지면 서버로 가는 경로가 블랙홀이 되어 핸드셰이크가 터널 안으로 새어 들어갈 수 없으며, 터널을 우회하는 경로는 인터페이스가 돌아올 때까지 기다립니다.
알아서 연결합니다
터널에 스케줄이나 Wi-Fi 네트워크 목록, 또는 둘 다를 지정하십시오.
스케줄에 지정된 시간대가 시작되면 Turnout이 터널을 연결하고, 끝나면 연결을 해제합니다. Mac이 목록에 있는 네트워크에 접속하면 터널이 연결되고, 그 네트워크에서 벗어나면 연결이 해제됩니다. 그 사이에 직접 한 조작은 그대로 유지되며, 규칙을 바꾸는 것만으로는 아무것도 연결되거나 해제되지 않습니다.
#@ Schedule = Mon-Fri 09:00-18:00
#@ OnWiFi = Office
규칙은 구성 파일 안의 줄이며, 터널 페이지에서 설정합니다. Turnout은 열려 있는 동안 규칙에 따라 동작하므로 ‘로그인 시 열기’를 제공합니다. macOS는 Wi-Fi 네트워크의 이름을 위치 정보로 취급하므로 Wi-Fi 규칙에는 위치 접근 권한이 필요합니다. Turnout은 실행할 때가 아니라 규칙을 설정할 때 이 권한을 요청합니다.
파일을 그대로 지키는 편집기
터널을 양식이나 텍스트로 편집하고, 언제든지 둘 사이를 전환할 수 있습니다.
변경 사항은 해당하는 줄만 다시 쓰므로 주석과 순서가 작성한 그대로 유지됩니다. 문제는 줄 번호와 함께 표시되며, 문제가 모두 해결될 때까지 ‘저장’은 사용할 수 없습니다. 새 터널에는 새로운 키 쌍이 함께 만들어집니다.
.conf 파일이나 .zip 파일을 윈도우에 드롭하거나, ‘파일’ › ‘파일에서 가져오기…’를 선택하거나, ‘파일’ › ‘클립보드에서 새 터널…’로 복사한 구성을 붙여 넣으십시오. 공식 WireGuard 앱이 내보낸 zip은 일괄 가져오기로 열립니다. 모든 터널을 검토하고, 일부는 제외하고, 나머지를 한 번에 가져올 수 있습니다.
‘파일’ › ‘터널 내보내기…’는 그 반대입니다. 터널마다 .conf 파일 하나씩을 담은 zip 하나를 공식 앱이 쓰고 가져오는 것과 같은 구조로 만듭니다. 각 터널의 ‘내보내기…’는 그 터널의 파일만 저장합니다.
아무것도 남기지 않습니다
Turnout이 경로와 DNS에 하는 모든 변경은 실행하기 전에 기록됩니다.
터널이 연결된 상태에서 Mac이 충돌하거나 전원이 꺼지면, 백그라운드 서비스는 다음에 시작할 때 남아 있는 변경을 되돌리며, 그 작업이 끝날 때까지 어떤 터널도 연결하지 않습니다. Turnout › ‘네트워크 설정 복구…’를 선택하면 언제든지 같은 작업을 합니다.
제거는 앱에서 시작하든, 설치 프로그램에서 시작하든, 미리 읽어 볼 수 있는 셸 스크립트에서 시작하든 같은 경로를 따릅니다. 모든 터널의 연결을 해제하고, 경로와 DNS를 복원하고, ‘로그인 항목’에서 백그라운드 서비스를 제거하고, 앱과 로그, 환경설정을 삭제합니다. 저장된 터널은 함께 삭제하도록 선택하지 않는 한 남습니다. 앱에서 제거하면 라이선스에서 이 Mac이 차지하던 자리도 비워집니다. 방법별 제거 항목
Turnout이 아닌 것
- 아직 킬 스위치가 없습니다. Turnout은 터널 밖의 트래픽을 차단하지 않습니다. 터널이 연결되어 있지 않은 동안 Mac은 평소의 네트워크를 사용합니다.
- VPN 서비스 제공업체가 아닙니다. 직접 운영하는 서버를 사용하거나, 서비스 제공업체 또는 네트워크 관리자에게 받은 구성을 사용하십시오.
- NetworkExtension을 사용하지 않습니다. 터널은 Turnout 자체의 백그라운드 서비스에서 실행되며, 그 덕분에 훅이 실행되고 경로가 사용자가 정한 대로 유지됩니다. 터널은 ‘시스템 설정’ › ‘VPN’에 나타나지 않습니다.
Mac에서 하는 일
Turnout은 root 권한으로 실행되는 백그라운드 서비스를 설치합니다. 이 서비스는 wg-quick과 같은 도구로 주소, 경로, DNS를 변경하고, root만 읽을 수 있는 폴더에 구성을 보관하며, 관리자가 승인한 후에만 구성의 훅을 실행합니다. 이 모든 것을 직접 확인할 수 있습니다.
netstat -rn # 추가된 경로
networksetup -getdnsservers Wi-Fi # 설정된 DNS 서버
cat /Applications/Turnout.app/Contents/Resources/uninstall.sh
다운로드 및 설치
출시 예정
첫 공개 버전을 준비하고 있습니다. 그때까지는 다운로드할 수 있는 것이 없습니다. 첫 버전 소식을 받으려면 GitHub 저장소를 Watch하거나 Releases 페이지를 확인하십시오.
- 설치 프로그램인
.pkg파일을 GitHub의 최신 릴리스에서 다운로드하십시오. - 파일을 열고 안내에 따르십시오. Turnout은 ‘응용 프로그램’ 폴더에 설치되며, 설치가 끝나면 열립니다.
- Turnout 윈도우에서 백그라운드 서비스를 설치한 다음, macOS가 요청하면 ‘시스템 설정’ › ‘일반’ › ‘로그인 항목 및 확장 프로그램’에서 허용하십시오.
설치 프로그램은 Developer ID로 서명되었지만 아직 Apple의 공증을 받지 않았으므로 macOS가 열기를 거부할 수 있습니다. 그런 경우 ‘시스템 설정’ › ‘개인정보 보호 및 보안’으로 이동해 ‘그래도 열기’를 선택한 다음 설치 프로그램을 다시 여십시오.
macOS 15 이상 · Apple 실리콘 및 Intel · 7일 체험 · US$19 1회 결제, Mac 3대
라이선스 하나로 Mac 3대
US$19를 한 번만 결제하면 Mac 3대에서 사용할 수 있으며 Turnout 1의 모든 업데이트가 포함됩니다. 먼저 체험해 보십시오. 7일 동안 무료이며, 원하면 7일을 더 사용할 수 있습니다. 계정도 카드도 필요 없고, 체험 기간에는 라이선스를 확인하지 않습니다.
Mac 3대는 본인의 Mac, 같은 가정의 Mac 또는 한 조직 안의 Mac이면 됩니다. 결제와 세금 처리, 영수증 발송은 Polar가 담당합니다. 결제를 마치면 바로 Polar 페이지에 라이선스 키가 표시되어 Turnout에 복사해 넣을 수 있으며, 키는 Polar의 구입 내역 페이지에도 보관됩니다. 마음에 들지 않으면 14일 이내에 이유를 묻지 않고 환불해 드립니다.