Namestitev programa WireGuard v sistemu Windows | INTROSERV
EUR
european

EUR

usa

USD

Slovenia Sl
Ex. VAT Ex. VAT 0%

Namestitev WireGuarda v sistemu Windows

V tem vodniku je pojasnjeno, kako vzpostaviti VPN-tunel WireGuard med dvema računalnikoma z operacijskim sistemom Windows: strežnikom WireGuard, ki teče na oddaljenem gostitelju Windows (na primer na VPS-ju z operacijskim sistemom Windows), in odjemalcem WireGuard, ki teče na vašem lokalnem računalniku z operacijskim sistemom Windows. Ko je tunel aktiven, si računalnika izmenjujeta podatke prek šifrirane zasebne povezave, po želji pa lahko ves promet odjemalca usmerite prek strežnika.

Da bi bilo ustvarjanje ključev čim preprostejše, ta vodnik ustvari konfiguraciji strežnika in odjemalca znotraj ene aplikacije WireGuard, nato pa vsako konfiguracijsko datoteko namesti na računalnik, ki mu pripada. Konfiguracija strežnika teče na strežniku, konfiguracija odjemalca pa na odjemalcu. Strežnik in odjemalec sta vedno ločena računalnika. Enak postopek se uporablja za dodajanje poljubnega števila dodatnih odjemalcev.

Preden začnete, namestite najnovejšo različico WireGuarda s strani za namestitev WireGuarda tako na strežniku kot na odjemalcu ter se prepričajte, da imate na vsakem računalniku skrbniške pravice.

Nastavitev v tem vodniku je naslednja:

Server (public IP, listening on UDP 51820) Tunnel address 10.0.0.1/24 | | encrypted WireGuard tunnel | Client Tunnel address 10.0.0.2/32

Ustvarjanje konfiguracije strežnika

Zaženite C:\Program Files\WireGuard\wireguard.exe, kliknite »Dodaj tunel« in izberite »Dodaj prazen tunel«. WireGuard samodejno ustvari par ključev. Javni ključ, prikazan na vrhu okna, je javni ključ strežnika. Potrebovali ga boste kasneje, ko boste konfigurirali odjemalca.

Dajte tunelu ime in v razdelku za vmesnik vnesite zasebni ključ strežnika, vrata, na katerih bo WireGuard poslušal, ter notranji naslov, ki ga bo strežnik uporabljal znotraj tunela.

[Interface] PrivateKey = # private key of the WireGuard server ListenPort = # port that WireGuard will listen on Address = # internal IP address of the WireGuard server, for example 10.0.0.1/24

Za omrežje tunela uporabite zasebno podomrežje ter poskrbite, da so strežnik in vsi odjemalci v istem obsegu. Pogosta izbira je 10.0.0.1/24 za strežnik ter 10.0.0.2/32, 10.0.0.3/32 itd. za vsakega odjemalca. Strežnik uporablja predpono /24, zato celotno območje tunela obravnava kot dosegljivo prek vmesnika WireGuard. Vsaka stranka uporablja /32, saj stranka predstavlja en sam naslov in ne podomrežja. Stranka, nastavljena na /24, bi domnevala, da je celotno območje na njenem lastnem vmesniku, in ne bi pošiljala prometa za druge naslove v tunelu skozi tunel.

V urejevalniku tunela, pod poljem za konfiguracijo, lahko po želji omogočite možnost »Blokiraj promet zunaj tunela« (kill-switch), ki blokira ves promet, ki bi zapustil tunel, ter nastavite »Predhodno deljen ključ«, ki doda dodatno raven varnosti. Obe možnosti sta neobvezni. V razdelku »Razumevanje AllowedIPs« si oglejte, kdaj je kill-switch koristen in kaj blokira.

Ustvarjanje konfiguracije odjemalca

Kliknite »Dodaj tunel« in še enkrat izberite »Dodaj prazen tunel«, tokrat za odjemalca. Javni ključ, prikazan za ta tunel, je javni ključ odjemalca, ki ga strežnik potrebuje za sprejem odjemalca.

Izpolnite konfiguracijo odjemalca:

