
WS4W는 Windows에서 Wireguard Server 엔드 포인트를 실행하고 관리 할 수있는 데스크탑 응용 프로그램입니다.
Henry Chang의 게시물에서 영감을 얻은 Windows에서 Wireguard VPN 서버를 설정하는 방법은 많은 복잡한 단계를 자동화하고 단순화하는 응용 프로그램을 만드는 것이 었습니다. 여전히 플러그 앤 플레이 솔루션은 아니지만 아이디어는 스크립트를 실행하거나 레지스트리를 수정하거나 제어판에 입력하지 않고도 각각의 전제 조건 단계 (1-10)를 수행 할 수 있어야합니다.
최신 릴리스는 여기에서 제공됩니다. 설치 프로그램을 다운로드하고 실행하십시오.
참고 : 응용 프로그램은 관리자로 실행하도록 요청합니다. 레지스트리, Windows Services, wg.exe 호출 등의 모든 지울로 인해 전체 응용 프로그램을 더 쉽게 실행하는 것이 더 쉽습니다.
설치 프로그램을 소개하기 전에 WS4W는 휴대용 응용 프로그램으로 배포되었습니다. 휴대용 버전 (1.5.2 이상)에는 설치 프로그램 버전에 대한 자동 업그레이드 경로가 없습니다. 업그레이드하려면 다운로드 된 휴대용 버전을 삭제하고 설치 프로그램을 다운로드하십시오. 구성 설정이 손실되지 않습니다.
다음은이 응용 프로그램을 사용하여 자동으로 수행 할 수있는 작업입니다.

이 단계에서는 https://download.wireguard.com/windows-client/wireguard-installer.exe에서 Windows 용 최신 버전의 Wireguard를 다운로드하고 실행합니다. 일단 설치되면 WS4W에서 직접 제거 할 수 있습니다.

여기서 서버 엔드 포인트를 구성 할 수 있습니다. 각 필드의 의미는 와이어 가드 문서를 참조하십시오. 개인 키 및 공개 키는 각각 wg genkey 및 wg pubkey [private key] 호출하여 생성됩니다. (선택적으로 자신의 개인 키를 제공 할 수 있습니다.)
참고 : 서버의 네트워크 범위가 호스트 시스템의 IP 주소 또는 LAN 네트워크 범위와 충돌하지 않는 것이 중요합니다.
서버 엔드 포인트의 구성 파일을 작성/udpating 할뿐만 아니라 서버 구성을 편집하면 ScopeAddress 레지스트리 값 ( HKLMSYSTEMCurrentControlSetServicesSharedAccessParameters )도 업데이트됩니다. 인터넷 공유 기능을 사용할 때 와이어 가드 어댑터에 사용되는 IP 주소입니다 (여기 설명). 따라서 서버 구성의 주소 속성은 클라이언트에 허용 가능한 주소와 인터넷 공유를 수행 할 때 Windows가 Windowguard 어댑터에 할당하는 IP를 결정하는 역할을합니다. 참고 IP 주소는 인터넷 공유가 처음 수행 된 시점에서 ScopeAddress 에서 가져옵니다. 즉, 구성에서 서버의 IP 주소가 변경되면 (따라서 ScopeAddress 레지스트리 값이 업데이트 됨) Wireguard 인터페이스가 더 이상 원하는 서버 IP를 정확하게 반영하지 않습니다. 따라서 WS4W는 인터넷을 다시 공유하라는 메시지가 표시됩니다. 취소되면 인터넷 공유가 비활성화되며 수동으로 다시 활성화해야합니다.
중요 : 라우터에서 포트 전달을 구성해야합니다. 서버 엔드 포인트 포트 (기본
51820)로 향하는 모든 UDP 트래픽을 서버의 LAN IP로 전달하십시오. 모든 라우터는 다르므로 여기에 구체적인 지침을 제공하기가 어렵습니다. 예를 들어, 여기에는 포트 전달 규칙이 Verizon Quantum Gateway 라우터에서 어떻게 보일지가 있습니다.
엔드 포인트 속성을 공개 IPv4, IPv6 또는 도메인 주소로 설정 한 다음 전달한 포트가 무엇이든 설정해야합니다. Detect Public IP Address 버튼은 ipify.org API를 사용하여 자동으로 공개 주소를 감지하려고 시도합니다. 그러나 가능하면 DDNS와 함께 도메인 이름을 사용하는 것이 좋습니다. 이렇게하면 공개 IP 주소가 변경되면 고객이 재구성없이 서버 엔드 포인트를 찾을 수 있습니다.

