Kan du använda två VPN på samma hemserver utan ruttkonflikter?

Eva Wong är Teknisk skribent och den boende fixaren på ZimaSpace. En livslång nörd med en passion för hemma-labb och öppen källkod, hon specialiserar sig på att översätta komplexa tekniska koncept till tillgängliga, praktiska guider. Eva tror att självhosting ska vara roligt, inte skrämmande. Genom sina handledningar ger hon gemenskapen verktyg att avmystifiera hårdvaruinstallationer, från att bygga sin första NAS till att bemästra Docker-containrar.

Ja, två VPN kan dela en hemserver när deras adresser, rutter, standardinställningar, brandväggsregler och returvägar är tydligt separerade.

Problem uppstår när båda tunnlarna använder samma privata subnet, installerar konkurrerande standardrutter, använder duplicerade gränssnitts- eller tabellidentifierare, skriver om DNS globalt eller skickar svar genom en annan tunnel än den som begäran gick igenom. En säker design tilldelar först varje VPN ett tydligt syfte—som fjärråtkomst och kommersiell utgående trafik—och testar sedan en tunnel i taget och båda tillsammans samtidigt som den aktiva rutten för varje arbetsbelastning registreras.

Definiera varje VPN:s uppgift innan båda startas

Skriv ner vilka klienter, destinationer, protokoll och applikationer som tillhör VPN A respektive VPN B. Vanliga lösningar inkluderar en inkommande WireGuard-server för fjärråtkomst till NAS och en utgående kommersiell VPN för utvalda containrar.

OpenVPN-communityn anger att flera tunnlar kan köras samtidigt, men varje instans behöver en separat virtuell adapter, port och unik icke-överlappande subnet.

Om båda tunnlarna är avsedda att hantera all servertrafik, bestäm vilken som är primär och vilken som är backup eller inbäddad. Två oberoende ”skicka allt”-policyer kan inte båda styra samma paket utan tydlig ordning.

Håll tunnel- och fjärr-LAN-subnet unika

Jämför båda tunnelns adresspooler, varje annonserat fjärr-LAN, hem-LAN, containernätverk och vanliga fjärrklientnätverk. Ingen destination ska peka på två olika platser i samma routingkontext.

OpenVPN:s HOWTO förklarar att överlappande privata nätverk skapar routingoklarhet eftersom systemet inte kan veta vilken plats en duplicerad adress representerar. Distinkta prefix tar bort oklarheten vid överlappande adresser innan ruttmetrik beaktas.

Numrera om en tunnel eller LAN när det är möjligt. Om överlapp är oundvikligt, använd kontrollerad NAT-översättning, separata nätverksnamnrymder, VRF:er eller policytabeller istället för att förlita sig på vilken tunnel som startar sist.

Förhindra att båda VPN ersätter standardrutten

Inspektera routingtabellen utan VPN, med endast VPN A, endast VPN B och med båda aktiva. Registrera standardrutter, delade standardrutter som 0.0.0.0/1 och 128.0.0.0/1, metrik och värdrutter till båda VPN-servrarna.

En OpenVPN-ärende noterar att omdirigering av standardgateway genom flera samtidiga VPN inte är användbart om inte administratören bestämmer konkurrerande standardrutter.

Inaktivera automatisk installation av standardrutt på den tunnel som endast ska hantera utvalda subnet. Behåll en rutt till varje VPN-leverantörs slutpunkt via underliggande WAN så att uppkopplingen av den andra tunneln inte skickar dess kontrollanslutning genom den första.

Använd policyrouting för käll- eller applikationsspecifik trafik

Skapa separata routingtabeller för trafik som måste gå ut genom varje VPN och välj sedan tabell efter källsubnet, containeradress, brandväggsmarkering, användare eller gränssnitt. Behåll huvudtabellen för vanlig hemservertrafik.

Ett Unix- och Linux-exempel på flera VPN-anslutningar rekommenderar regler så att trafik från varje gränssnitt använder sin egen routingtabell och returnerar genom rätt modem eller tunnel.

Lägg till regler i dokumenterad ordning och testa ruttuppslag för representativa käll- och destinationspar. En policytabell utan anslutet LAN och returvägar kan isolera den valda applikationen från resten av hemnätverket.

Samordna NAT, brandvägg, DNS och returvägar

För varje VPN, dokumentera vilket gränssnitt som vidarebefordrar trafik, vilka källadresser som maskeras, vilka inkommande subnet som tillåts och vilken DNS-resolver klienterna får. Använd NAT endast där den fjärranslutna sidan saknar returväg.

Ett Server Fault-fall som routar WireGuard-klienter genom en OpenVPN-anslutning förklarar att trafiken kan behöva maskeras eftersom den fjärranslutna VPN:n bara känner till OpenVPN-klientadressen, inte det fjärranslutna WireGuard-klientsubnetet.

Verifiera att svar lämnar genom den tunnel som tog emot eller initierade sessionen. Asymmetriska svar kan få en VPN att verka ansluten medan TCP-, DNS- eller SMB-trafik tyst misslyckas.

Testa fel och omstartordning innan produktion

Starta VPN A, sedan B; vänd ordningen; starta om varje tjänst oberoende; och starta om servern. Registrera rutter, regler, DNS, brandväggstillstånd och om befintlig fjärrhantering överlever.

ZimaSpace-guiden för att reparera en saknad VPN-rutt visar återställningssekvensen när en tunnel av misstag fångar den andras trafik.

Konfigurationen är säker först när båda tunnlarna kan återansluta i valfri stödd ordning, varje arbetsbelastning följer sin avsedda väg, DNS förblir förutsägbar och att inaktivera en VPN inte blockerar hanteringstrafik. Behåll en lokal konsol eller icke-VPN-återställningsväg innan båda tjänster automatiseras vid uppstart.

Support och tips

Mer att läsa

Get More Builds Like This

Stay in the Loop

Get updates from Zima - new products, exclusive deals, and real builds from the community.

Stay in the Loop preferences

We respect your inbox. Unsubscribe anytime.