[Interface] PrivateKey = # private key of the WireGuard client Address = # internal IP address of the WireGuard client, for example 10.0.0.2/32 DNS = 1.1.1.1, 1.0.0.1 [Peer] PublicKey = # public key of the WireGuard server AllowedIPs = # 0.0.0.0/0 for a full tunnel, or 10.0.0.0/24 for a split tunnel Endpoint = # public IP address and port of the WireGuard server PersistentKeepalive = 25

Končna točka mora biti dejanski javni IP-naslov strežnika skupaj s pristaniščem, nastavljenim v strežnikovem ListenPort, ne pa notranji naslov tunela. Za pomoč pri izbiri vrednosti AllowedIPs si oglejte poglavje »Razumevanje AllowedIPs« spodaj.

Vrstici »DNS« in »PersistentKeepalive« sta neobvezni. »DNS« določa DNS-strežnike, ki se uporabljajo, medtem ko je tunel aktiven, kar preprečuje težave z razreševanjem imen po vzpostavitvi povezave. Uporabite lahko javne reševalnike, kot so 1.1.1.1, 1.0.0.1 ali 8.8.8.8, 8.8.4.4, ali pa DNS-strežnik samega omrežja VPN. PersistentKeepalive = 25 vsakih 25 sekund pošlje majhen paket in pomaga ohranjati povezavo odprto, ko je odjemalec za NAT-om.

Ključe in končno točko skrbno prepišite. Napačno vnesen ključ ali napačna končna točka sta najpogostejša razloga za neuspešno vzpostavitev povezave prek tunela.

Dodajanje odjemalca na strežnik

Ponovno odprite konfiguracijo strežnika in dodajte oddelek [Peer] za odjemalca, pri čemer uporabite javni ključ odjemalca iz prejšnjega koraka.

[Peer] PublicKey = # public key of the WireGuard client AllowedIPs = # internal IP address of the client

V konfiguraciji strežnika ima AllowedIPs dve vlogi. Strežniku pove, kateri naslov tunela pripada temu odjemalcu, in deluje kot seznam usmerjanja: vsak paket, naslovljen na ta območja, se šifrira in pošlje temu peerju. Za posameznega odjemalca je to njegov naslov tunela, na primer 10.0.0.2/32. Če naj stranka prek tunela omogoči dostop tudi do lokalnega omrežja, tukaj dodajte tudi to podomrežje, na primer 10.0.0.2/32, 192.168.1.0/24. Ta korak ponovite za vsako dodatno stranko.

Nastavitev požarnega zidu Windows na strežniku

Strežnik mora sprejemati vhodni promet WireGuard na svojem UDP-vratu. Odprite Požarni zid Windows Defender z napredno varnostjo, izberite Vhodna pravila in kliknite Novo pravilo. Izberite »Vrata« in kliknite »Naprej«. Izberite »UDP«, vnesite vrata WireGuard, na primer 51820, in kliknite »Naprej«. Če uporabljate več vrat, jih navedite ločene z vejicami, na primer 51820, 51821. Izberite »Dovoli povezavo« in kliknite »Naprej«. Izberite profile, za katere velja pravilo. Če je strežnik gostovan v podatkovnem centru, običajno zadostuje profil »Javni«, sicer pa pustite izbrane profile »Domena«, »Zasebni« in »Javni«. Kliknite »Naprej«, pravilu dodajte jasno ime, na primer »WireGuard UDP 51820«, in kliknite »Dokončaj«.

To pravilo za dohodni promet je potrebno le na strežniku, saj je strežnik tista stran, ki sprejema dohodne povezave. Na VPS-ju se prepričajte tudi, da vaš ponudnik gostovanja na omrežni ravni dovoljuje dohodni UDP-promet na tem vratu, ne le v požarnem zidu Windows.

Izvoz in namestitev konfiguracij

Ko sta obe konfiguraciji pripravljeni, kliknite »Export all tunnels to zip«, izberite mesto in shranite.

Odprite arhiv, da poiščete konfiguracijske datoteke za vse tunele. Konfiguracijo strežnika namestite na strežnik, vsakemu odjemalcu pa dodelite svojo konfiguracijsko datoteko. Če računalnik vsebuje veliko tunelov, lahko posamezni tunel izvozite tudi iz njegovega kontekstnega menija. Izvoz v datoteko ZIP je priročen, kadar sta bila oba tunela ustvarjena na istem računalniku, kot je prikazano v tem vodniku. Če vsako konfiguracijo ustvarite neposredno na svojem gostitelju, izvoz ni potreben in konfiguracijsko datoteko lahko ročno prekopirate.