여기에서 클라이언트를 구성 할 수 있습니다. 주소는 서버의 네트워크 범위에 따라 수동으로 입력하거나 계산할 수 있습니다. 예를 들어, 서버의 네트워크가 10.253.0.0/24 인 경우 클라이언트 구성은 10.253.0.2 가 유효한 주소라고 결정할 수 있습니다. 범위의 첫 번째 주소 (이 예에서 10.253.0.1 )는 서버에 예약되어 있습니다. DNS는 선택 사항이지만 권장됩니다. DNS 검색 도메인 (DNS 접미사라고도 함, 자세한 내용)을 추가 할 수 있습니다. 마지막으로 wg genkey , wg pubkey [private key] 및 wg genpsk 사용하여 개인 키, 공개 키 및 사전 제목 키가 생성됩니다. (귀하는 자신의 개인 키를 지정할 수 있습니다. 선행 키는 선택 사항, 클라이언트 당 독특한 생성 및 서버 구성과 공유됩니다. 자세한 내용은 #34를 참조하십시오.)
Wireguard의 약간의 기발한 퀴크로 인해 클라이언트 사전 제목 키를 제거하고 서버 구성을 동기화하려면 Wireguard는 여전히 클라이언트가 PSK와 연결할 것으로 기대합니다. 따라서 WS4W는 고객으로부터 사전 제목 키 필드를 지울 수 없습니다. 대신, 고객을 삭제하고 재현하여 PSK를 제거하십시오.
구성되면 QR 코드를 통해 선택한 클라이언트 앱으로 구성되거나 .conf 파일을 내보내기 쉽습니다.

보안의 경우 클라이언트의 개인 키를 서버에 유지하고 싶지 않을 수 있습니다. 이 경우 클라이언트 구성을 저장하기 전에 개인 키 필드를 지울 수 있습니다. 그러나 명심해야 할 두 가지가 있습니다.
서버 및 클라이언트가 구성되면 Tunnel Service를 설치하여 wireguard /installtunnelservice 명령을 사용하여 Wireguard 용 새 네트워크 인터페이스를 생성 할 수 있습니다. 설치 후 터널은 WS4W 내에서 직접 제거 될 수 있습니다. 이것은 wireguard /uninstalltunnelservice 명령을 사용합니다.
이 단계를 완료 한 후 Wireguard 클라이언트는 서버에서 성공적인 핸드 셰이크를 수행 할 수 있어야합니다.
참고 : 터널 서비스가 설치된 후 서버 구성이 편집되면 터널 서비스는
wg syncconf명령을 통해 자동으로 업데이트됩니다 (새로 저장된 서버 구성이 유효 한 경우). 이는 클라이언트 구성에도 해당됩니다. 이는 종종 서버 구성을 업데이트하는 업데이트 (예 : 새 클라이언트가 추가되면 서버 구성 이이 새로운 피어를 알고 있어야 함)에 해당됩니다.
터널 서비스가 설치된 후에도 일부 프로토콜이 차단 될 수 있습니다. 네트워크 프로파일을 Private 로 변경하는 것이 좋습니다. 이는 네트워크의 Windows 제한을 완화시킵니다.
이 단계는 또한 부팅시 네트워크를 자동으로 비공개로 만드는 Windows 작업을 만듭니다. 드롭 다운을 통해 작업을 비활성화 할 수 있습니다.
참고 : 공유 인터넷 연결이 도메인 네트워크에서 시작된 시스템에서는 와이어 가드 인터페이스가 공유 도메인 네트워크의 프로필을 선택 하므로이 단계는 필요하지 않습니다.
마지막 단계는 Wireguard 인터페이스를 통한 요청을 개인 네트워크 또는 인터넷으로 라우팅 할 수 있도록하는 것입니다. 이를 위해 Windows 시스템의 "실제"네트워크 어댑터의 연결은 가상 와이어 가우드 어댑터와 공유해야합니다. 이것은 두 가지 방법 중 하나로 수행 할 수 있습니다.
첫 번째 옵션은 일부 시스템에서만 사용할 수 있습니다 (아래 참조). 두 번째 옵션은 필요에 따라 사용될 수 있지만 일부 경고가 있습니다 (예 : 인터넷 연결이 Wireguard 어댑터와 공유되는 경우 다른 어댑터와 공유 할 수 없습니다. #18 참조). 인터넷 공유와 관련하여 여러 가지 문제가 있었으므로 사용 가능한 경우 NAT 라우팅을 사용해야합니다.
이러한 옵션은 상호 배타적입니다.
여기서는 Wireguard 인터페이스에서 NAT 라우팅 규칙을 작성하여 개인/공개 네트워크와 상호 작용할 수 있습니다. 구체적으로 다음 명령이 호출됩니다.
New-NetIPAddress 서버 구성 주소 속성 범위에 정적 IP를 할당하도록 Wireguard 어댑터에서 호출됩니다.New-NetNat 와이어 가드 어댑터에 새로운 NAT 규칙을 작성하도록 요청됩니다.New-NetIPAddress 호출하기 위해 Windows 작업이 작성되었습니다.NAT 라우팅에는 최소한 Windows 10이 필요하며,이를 가능하게하는 옵션은 이전 버전의 Windows에서 응용 프로그램에 나타나지 않습니다. 그러나 Windows 10의 경우에도 NAT 라우팅이 항상 작동하지는 않습니다. 때로는 Hyper-V가 활성화되어야하므로 응용 프로그램이 제기되지만 Windows의 Pro (즉,) 버전이 필요합니다. 궁극적으로 응용 프로그램이 NAT 라우팅을 활성화 할 수없는 경우 인터넷 연결 공유를 대신 사용하는 것이 좋습니다 (아래). NAT 라우팅 지원에 대한 전체 논의는 #30을 참조하십시오.

NAT 라우팅을 사용할 수없는 경우 인터넷 공유를 사용하여 Wireguard 인터페이스에 네트워크 연결을 제공 할 수 있습니다. 이 옵션을 구성 할 때 공유 할 네트워크 어댑터를 선택할 수 있습니다. 상태가 Connected 어댑터에만 적용되며 인터넷 또는 LAN 액세스를 제공하는 어댑터에만 유용합니다. 공유 할 어댑터를 선택할 때 메뉴 항목 위로 호버링하여 어댑터의 지정된 IP 주소를 포함하여 자세한 내용을 얻으려면 공유하려는 것인지 확인하십시오.
참고 : 인터넷 공유를 수행 할 때 Wireguard 어댑터에는
ScopeAddress레지스트리 값 (HKLMSYSTEMCurrentControlSetServicesSharedAccessParameters)에서 IP가 할당됩니다. 이 값은 서버 구성의 주소 속성을 업데이트 할 때 자동으로 설정됩니다. 여기에서 더 많이보십시오.
Windows에는 재부팅 후 인터넷 공유가 비활성화되는 문제가 있습니다. Wireguard 서버가 무인 상태로 남아 있도록 의도 된 경우, 재부팅 후 상호 작용이 필요하지 않도록 지속적인 인터넷 공유를 가능하게하는 것이 좋습니다.
이 기능을 활성화하면 Windows에서 두 가지 작업이 수행됩니다.
Internet Connection Sharing 서비스 시작 모드는 Manual 에서 Automatic 변경됩니다.1 microsoft EnableRebootPersistConnection HKLMSoftwareMicrosoftWindowsCurrentVersionSharedAccess이러한 해결 방법이 있더라도 재부팅 후 인터넷 공유가 비활성화 될 수 있습니다. 따라서 한 번 더 작업이 수행됩니다. 시스템 부팅시 WS4W CLI를 사용하여 인터넷 공유를 비활성화하고 다시 활성화하는 예정된 작업이 작성됩니다. 이는 공유가 계속 가능하다는 것을 보장하기에 충분해야합니다.

터널이 설치되면 Wireguard 인터페이스의 상태를 볼 수 있습니다. 이것은 wg show 명령을 통해 달성됩니다. Update Live 확인되는 한 지속적으로 업데이트됩니다.
부팅 작업 지연을 설정합니다
이 설정을 사용하면 부팅 작업에 대한 지연이 가능합니다. 이것은로드 속도가 느리는 어댑터에 의존하는 작업에 유용 할 수 있습니다. 이 값을 변경 한 후 작업을 비활성화하고 다시 활성화해야합니다.

또한 ws4w.exe 라는 휴대용 다운로드에 CLI가 번들로 사용되며 터미널에서 호출하거나 스크립트에서 호출 할 수 있습니다. CLI는 Standard Out에 작성된 메시지 외에도 주어진 명령 실행의 성공에 따라 종료 코드를 설정합니다. 예를 들어 PowerShell에서 Exit 코드는 echo $lastexitcode 로 인쇄 할 수 있습니다.
참고 : CLI는 위와 같은 이유로 관리자로 실행해야합니다.
CLI는 동사 또는 최상위 명령을 사용하며 각 명령은 고유 한 옵션 세트가 있습니다. 모든 동사 또는 ws4w.exe verb --help 목록에 대해 ws4w.exe --help 실행하여 특정 동사의 옵션 목록을 볼 수 있습니다.
ws4w.exe restartinternetsharing [--network <NETWORK_TO_SHARE>]--network 옵션은 전달되어 어떤 네트워크 WS4W가 공유 해야하는지 지정할 수 있습니다.--network 통과되지 않는 한).--network 옵션을 지정하도록 전달해야합니다.--network 옵션을 전달해야합니다. 그렇지 않으면 공유 할 네트워크를 알 수있는 방법이 없습니다.이 명령은 영구 인터넷 공유가 활성화 될 때 생성 된 예정된 작업에서 사용됩니다.
ws4w.exe setpathPATH 환경 변수에 추가하도록 지시합니다.이 명령은 "CLI 추가 경로에"옵션을 선택할 때 설치 프로그램에서 사용됩니다.
ws4w.exe setnetipaddress --serverdatapath <PATH_TO_SERVER_CONFIG>Set-NetIPAddress 호출하도록 지시합니다.이 명령은 NAT 라우팅이 활성화 될 때 생성 된 예정된 작업에서 사용됩니다.
ws4w.exe privatenetwork이 명령은 개인 네트워크가 활성화 될 때 생성 된 Windows 작업에서 사용됩니다.
먼저 사용 가능한 경우 NAT 라우팅을 사용하는 것이 좋습니다.
그러나 인터넷 공유를 활성화 할 때 다음 오류 메시지가 발생하면 다음 수동 단계를 수행하십시오.

wg_server 선택하십시오.참고 :이 문제는 종종 VM 용 새 가상 스위치를 작성한 후에 트리거됩니다. 수동 해결 방법은 그 후에 한 번만 필요하며 가상 스위치에는 영향을 미치지 않습니다.
WS4W는 테스트를 거쳤으며 Windows Server (2012 R2 및 Newer) 및 Windows 데스크탑 (10 이상)에서 작동하는 것으로 알려져 있습니다.
Wireguard는 Jason A. Donenfeld의 등록 상표입니다.
www.flaticon.com에서 Freepik이 만든 아이콘.