내 전화기가 항상 내 홈 서버에 원격으로 액세스할 수 있도록 수년간 포트 포워딩과 구성 관리를 하고 나니 피곤해졌습니다. 필요한 수정 사항이 WireGuard, Tailscale 또는 NetBird에 있다고 확신했습니다.
하지만 행운을 빌고 싶지 않았기 때문에 동일한 장치와 시나리오를 사용하여 가정용 Wi-Fi에서 셀룰러로 전환하면서 나란히 실행했습니다. Tailscale을 사용하면 연결이 배경으로 사라지는 반면 나머지 두 개를 사용하면 연결이 실제로 어떻게 설정되는지 더 많이 생각하게 되었습니다.
WireGuard가 작동 중이었지만 가져와야 했습니다.
홈 서버는 즉시 차이점을 명확하게 보여주었습니다.
테스트는 간단했습니다. 집 Wi-Fi에서 모바일 네트워크로 전환한 후 홈 서버에 접속해야 했습니다. 홈 서버를 설정하려면 비용을 지불해야 합니다 와이어가드 포트 포워딩 및 DDNS 구성을 통해 엔드포인트에 도달할 수 있습니다. 한 걸음이었어 WireGuard도 이를 요구하지 않았습니다. 꼬리 가늠자 ~ 아니다 넷버드 했다. 이 두 가지를 사용하면 서버를 찾기 위해 라우터를 만질 필요가 없었습니다.
나는 일찍부터 명확한 구분을 찾았습니다. Tailscale과 NetBird는 장치를 찾고 연결하는 데 필요한 기능을 추가합니다. WireGuard는 터널을 제공합니다. 네트워크가 변경되었을 때 서버에 여전히 도달 가능한 엔드포인트가 있었기 때문에 WireGuard는 실패했지만 WireGuard 자체는 전화에서 새로운 엔드포인트를 학습할 수 있었습니다. 나머지 두 개는 추가 작업 없이 다시 연결되었습니다.
|
와이어가드 |
꼬리 가늠자 |
넷버드 |
|
|---|---|---|---|
|
초기 설정 |
키 생성, 구성 작성, 라우터 포트 전달 또는 DDNS 구성을 포함하여 수동으로 수행 |
클라이언트 설치 및 로그인 |
클라이언트 설치, 로그인 또는 자체 호스트 제어/신호/릴레이 |
|
외부에서 서버에 접속 |
예, 액세스 가능한 엔드포인트를 직접 제공하는 한 |
오토매틱; 일반적인 가정 설정에서는 포트 전달이 필요하지 않습니다. |
오토매틱; 일반적인 가정 설정에서는 포트 전달이 필요하지 않습니다. |
|
네트워크가 변경되면 어떻게 되나요? |
구성된 서버 엔드포인트가 계속 사용 가능한 한 작동합니다. WireGuard는 고객 주소 변경 사이를 로밍할 수 있습니다. 자동 서버 검색 메커니즘이 없습니다. |
자동으로 다시 연결하고 자동으로 경로를 협상합니다. |
자동으로 다시 연결하고 자동으로 경로를 협상합니다. |
이 초기 테스트 후에도 어떤 것이 연결되어 있고 어떤 것을 제어해야 하는지 알아야 했습니다.
집을 떠나는 것은 진짜 시험이었다
내 전화기는 내 라우터 뒤에 있는 서버를 찾아야 합니다.
WireGuard용 포트는 이미 마련되어 있으므로 셀룰러로 전환한 후 연결하기 위해 추가 개입이 필요하지 않았습니다. 연결은 직접적으로 유지되었으며(WireGuard에는 릴레이가 없음) 네트워크 변경 후에도 계속 사용할 수 있었습니다.
Tailscale을 연결하기 위해 아무것도 할 필요가 없었습니다. 가능할 때마다 직접 경로를 고려하고 직접 경로를 사용할 수 없는 경우 DERP를 사용했습니다. 약간의 지연이 발생했지만 네트워크를 변경한 후에도 연결은 계속 사용 가능했습니다.
STUN/ICE를 통한 직접 경로를 선호했지만 NetBird와 유사했습니다. 선택한 직접 경로가 실패하면 릴레이로 넘어갔습니다. 다이렉트 모드에서는 레이턴시가 미미하게 느껴졌으나 전송 중에는 약간 증가했고, 네트워크를 변경한 후에는 연결이 가능했다.
|
와이어가드 |
꼬리 가늠자 |
넷버드 |
|
|---|---|---|---|
|
연결됐어? |
예, 포트 포워딩이 설정된 경우 |
예 |
예 |
|
수동 개입(현재)? |
아니요, 한 번 구성되었습니다(그러나 구성 자체가 방해가 되었습니다). |
아니요 |
아니요 |
|
직접 또는 배달? |
직접만 |
가능하면 직접적으로; 그렇지 않은 경우 피어 릴레이가 구성된 경우 DERP |
가능한 경우 ICE를 통해 직접 그렇지 않으면 릴레이로 돌아갑니다. |
|
상당한 감소? |
아니, 직접 일했다면 |
직접적이라면 작습니다. 이식된 경우 약간의 지연이 추가됨 |
직접적이라면 작습니다. 이식된 경우 약간의 지연이 추가됨 |
|
네트워크 변경 후에도 계속 사용할 수 있나요? |
예, 엔드포인트가 변경되지 않았기 때문입니다. |
예 |
예 |
실제 측정은 밀리초가 걸리는지 여부가 아니라 실제로 그것에 대해 생각했는지 여부였습니다. 이런 생각은 WireGuard 설치 단계에서 발생했지만 Tailscale 및 NetBird에서는 사라졌습니다.
연결이 제대로 작동하지 않았습니다.
드디어 이불 뒤에 숨겨진 기술을 보았습니다
나는 두 가지 별도의 요소, 즉 서버에 접속하는 것과 연결을 가능하게 만든 요소를 알아내는 것에 대해 생각하기 시작했습니다. 이들 중 하나는 장치가 서로를 찾는 데 도움이 되지만 다른 하나는 암호화된 트래픽을 전달합니다.
Tailscale을 사용하면 동기화 서비스가 장치 검색/동기화를 관리합니다. 가능하다면 실제 트래픽은 장치 간에 라우팅되거나 필요한 경우 DERP를 통해 라우팅됩니다. NetBird는 이 작업을 구성 관리, 연결 협상을 위한 신호 처리, 사용 가능한 경로를 찾고 유지하는 STUN/ICE 및 릴레이로 나눕니다. 이 레이어는 WireGuard 자체에 내장되어 있지 않으므로 간단한 WireGuard 설치를 통해 이러한 호환성 세부 사항을 직접 처리해야 합니다.
NetBird에 동기화 스택을 직접 배포할 수 있지만 이것이 터널 자체가 갑자기 더 빨라지거나 더 안전해진다는 의미는 아닙니다. 그러나 이는 부동산의 요소입니다. 스택을 스스로 유지하는 데 드는 비용이 듭니다.
승자는 내 생각을 덜하게 만들어서 얻었어
결정적인 요인은 홈 서버 테스트였으며 Tailscale은 최소한의 생각이 필요한 옵션이었습니다. 테스트를 위해 내가 해야 할 일은 클라이언트를 설치하고 로그인하는 것뿐이었습니다. 그는 나를 위해 나머지를 다 해줬어요.
미들웨어를 원하지 않는다면 WireGuard가 가장 명확한 주장을 가지고 있습니다. 이 레이어를 사용자가 제어하려는 경우 타사 VPN 동기화 서비스가 필요하지 않습니다. 이 옵션을 사용하면 터널과 해당 구성을 직접 제어할 수 있습니다. 그러나 NetBird는 여전히 장기적인 논쟁에서 승리합니다. 특히 귀하가 결국 NetBird를 소유하게 될 것이라고 생각하는 경우 더욱 그렇습니다. NetBird는 나중에 자동 연결 설정을 포기하지 않고 동기화 레이어를 소유하려는 경우 가장 강력한 주장을 가지고 있습니다.
Tailscale의 실제 가치는 동기화 인프라에 의존하기 때문에 종속성을 위한 비즈니스 구성 작업입니다. 그러나 내가 시도한 정확한 작업에 대해서는 그만한 가치가 있습니다.