Na strežniku izberite konfiguracijo strežnika in kliknite »Aktiviraj«.

Na odjemalcu kliknite »Dodaj tunel«, izberite konfiguracijsko datoteko odjemalca in jo odprite.

Nato kliknite »Aktiviraj«.

Prvi odjemalec je sedaj konfiguriran. Na enak način dodajte še ostale odjemalce: za vsakega odjemalca ustvarite nov prazen tunel in v konfiguracijo strežnika dodajte ustrezen oddelek [Peer] z javnim ključem tega odjemalca in naslovom tunela, kot je opisano v poglavju »Dodajanje odjemalca na strežnik«.

Warning

Če konfigurirate WireGuard na oddaljenem strežniku prek seje RDP, preberite oddelek »Razumevanje AllowedIPs«, preden aktivirate tunel, ki usmerja ves promet. Konfiguracija z AllowedIPs = 0.0.0.0/0 lahko preusmeri lastni promet strežnika v tunel in prekine vašo povezavo RDP.

Preverjanje povezave

Ko aktivirate tunel, lahko Windows v Centru za omrežje in deljenje prikaže adapter WireGuard kot »Brez dostopa do omrežja« ali »Brez dostopa do interneta«. To je pričakovano obnašanje, saj Windows adapterjev VPN-tunelov ne obravnava kot standardne internetne povezave, kar pa ne vpliva na delovanje tunela. Windows določi ta status s svojim preverjanjem povezljivosti, ki preverja določene Microsoftove URL-je, zato se opozorilo lahko prikaže tudi, če so ti preizkusi blokirani ali jih vaš DNS ne razreši, celo če tunel deluje.

Da bi se prepričali, da tunel deluje, preverite njegov status v odjemalcu WireGuard. Aktiven tunel prikazuje status »Aktiven« skupaj s števci prenosa podatkov. Če se števci povečujejo, tunel prenaša promet.

Na strežniku lahko med delovanjem tunela tudi preverite, ali WireGuard posluša na svojem UDP-vratu:

netstat -ano | findstr 51820

V PowerShellu je ustreznik:

Get-NetUDPEndpoint -LocalPort 51820

Zamenjajte 51820 s svojim WireGuard-ovim vratom. Če se ne prikaže nič, tunel ni aktiven ali pa se vrata razlikujejo od tistih, ki so nastavljena v konfiguraciji strežnika.

Nato odprite ukazno vrstico in izvedite ping na notranji naslov tunela strežnika:

ping 10.0.0.1

Zamenjajte 10.0.0.1 z dejanskim notranjim IP-naslovom, ki ste ga nastavili za strežnik. Odgovori potrjujejo, da tunel deluje.

Če odjemalec uporablja AllowedIPs = 0.0.0.0/0, lahko prav tako preverite, ali se promet usmerja skozi tunel:

tracert 8.8.8.8

Prvi skok mora biti notranji IP-naslov strežnika WireGuard.

Preverjanje rokovanja WireGuard

Usklajevanje je najbolj uporaben kazalnik pri diagnosticiranju povezave WireGuard. V aplikaciji WireGuard odprite tunel in opazujte polje »Latest handshake «. Pri delujočem tunelu se usklajevanje prikaže v nekaj sekundah po aktivaciji, nato pa se med prenosom podatkov redno posodablja. Če je tunel v mirovanju, lahko med posameznimi handshake-i mine nekaj časa, zato je kratek presledek normalen. Če polje ostane prazno, se partnerji ne morejo medsebojno povezati, kar običajno kaže na napačno končno točko (Endpoint), zaprt UDP-vrat ali neujemanje ključev.

Handshake lahko preverite tudi iz ukazne vrstice z orodjem wg, ki je priloženo programu WireGuard:

wg show

Izpis prikazuje vsakega partnerja skupaj z njegovim zadnjim časom vzpostavitve povezave in števci prenosa.

Razumevanje AllowedIPs

Vrednost AllowedIPs v konfiguraciji odjemalca določa, kateri promet se pošilja skozi tunel. Na kratko: na odjemalcu AllowedIPs določa, kateri paketi se pošiljajo v tunel, medtem ko na strežniku določa, kateri paketi se sprejemajo od določenega odjemalca in kam se usmerjajo.

