SSTP kontra OpenVPN: samma port 443, annan protokoll
SSTP packar in PPP i HTTPS och följer med Windows. OpenVPN har sin egen klient och kan använda UDP. Portnumret är inte protokollet.
Båda alternativen kan ligga bakom TCP 443, så folk antar att de är utbytbara ändpunkter. Det är de inte: SSTP server talar PPP inne i HTTPS, medan en OpenVPN-server talar sitt eget protokoll över TLS eller en rå UDP-ström. Att peka en klient mot den andras port ger en anslutning som aldrig når en inloggningsprompt. Valet handlar om vilken klient och transport du kan stödja, inte om numret.
En delad port ger inte ett delat protokoll
TLS-handskakningen kan slutföras och ändå inte leda någonstans, eftersom klienten och servern sedan inte är överens om vad som ska sägas härnäst. I en paketinsamling ser du en ren handskakning följd av applikationsdata som motparten avvisar eller ignorerar. Det mönstret är signaturen för en protokollskillnad och inte för en brandväggsblockering.
Varken en omdöpt profil eller en annan menypost gör den ena till den andra. En SSTP-anslutning skapas i Windows VPN-inställningar med en serveradress och operatörens autentiseringsuppgifter, medan en OpenVPN-anslutning behöver klienten och den matchande konfigurationsfilen. Microsofts SSTP-specifikation beskriver det första och beskriver inte en OpenVPN-handskakning.
Port 443 är en policybekvämlighet. Den tar sig igenom nätverk som tillåter lite annat, och det är en verklig fördel, men den säger ingenting om vilket protokoll som körs bakom den.
SSTP tunnlar PPP inne i HTTPS
Namnet beskriver konstruktionen: PPP-ramar som bärs inne i en HTTPS-session, vilket betyder TLS under och ett certifikat som klienten kan kontrollera. Windows inkluderar detta som en inbyggd VPN-typ, så en hanterad bärbar dator kan ofta ansluta utan extra programvara utöver profilen som operatören tillhandahåller.
Andra plattformar är en annan historia. En Linux- eller macOS-klient behöver en underhållen implementering, och de skiljer sig i vad de stöder och hur de rapporterar fel. Kontrollera den klient du faktiskt tänker använda i stället för att anta att Windows inbyggda förmåga överförs, och bekräfta att servernamnet i profilen matchar certifikatet som servern presenterar.
SSTP är vanligtvis bara TCP. Den enda transporten påverkar hur det beter sig på en länk med förluster, eftersom omsändning sker både inne i tunneln och under den.
OpenVPN har sin egen klient och ett transportval
OpenVPN levererar sin egen klient och profil, vilket ger dig diagnostik som en inbyggd Windows-dialog inte visar. Servern kan lyssna på UDP eller TCP, och operatörens konfiguration avgör vilken din klient måste använda. En profil riktad mot fel transport misslyckas före autentiseringen.
Autentisering styrs lika mycket av konfigurationen. En utrullning kan kräva bara certifikat, certifikat plus ett användarnamn och lösenord, eller en andra faktor ovanpå, och klienten måste matcha den ordningen exakt. Att en anslutning når TLS-steget säger inte vilka inloggningsuppgifter den kommer att fråga efter härnäst.
UDP är standardvalet eftersom det undviker att bädda in en pålitlig ström i en annan pålitlig ström. TCP-läget finns för nätverk som blockerar UDP, och det fungerar, men stora förluster kan få det att kännas sämre än den UDP-väg det ersatte. Välj TCP när du måste, inte för att det låter pålitligare.
Välj efter klient, transport och stöd
Tre frågor avgör de flesta av dessa beslut. Behöver varje klientenhet en anslutning som fungerar utan extra programvara? Tillåter nätverket du är beroende av UDP, eller är TCP 443 den enda utgången? Och vem stöder klienten, dess uppdateringar och dess återställning när en profil löper ut?
När du jämför de två, testa på samma enhet och samma åtkomstnätverk. Om SSTP-ändpunkten och OpenVPN-ändpunkten är olika servrar eller olika platser innehåller ditt resultat de rutterna och maskinerna i stället för att isolera protokollet. Det är det vanligaste sättet som sådana jämförelser ger ett självsäkert men felaktigt svar.
Bekräfta sedan vilken du faktiskt etablerade innan du felsöker något annat:
> Get-VpnConnection -Name "Office SSTP" | Select-Object TunnelType, ServerAddress
> openvpn --config office.ovpn --verb 4
Hur som helst, avsluta med att testa resursen och den DNS du behöver i stället för att utropa framgång vid tunnelns tillstånd. Båda protokollen kan konfigureras att bara bära utvald privat trafik, och en ansluten tunnel utan fungerande namnmatchning ser ut som ett trasigt VPN när det egentligen är en split-tunnel- eller DNS-design.
I en hanterad flotta avgör profildistribution och uppdateringsstöd frågan oftast långt före någon transportmätning.