Wireguard Windows Server

windows install service

"C:\Program Files\WireGuard\wireguard.exe" /installtunnelservice "C:\wireguard\wg_server.conf"
 
 

C:\Windows\System32\WindowsPowerShell\v1.0\Modules\wireguard\wireguard.psm1

Function Set-NetConnectionSharing { Param ( [Parameter(Mandatory=$true)] [string] $LocalConnection, [Parameter(Mandatory=$true)] [bool] $Enabled ) Begin { $netShare = $null try { # Create a NetSharingManager object $netShare = New-Object -ComObject HNetCfg.HNetShare } catch { # Register the HNetCfg library (once) regsvr32 /s hnetcfg.dll # Create a NetSharingManager object $netShare = New-Object -ComObject HNetCfg.HNetShare } } Process { #Clear Existing Share $oldConnections = $netShare.EnumEveryConnection |? { $netShare.INetSharingConfigurationForINetConnection.Invoke($_).SharingEnabled -eq $true} foreach($oldShared in $oldConnections) { $oldConfig = $netShare.INetSharingConfigurationForINetConnection.Invoke($oldShared) $oldConfig.DisableSharing() } # Find connections $InternetConnection = Get-NetRoute | ? DestinationPrefix -eq '0.0.0.0/0' | Get-NetIPInterface | Where ConnectionState -eq 'Connected' $publicConnection = $netShare.EnumEveryConnection |? { $netShare.NetConnectionProps.Invoke($_).Name -eq $InternetConnection.InterfaceAlias } $privateConnection = $netShare.EnumEveryConnection |? { $netShare.NetConnectionProps.Invoke($_).Name -eq $LocalConnection } # Get sharing configuration $publicConfig = $netShare.INetSharingConfigurationForINetConnection.Invoke($publicConnection) $privateConfig = $netShare.INetSharingConfigurationForINetConnection.Invoke($privateConnection) if ($Enabled) { $publicConfig.EnableSharing(0) $privateConfig.EnableSharing(1) } else { $publicConfig.DisableSharing() $privateConfig.DisableSharing() } } }
 
 
 

to private

$NetworkProfile = Get-NetConnectionProfile -InterfaceAlias "wg_server" $NetworkProfile.NetworkCategory = "Private" Set-NetConnectionProfile -InputObject $NetworkProfile

reboot 하고나서

admin

Set-ExecutionPolicy RemoteSigned Import-Module wireguard Set-NetConnectionSharing "wg_server" $true
 
 
 
Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\SharedAccess] "EnableRebootPersistConnection"=string:1 [HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\SharedAccess\Parameters] "ScopeAddress"=string:192.168.200.1 [HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\SharedAccess\Parameters] "ScopeAddressBackup"=string:192.168.200.1 [HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\SharedAccess\Parameters] "StandaloneDHCPAddress"=string:192.168.200.1
 
 

windows

wsl2

 
 
 

Recommendations