Vrednost 0.0.0.0/0 usmerja ves promet skozi tunel, vključno z običajnim brskanjem po internetu. Uporabite jo, če želite popolno zaščito prometa. Da bi ta promet dosegel internet, ga mora strežnik prevesti. Glejte »Nastavitev NAT na strežniku za popolno tuneliranje« spodaj.

Vrednost, kot je 10.0.0.0/24, preusmerja skozi tunel le promet znotraj notranjega omrežja, medtem ko običajni internetni promet še naprej uporablja običajno povezavo. Uporabite jo, kadar morate dostopati le do določenih virov v oddaljenem omrežju.

Navesti lahko več podomrežij, ločenih z vejicami, na primer 10.0.0.0/24, 192.168.1.0/24.

Tip

Možnost »Blokiraj promet zunaj tunela (kill-switch) « v urejevalniku tunela v celoti velja pri nastavitvi AllowedIPs = 0.0.0.0/0. Blokira vse, kar bi potovalo zunaj tunela, s čimer se blokira tudi lokalno omrežje. Če potrebujete dostop do tiskalnikov ali drugih naprav v lokalnem omrežju, pustite kill-switch onemogočen.

Warning

Nastavitev AllowedIPs = 0.0.0.0/0 usmeri vsako povezavo skozi tunel. Če to uporabite na oddaljenem strežniku, ki ga upravljate prek RDP, se lahko RDP-seja prekine takoj, ko tunel postane aktiven, saj se promet strežnika preusmeri. Na strežniku, do katerega dostopate prek RDP, preusmerite le tista podomrežja, ki jih potrebujete, in preizkusite z manjšo vrednostjo AllowedIPs, preden preklopite na 0.0.0.0/0.

Nastavitev NAT na strežniku za popolno tuneliranje

Če odjemalci uporabljajo AllowedIPs = 0.0.0.0/0 in želite, da njihov promet dejansko doseže internet prek strežnika, mora strežnik notranje naslove WireGuarda prevajati na svoj zunanji naslov. V sistemu Windows se to izvede z ukazom New-NetNat, ne pa s skripti PostUp in PostDown, ki se uporabljata v sistemu Linux.

Na strežniku odprite PowerShell kot skrbnik in izvedite naslednje, pri čemer uporabite podomrežje tunela, ki ste ga dodelili strežniku:

New-NetNat -Name WireGuardNAT -InternalIPInterfaceAddressPrefix 10.0.0.0/24

Zamenjajte 10.0.0.0/24 s svojim podomrežjem tunela in se prepričajte, da predpona pokriva vse naslove odjemalcev, ki jih dodelite. Odjemalec zunaj tega območja, na primer 10.0.1.2, ne bi ustrezal temu pravilu. Aktivna pravila lahko kadarkoli pregledate:

Get-NetNat

Če želite pravilo NAT kasneje odstraniti, izvedite:

Remove-NetNat -Name WireGuardNAT

Če se odjemalci povežejo in je vzpostavitev povezave uspešna, njihov internetni promet pa še vedno ne poteka prek strežnika, omogočite posredovanje IP na vmesnikih, vključenih v usmerjanje, in ponovno preizkusite. Natančna oblika je odvisna od različice sistema Windows, na primer:

Set-NetIPInterface -InterfaceAlias "Ethernet" -Forwarding Enabled

Uporabite ga za zunanji vmesnik, ki prenaša internetni promet, in za vmesnik WireGuard, pri čemer uporabite njihova prava imena iz Get-NetIPInterface.

Info

New-NetNat zahteva Windows 10, Windows 11 ali Windows Server 2016 in novejše različice, na nekaterih sistemih pa mora biti omogočena funkcija Hyper-V, tudi če Hyper-V sicer ne uporabljate. Na nekaterih VPS-paketih funkcije Hyper-V ni mogoče omogočiti, kar onemogoča uporabo te metode. Ali zadostuje sam ukaz New-NetNat ali je treba omogočiti tudi posredovanje IP-naslovov, je odvisno od različice sistema Windows, zato to preverite na svojem strežniku, če popolno tuneliranje ne deluje

Odpravljanje težav

