Zkusil jsem OpenVPN na routeru, je to úděsně pomalé 5MB/s. Buď nevyužívá obě jádra, nebo prostě nestíhá, nevím. Zkusil jsem (OpenVPN) na server PC v síti, to samé 5-10MB/s.
Bohužel méně zabezpečené PPTP už se nepodporuje, to běhalo asi 20MB/s, takže tohle je jediná možnost. Případně pak WireGuard na Windows (20MB/s - 40MB/s). Server a klient (klient vždy android mobil). S tím se váže spousta problémů. Zkoušel jsem server W10, W11 a to samé. Ačkoliv lze automatizovat spouštění WireGuard, tak si program pokaždé vytvoří nové síťové rozhraní "Server", což je v pořádku. Ale je potřeba pokaždé znovu a znovu nasdílet "Internet nebo primární síťovku pomocí ICS (Internet connection sharing)" právě pro tento "Server". Což ale bohužel nefunguje automaticky, ani automaticky po restartu OS (ani W10, ani W11). Vytvořil jsem si na to nějaký powershell skript, opět spousta problémů. A nakonec je potřeba to restartovat ještě na android mobilu (jeví se jako funkční všude, ale propojení nefunguje, je potřeba vypnout zapnout VPN připojení). Pak se nechá pohodlně dostat všude do LAN sítě.
No, je to děs běs, tak asi vyzkouším už jedině na linuxu (server). Budu rád, když mi tu někdo napíše, že tam to třeba všechno funguje bez zádrhelu.
Přidám všechny skripty:
===================
Služba spuštění WG server config
Kód: Vybrat vše
"C:\Program Files\WireGuard\wireguard.exe" /installtunnelservice "C:\Program Files\WireGuard\Server.conf"Samozřejmě je všude potřeba procpat ADMIN práva, a spouštět vše ne "se spuštěním systému" tj. před loginem, ale až po login tj. "po přihlášení uživatele" a powershell skript (který oživí a znovu nasdílí připojení, tedy propojí obě sítě) spouštět s prodlevou 30s, lépe 60s po spuštění WireGuard.
Power shell skript aka restart rozhraní, znovu nasdílení propojení (Ethernet<=>WireGuard)
Kód: Vybrat vše
$m = New-Object -ComObject HNetCfg.HNetShare
$m.EnumEveryConnection |% { $m.NetConnectionProps.Invoke($_) }
$c1 = $m.EnumEveryConnection |? { $m.NetConnectionProps.Invoke($_).Name -eq "Ethernet" }
$c2 = $m.EnumEveryConnection |? { $m.NetConnectionProps.Invoke($_).Name -eq "Server" }
$config1 = $m.INetSharingConfigurationForINetConnection.Invoke($c1)
$config2 = $m.INetSharingConfigurationForINetConnection.Invoke($c2)
$config1.DisableSharing()
$config2.DisableSharing()
$config1.EnableSharing(0)
$config2.EnableSharing(1)
Kód: Vybrat vše
<?xml version="1.0" encoding="UTF-16"?>
<Task version="1.4" xmlns="http://schemas.microsoft.com/windows/2004/02/mit/task">
<RegistrationInfo>
<Date>2017-01-20T11:46:21.0119059</Date>
<Author>CORE-I7-4790S\Administrator</Author>
<Description>Internet Connection Sharing Reboot</Description>
<URI>\Internet Connection Sharing Reboot</URI>
</RegistrationInfo>
<Triggers>
<LogonTrigger>
<Enabled>true</Enabled>
</LogonTrigger>
</Triggers>
<Principals>
<Principal id="Author">
<UserId>S-1-5-18</UserId>
<RunLevel>HighestAvailable</RunLevel>
</Principal>
</Principals>
<Settings>
<MultipleInstancesPolicy>IgnoreNew</MultipleInstancesPolicy>
<DisallowStartIfOnBatteries>false</DisallowStartIfOnBatteries>
<StopIfGoingOnBatteries>false</StopIfGoingOnBatteries>
<AllowHardTerminate>true</AllowHardTerminate>
<StartWhenAvailable>true</StartWhenAvailable>
<RunOnlyIfNetworkAvailable>false</RunOnlyIfNetworkAvailable>
<IdleSettings>
<StopOnIdleEnd>false</StopOnIdleEnd>
<RestartOnIdle>false</RestartOnIdle>
</IdleSettings>
<AllowStartOnDemand>true</AllowStartOnDemand>
<Enabled>true</Enabled>
<Hidden>false</Hidden>
<RunOnlyIfIdle>false</RunOnlyIfIdle>
<DisallowStartOnRemoteAppSession>false</DisallowStartOnRemoteAppSession>
<UseUnifiedSchedulingEngine>true</UseUnifiedSchedulingEngine>
<WakeToRun>false</WakeToRun>
<ExecutionTimeLimit>PT1H</ExecutionTimeLimit>
<Priority>7</Priority>
</Settings>
<Actions Context="Author">
<Exec>
<Command>C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe</Command>
<Arguments>-ExecutionPolicy Bypass -NoProfile -WindowStyle Hidden -file "C:\Program Files\WireGuard\ps1.ps1" -Verb RunAs</Arguments>
</Exec>
</Actions>
</Task>