Tunel je aktiven, vendar ni povezave s strežnikom. Preverite, ali je UDP-vrata WireGuard, na primer 51820, odprta v požarnem zidu na strežniku. Preverite, ali so javni ključi pravilno kopirani med konfiguracijami strežnika in odjemalca. Prepričajte se, da končna točka v konfiguraciji odjemalca kaže na dejanski javni IP-naslov strežnika, ne pa na notranji naslov tunela.

DNS po vzpostavitvi povezave ne deluje. V razdelek vmesnika odjemalca dodajte DNS-strežnik:

[Interface] PrivateKey = ... Address = ... DNS = 1.1.1.1, 1.0.0.1

Števci paketov se ne povečujejo. Tunel ne prenaša podatkov. Preverite, ali je AllowedIPs pravilno nastavljen na obeh straneh, ali se notranji naslovi WireGuarda ne prekrivajo z obstoječim lokalnim omrežjem in ali ListenPort še ni v uporabi v drugi aplikaciji.

Za diagnosticiranje težave potrebujete več podrobnosti. Odprite tunel v aplikaciji WireGuard in si oglejte zavihek »Log«, ki beleži vzpostavitve povezave, napake in dogodke povezave v realnem času. Če ga morate deliti, lahko dnevnik od tam izvozite.

Samodejni zagon WireGuarda po ponovnem zagonu strežnika

Da bo tunel deloval tudi po ponovnem zagonu, ga namestite kot storitev sistema Windows. Ko je tunel nameščen kot storitev, se po ponovnem zagonu zažene samodejno. Odprite ukazno vrstico ali PowerShell kot skrbnik in izvedite naslednje, pri čemer uporabite pot do konfiguracijske datoteke vašega strežnika:

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

To ukazno vrstico izvedite le enkrat, ne ob vsakem zagonu. Z aktiviranjem tunela iz aplikacije WireGuard se običajno namesti ista storitev, zato v večini primerov zadostuje enkratna aktivacija. Če želite storitev kasneje odstraniti, uporabite ime tunela, ki je ime konfiguracijske datoteke brez končnice .conf.

wireguard /uninstalltunnelservice wg_server

Če želite storitev ponovno zagnati, na primer po urejanju konfiguracije, izvedite ukaz za odstranitev, nato pa ponovno ukaz za namestitev.

Info

Ker tunel deluje kot storitev, ni potrebna ločena naloga v načrtovalniku opravil.

Ponovno zaženite strežnik in preverite, ali se tunel zažene samodejno.

VAT

  • Other

    Ex. VAT

    0%
  • austria

    Austria

    20%
  • Belgium

    Belgium

    21%
  • Bulgaria

    Bulgaria

    20%
  • Croatia

    Croatia

    25%
  • Cyprus

    Cyprus

    19%
  • Czech Republic

    Czech Republic

    21%
  • Denmark

    Denmark

    25%
  • Estonia

    Estonia

    22%
  • France

    France

    20%
  • Finland

    Finland

    24%
  • Germany

    Germany

    19%
  • Greece

    Greece

    24%
  • Hungary

    Hungary

    27%
  • Ireland

    Ireland

    23%
  • Italy

    Italy

    22%
  • Latvia

    Latvia

    21%
  • Lithuania

    Lithuania

    21%
  • Luxembourg

    Luxembourg

    17%
  • Malta

    Malta

    18%
  • Netherlands

    Netherlands

    21%
  • Poland

    Poland

    23%
  • Portugal

    Portugal

    23%
  • Romania

    Romania

    19%
  • Slovakia

    Slovakia

    20%
  • Slovenia

    Slovenia

    22%
  • Spain

    Spain

    21%
  • Sweden

    Sweden

    25%
  • USA

    USA

    0%
european
states
  • kingdom
  • germany
  • Español
  • French
  • Hrvatska
  • Italiano
  • Poland
  • Slovenski
  • ukraine
  • Türkçe
  • Русский
  • Other
  • Austria
  • Belgium
  • Bulgaria
  • Croatia
  • Cyprus
  • Czech Republic
  • Denmark
  • Estonia
  • Finland
  • France
  • Germany
  • Greece
  • Hungary
  • Ireland
  • Italy
  • Latvia
  • Lithuania
  • Luxembourg
  • Malta
  • Netherlands
  • Poland
  • Portugal
  • Romania
  • Slovakia
  • Slovenia
  • Spain
  • Sweden
  • USA