αž€αžΆαžšαžŠαŸ†αž‘αžΎαž„ VPN αžŸαžΆαž˜αž‰αŸ’αž‰αž‡αžΆαž˜αž½αž™ WireGuard αž“αž·αž„ Raspberry Pi αž‡αžΆαž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž˜αŸ

αžŠαŸ„αž™αžŸαžΆαžšαžαŸ‚ WireGuard αž“αžΉαž„αž€αŸ’αž›αžΆαž™αž‡αžΆαž•αŸ’αž“αŸ‚αž€ αž“αŸƒαžαžΊαžŽαŸ‚αž›αž›αžΈαž“αž»αž… 5.6 αž“αžΆαž–αŸαž›αžαžΆαž„αž˜αž»αž αžαŸ’αž‰αž»αŸ†αž”αžΆαž“αžŸαž˜αŸ’αžšαŸαž…αž…αž·αžαŸ’αžαž˜αžΎαž›αž–αžΈαžšαž”αŸ€αž”αžŠαŸ‚αž›αž›αŸ’αž’αž”αŸ†αž•αž»αžαž€αŸ’αž“αž»αž„αž€αžΆαžšαžšαž½αž˜αž”αž‰αŸ’αž…αžΌαž› VPN αž“αŸαŸ‡αž‡αžΆαž˜αž½αž™αžšαž”αžŸαŸ‹αžαŸ’αž‰αž»αŸ†αŸ” αžšαŸ‰αŸ„αžαž‘αŸαžš LTE / αž…αŸ†αžŽαž»αž…αž…αžΌαž›αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž“αŸ…αž›αžΎ Raspberry Pi.

αž§αž”αž€αžšαžŽαŸ

  • Raspberry Pi 3 αž‡αžΆαž˜αž½αž™αž˜αŸ‰αžΌαžŒαž»αž› LTE αž“αž·αž„αž’αžΆαžŸαž™αžŠαŸ’αž‹αžΆαž“ IP αžŸαžΆαž’αžΆαžšαžŽαŸˆαŸ” αžœαžΆαž“αžΉαž„αž˜αžΆαž“αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž˜αŸ VPN αž“αŸ…αž‘αžΈαž“αŸαŸ‡ (αžαž‘αŸ…αž“αŸαŸ‡αž“αŸ…αž€αŸ’αž“αž»αž„αž’αžαŸ’αžαž”αž‘αžœαžΆαžαŸ’αžšαžΌαžœαž”αžΆαž“αž αŸ… αž’αŸ’αž“αž€αžŠαžΎαžšαž‚αŸ‚αž˜)
  • αž‘αžΌαžšαžŸαŸαž–αŸ’αž‘ Android αžŠαŸ‚αž›αžαŸ’αžšαžΌαžœαžαŸ‚αž”αŸ’αžšαžΎ VPN αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž‘αŸ†αž“αžΆαž€αŸ‹αž‘αŸ†αž“αž„αž‘αžΆαŸ†αž„αž’αžŸαŸ‹αŸ”
  • αž€αž»αŸ†αž–αŸ’αž™αžΌαž‘αŸαžšαž™αž½αžšαžŠαŸƒαž›αžΈαž“αž»αž…αžŠαŸ‚αž›αž‚αž½αžšαž”αŸ’αžšαžΎαžαŸ‚ VPN αž“αŸ…αž€αŸ’αž“αž»αž„αž”αžŽαŸ’αžαžΆαž‰

αžšαžΆαž›αŸ‹αž§αž”αž€αžšαžŽαŸαžŠαŸ‚αž›αž—αŸ’αž‡αžΆαž”αŸ‹αž‘αŸ… VPN αžαŸ’αžšαžΌαžœαžαŸ‚αž’αžΆαž…αž—αŸ’αž‡αžΆαž”αŸ‹αž‘αŸ…αž§αž”αž€αžšαžŽαŸαž•αŸ’αžŸαŸαž„αž‘αŸ€αžαž‘αžΆαŸ†αž„αž’αžŸαŸ‹αŸ” αž§αž‘αžΆαž αžšαžŽαŸ αž‘αžΌαžšαžŸαž–αŸ’αž‘αž‚αž½αžšαžαŸ‚αž’αžΆαž…αž—αŸ’αž‡αžΆαž”αŸ‹αž‘αŸ…αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž˜αŸαž”αžŽαŸ’αžαžΆαž‰αž“αŸ…αž›αžΎαž€αž»αŸ†αž–αŸ’αž™αžΌαž‘αŸαžšαž™αž½αžšαžŠαŸƒ αž”αŸ’αžšαžŸαž·αž“αž”αžΎαž§αž”αž€αžšαžŽαŸαž‘αžΆαŸ†αž„αž–αžΈαžšαž‡αžΆαž•αŸ’αž“αŸ‚αž€αž“αŸƒαž”αžŽαŸ’αžαžΆαž‰ VPN αŸ” αž”αŸ’αžšαžŸαž·αž“αž”αžΎαž€αžΆαžšαžšαŸ€αž”αž…αŸ†αž”αŸ’αžšαŸ‚αž‘αŸ…αž‡αžΆαžŸαžΆαž˜αž‰αŸ’αž‰ αž“αŸ„αŸ‡αž’αŸ’αž“αž€αž’αžΆαž…αž‚αž·αžαž’αŸ†αž–αžΈαž€αžΆαžšαž—αŸ’αž‡αžΆαž”αŸ‹αž•αŸ’αž‘αŸƒαžαž»αž‘αŸ… VPN (αžαžΆαž˜αžšαž™αŸˆαž’αŸŠαžΈαžŸαžΊαžšαžŽαž·αž)αŸ”

αžŠαŸ„αž™β€‹αž–αž·αž…αžΆαžšαžŽαžΆβ€‹αžαžΆβ€‹αž€αžΆαžšβ€‹αžαž—αŸ’αž‡αžΆαž”αŸ‹β€‹αžαžΆαž˜β€‹αžαŸ’αžŸαŸ‚ αž“αž·αž„β€‹αž₯αžβ€‹αžαŸ’αžŸαŸ‚β€‹αž€αžΆαž“αŸ‹αžαŸ‚β€‹αž˜αžΆαž“β€‹αžŸαž»αžœαžαŸ’αžαž·αž—αžΆαž–β€‹αž€αžΆαž“αŸ‹αžαŸ‚β€‹αžαž·αž…β€‹αž‘αŸ…αŸ—β€‹αžαžΆαž˜β€‹αž–αŸαž›αžœαŸαž›αžΆ (αž€αžΆαžšαžœαžΆαž™αž”αŸ’αžšαž αžΆαžšαž‚αŸ„αž›αžŠαŸ…, αž€αžΆαžšαžœαžΆαž™αž›αž»αž€αžšαž”αžŸαŸ‹ KRACK WPA2 ΠΈ αž€αžΆαžšαžœαžΆαž™αž”αŸ’αžšαž αžΆαžš Dragonblood αž”αŸ’αžšαž†αžΆαŸ†αž„αž“αžΉαž„ WPA3) αžαŸ’αž‰αž»αŸ†αž€αŸ†αž–αž»αž„αž–αž·αž…αžΆαžšαžŽαžΆαž™αŸ‰αžΆαž„αž˜αŸ‰αžαŸ‹αž…αžαŸ‹αž€αŸ’αž“αž»αž„αž€αžΆαžšαž”αŸ’αžšαžΎ WireGuard αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž§αž”αž€αžšαžŽαŸαž‘αžΆαŸ†αž„αž’αžŸαŸ‹αžšαž”αžŸαŸ‹αžαŸ’αž‰αž»αŸ† αž˜αž·αž“αžαžΆαž–αž½αž€αž‚αŸαžŸαŸ’αžαž·αžαž“αŸ…αž€αŸ’αž“αž»αž„αž”αžšαž·αž™αžΆαž€αžΆαžŸαž”αŸ‚αž”αžŽαžΆαž“αŸ„αŸ‡αž‘αŸαŸ”

αž€αžΆαžšαžŠαŸ†αž‘αžΎαž„αž€αž˜αŸ’αž˜αžœαž·αž’αžΈ

WireGuard αž•αŸ’αžαž›αŸ‹ αž€αž‰αŸ’αž…αž”αŸ‹αžŠαŸ‚αž›αž”αžΆαž“αž…αž„αž€αŸ’αžšαž„αž‡αžΆαž˜αž»αž“ αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αžΆαžšαž…αŸ‚αž€αž…αžΆαž™ Linux, Windows αž“αž·αž„ macOS αž—αžΆαž‚αž…αŸ’αžšαžΎαž“αŸ” αž€αž˜αŸ’αž˜αžœαž·αž’αžΈ Android αž“αž·αž„ iOS αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αž‰αŸ’αž‡αžΌαž“αžαžΆαž˜αžαžαž€αž˜αŸ’αž˜αžœαž·αž’αžΈαŸ”

αžαŸ’αž‰αž»αŸ†αž˜αžΆαž“ Fedora Linux 31 αž…αž»αž„αž€αŸ’αžšαŸ„αž™αž”αž„αŸ’αž’αžŸαŸ‹ αž αžΎαž™αžαŸ’αž‰αž»αŸ†αžαŸ’αž‡αž·αž›αž–αŸαž€αž€αŸ’αž“αž»αž„αž€αžΆαžšαž’αžΆαž“αžŸαŸ€αžœαž—αŸ…αžŽαŸ‚αž“αžΆαŸ†αž˜αž»αž“αž–αŸαž›αžŠαŸ†αž‘αžΎαž„αŸ” αž‘αžΎαž”αžαŸ‚αžšαž€αžƒαžΎαž‰αž€αž‰αŸ’αž…αž”αŸ‹ wireguard-toolsαžŠαŸ†αž‘αžΎαž„αž–αž½αž€αžœαžΆ αž αžΎαž™αž”αž“αŸ’αž‘αžΆαž”αŸ‹αž˜αž€αž˜αž·αž“αž’αžΆαž…αžŠαžΉαž„αžαžΆαž αŸαžαž»αž’αŸ’αžœαžΈαž”αžΆαž“αž‡αžΆαž‚αŸ’αž˜αžΆαž“αž’αŸ’αžœαžΈαžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαŸ” αž€αžΆαžšαžŸαŸŠαžΎαž”αž’αž„αŸ’αž€αŸαžαž”αž“αŸ’αžαŸ‚αž˜αž”αžΆαž“αž”αž„αŸ’αž αžΆαž‰αžαžΆαžαŸ’αž‰αž»αŸ†αž˜αž·αž“αž˜αžΆαž“αž€αž‰αŸ’αž…αž”αŸ‹αžŠαŸ†αž‘αžΎαž„αž‘αŸαŸ” wireguard-dkms (αž‡αžΆαž˜αž½αž™αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž”αž‰αŸ’αž‡αžΆαž”αžŽαŸ’αžαžΆαž‰) αž”αŸ‰αž»αž“αŸ’αžαŸ‚αžœαžΆαž˜αž·αž“αž“αŸ…αž€αŸ’αž“αž»αž„αžƒαŸ’αž›αžΆαŸ†αž„αž“αŸƒαž€αžΆαžšαž…αŸ‚αž€αž…αžΆαž™αžšαž”αžŸαŸ‹αžαŸ’αž‰αž»αŸ†αž‘αŸαŸ”

αž”αŸ’αžšαžŸαž·αž“αž”αžΎαžαŸ’αž‰αž»αŸ†αž”αžΆαž“αž’αžΆαž“αž€αžΆαžšαžŽαŸ‚αž“αžΆαŸ† αžαŸ’αž‰αž»αŸ†αž“αžΉαž„αž…αžΆαžαŸ‹αžœαž·αž’αžΆαž“αž€αžΆαžšαžαŸ’αžšαžΉαž˜αžαŸ’αžšαžΌαžœαŸ–

$ sudo dnf copr enable jdoss/wireguard
$ sudo dnf install wireguard-dkms wireguard-tools

αžαŸ’αž‰αž»αŸ†αž˜αžΆαž“αž€αžΆαžšαž…αŸ‚αž€αž…αžΆαž™ Raspbian Buster αžŠαŸ‚αž›αž”αžΆαž“αžŠαŸ†αž‘αžΎαž„αž“αŸ…αž›αžΎ Raspberry Pi αžšαž”αžŸαŸ‹αžαŸ’αž‰αž»αŸ† αž˜αžΆαž“αž€αž‰αŸ’αž…αž”αŸ‹αžšαž½αž…αž αžΎαž™αž“αŸ…αž‘αžΈαž“αŸ„αŸ‡ wireguard, αžŠαŸ†αž‘αžΎαž„αžœαžΆαŸ–

$ sudo apt install wireguard

αž“αŸ…αž›αžΎαž‘αžΌαžšαžŸαŸαž–αŸ’αž‘ Android αžšαž”αžŸαŸ‹αžαŸ’αž‰αž»αŸ†αžαŸ’αž‰αž»αŸ†αž”αžΆαž“αžŠαŸ†αž‘αžΎαž„αž€αž˜αŸ’αž˜αžœαž·αž’αžΈ αž›αž½αžŸαž αŸ’αž‚αžΌαž’αŸαžŸαž—αžΈαž’αŸαžŸ αž–αžΈαž€αžΆαžαžΆαž‘αž»αž€ Google App Store αž•αŸ’αž›αžΌαžœαž€αžΆαžšαŸ”

αž€αžΆαžšαžŠαŸ†αž‘αžΎαž„αžŸαŸ„

αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αžΆαžšαž•αŸ’αž‘αŸ€αž„αž•αŸ’αž‘αžΆαžαŸ‹αž—αžΆαž–αžŠαžΌαž…αž‚αŸ’αž“αžΆ Wireguard αž”αŸ’αžšαžΎαž‚αŸ’αžšαŸ„αž„αž€αžΆαžšαžŽαŸαžŸαŸ„αž―αž€αž‡αž“/αžŸαžΆαž’αžΆαžšαžŽαŸˆαžŸαžΆαž˜αž‰αŸ’αž‰ αžŠαžΎαž˜αŸ’αž”αžΈαž•αŸ’αž‘αŸ€αž„αž•αŸ’αž‘αžΆαžαŸ‹αž—αžΆαž–αžαŸ’αžšαžΉαž˜αžαŸ’αžšαžΌαžœαžšαž”αžŸαŸ‹αž˜αž·αžαŸ’αžαž—αž€αŸ’αžŠαž· VPN αŸ” αž’αŸ’αž“αž€αž’αžΆαž…αž”αž„αŸ’αž€αžΎαžαžŸαŸ„ VPN αž”αžΆαž“αž™αŸ‰αžΆαž„αž„αžΆαž™αžŸαŸ’αžšαž½αž›αžŠαŸ„αž™αž”αŸ’αžšαžΎαž–αžΆαž€αŸ’αž™αž”αž‰αŸ’αž‡αžΆαžαžΆαž„αž€αŸ’αžšαŸ„αž˜αŸ–

$ wg genkey | tee wg-laptop-private.key |  wg pubkey > wg-laptop-public.key
$ wg genkey | tee wg-server-private.key |  wg pubkey > wg-server-public.key
$ wg genkey | tee wg-mobile-private.key |  wg pubkey > wg-mobile-public.key

αž“αŸαŸ‡αž•αŸ’αžαž›αŸ‹αž±αŸ’αž™αž™αžΎαž„αž“αžΌαžœαž‚αžΌαž‚αž“αŸ’αž›αžΉαŸ‡αž…αŸ†αž“αž½αž“αž”αžΈ (αž―αž€αžŸαžΆαžšαž”αŸ’αžšαžΆαŸ†αž˜αž½αž™) αŸ” αž™αžΎαž„αž“αžΉαž„αž˜αž·αž“αžŸαŸ†αžŠαŸ…αž›αžΎαž―αž€αžŸαžΆαžšαž“αŸ…αž€αŸ’αž“αž»αž„αž€αžΆαžšαž€αŸ†αžŽαžαŸ‹αž“αŸ„αŸ‡αž‘αŸ αž”αŸ‰αž»αž“αŸ’αžαŸ‚αž…αž˜αŸ’αž›αž„αž˜αžΆαžαž·αž€αžΆαž“αŸ…αž‘αžΈαž“αŸαŸ‡αŸ– αž‚αž“αŸ’αž›αžΉαŸ‡αž“αžΈαž˜αž½αž™αŸ—αž‚αžΊαž˜αž½αž™αž”αž“αŸ’αž‘αžΆαžαŸ‹αž€αŸ’αž“αž»αž„ base64αŸ”

αž€αžΆαžšαž”αž„αŸ’αž€αžΎαžαž―αž€αžŸαžΆαžšαž€αŸ†αžŽαžαŸ‹αžšαž…αž“αžΆαžŸαž˜αŸ’αž–αŸαž“αŸ’αž’αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž˜αŸ VPN (Raspberry Pi)

αž€αžΆαžšαž€αŸ†αžŽαžαŸ‹αžšαž…αž“αžΆαžŸαž˜αŸ’αž–αŸαž“αŸ’αž’αž‚αžΊαžŸαžΆαž˜αž‰αŸ’αž‰αžŽαžΆαžŸαŸ‹, αžαŸ’αž‰αž»αŸ†αž”αžΆαž“αž”αž„αŸ’αž€αžΎαžαž―αž€αžŸαžΆαžšαžαžΆαž„αž€αŸ’αžšαŸ„αž˜ /etc/wireguard/wg0.conf:

[Interface]
Address = 10.200.200.1/24
ListenPort = 51820
PrivateKey = <copy private key from wg-server-private.key>
PostUp   = iptables -A FORWARD -i %i -j ACCEPT; iptables -t nat -A POSTROUTING -o wwan0 -j MASQUERADE
PostDown = iptables -D FORWARD -i %i -j ACCEPT; iptables -t nat -D POSTROUTING -o wwan0 -j MASQUERADE

[Peer]
# laptop
PublicKey = <copy public key from wg-laptop-public.key>
AllowedIPs = 10.200.200.2/32

[Peer]
# mobile phone
PublicKey = <copy public key from wg-mobile-public.key>
AllowedIPs = 10.200.200.3/32

αž€αŸ†αžŽαžαŸ‹αž…αŸ†αžŽαžΆαŸ†αž–αžΈαžšαž”αžΈαŸ–

  • αž“αŸ…αž€αž“αŸ’αž›αŸ‚αž„αžŸαž˜αžŸαŸ’αžšαž”αž’αŸ’αž“αž€αžαŸ’αžšαžΌαžœαž”αž‰αŸ’αž…αžΌαž›αž”αž“αŸ’αž‘αžΆαžαŸ‹αž–αžΈαž―αž€αžŸαžΆαžšαžŠαŸ„αž™αž”αŸ’αžšαžΎαž‚αŸ’αžšαžΆαž”αŸ‹αž…αž»αž…
  • VPN αžšαž”αžŸαŸ‹αžαŸ’αž‰αž»αŸ†αž€αŸ†αž–αž»αž„αž”αŸ’αžšαžΎαž€αŸ’αžšαž»αž˜αžαžΆαž„αž€αŸ’αž“αž»αž„ 10.200.200.0/24
  • αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αŸ’αžšαž»αž˜ PostUp/PostDown αžαŸ’αž‰αž»αŸ†αž˜αžΆαž“αž…αŸ†αžŽαž»αž…αž”αŸ’αžšαž‘αžΆαž€αŸ‹αž”αžŽαŸ’αžαžΆαž‰αžαžΆαž„αž€αŸ’αžšαŸ… wwan0 αž’αŸ’αž“αž€αž’αžΆαž…αž˜αžΆαž“αž˜αž½αž™αž•αŸ’αžŸαŸαž„αž‘αŸ€αž (αž§αž‘αžΆαž αžšαžŽαŸ eth0)

αž”αžŽαŸ’αžαžΆαž‰ VPN αžαŸ’αžšαžΌαžœαž”αžΆαž“αž›αžΎαž€αž‘αžΎαž„αž™αŸ‰αžΆαž„αž„αžΆαž™αžŸαŸ’αžšαž½αž›αžŠαŸ„αž™αž”αŸ’αžšαžΎαž–αžΆαž€αŸ’αž™αž”αž‰αŸ’αž‡αžΆαžαžΆαž„αž€αŸ’αžšαŸ„αž˜αŸ–

$ sudo wg-quick up wg0

αž–αŸαžαŸŒαž˜αžΆαž“αž›αž˜αŸ’αž’αž·αžαžαžΌαž…αž˜αž½αž™αŸ– αž‡αžΆαž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž˜αŸ DNS αžŠαŸ‚αž›αžαŸ’αž‰αž»αŸ†αž”αžΆαž“αž”αŸ’αžšαžΎ dnsmasq αž—αŸ’αž‡αžΆαž”αŸ‹αž‘αŸ…αž…αŸ†αžŽαž»αž…αž”αŸ’αžšαž‘αžΆαž€αŸ‹αž”αžŽαŸ’αžαžΆαž‰ br0αžαŸ’αž‰αž»αŸ†αž€αŸαž”αžΆαž“αž”αž“αŸ’αžαŸ‚αž˜αž§αž”αž€αžšαžŽαŸαž•αž„αžŠαŸ‚αžšαŸ” wg0 αž‘αŸ…αž”αž‰αŸ’αž‡αžΈαž§αž”αž€αžšαžŽαŸαžŠαŸ‚αž›αž”αžΆαž“αž’αž“αž»αž‰αŸ’αž‰αžΆαžαŸ” αž“αŸ…αž€αŸ’αž“αž»αž„ dnsmasq αž“αŸαŸ‡αžαŸ’αžšαžΌαžœαž”αžΆαž“αž’αŸ’αžœαžΎαžŠαŸ„αž™αž”αž“αŸ’αžαŸ‚αž˜αž”αž“αŸ’αž‘αžΆαžαŸ‹αž…αŸ†αžŽαž»αž…αž”αŸ’αžšαž‘αžΆαž€αŸ‹αž”αžŽαŸ’αžαžΆαž‰αžαŸ’αž˜αžΈαž‘αŸ…αž―αž€αžŸαžΆαžšαž€αŸ†αžŽαžαŸ‹αžšαž…αž“αžΆαžŸαž˜αŸ’αž–αŸαž“αŸ’αž’ /etc/dnsmasq.confαž§αž‘αžΆαž αžšαžŽαŸ:

interface=br0
interface=wg0

αž›αžΎαžŸαž–αžΈαž“αŸαŸ‡αž‘αŸ€αžαžαŸ’αž‰αž»αŸ†αž”αžΆαž“αž”αž“αŸ’αžαŸ‚αž˜αž…αŸ’αž”αžΆαž”αŸ‹ iptable αžŠαžΎαž˜αŸ’αž”αžΈαž’αž“αž»αž‰αŸ’αž‰αžΆαžαž±αŸ’αž™αž…αžšαžΆαž…αžšαž‘αŸ…αž€αžΆαž“αŸ‹αž…αŸ’αžšαž€αžŸαŸ’αžαžΆαž”αŸ‹ UDP (51280):

$ sudo iptables -I INPUT -p udp --dport 51820 -j ACCEPT

αž₯αž‘αžΌαžœαž“αŸαŸ‡αž’αŸ’αžœαžΈαŸ—αž€αŸ†αž–αž»αž„αžŠαŸ†αžŽαžΎαžšαž€αžΆαžš αž™αžΎαž„αž’αžΆαž…αžšαŸ€αž”αž…αŸ†αž€αžΆαžšαž”αžΎαž€αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαžŠαŸ„αž™αžŸαŸ’αžœαŸαž™αž”αŸ’αžšαžœαžαŸ’αžαž·αž“αŸƒαž•αŸ’αž›αžΌαžœαžšαžΌαž„αž€αŸ’αžšαŸ„αž˜αžŠαžΈ VPNαŸ–

$ sudo systemctl enable [email protected]

αž€αžΆαžšαž€αŸ†αžŽαžαŸ‹αžšαž…αž“αžΆαžŸαž˜αŸ’αž–αŸαž“αŸ’αž’αž’αžαž·αžαž·αž‡αž“αž“αŸ…αž›αžΎαž€αž»αŸ†αž–αŸ’αž™αžΌαž‘αŸαžšαž™αž½αžšαžŠαŸƒ

αž”αž„αŸ’αž€αžΎαžαž―αž€αžŸαžΆαžšαž€αŸ†αžŽαžαŸ‹αžšαž…αž“αžΆαžŸαž˜αŸ’αž–αŸαž“αŸ’αž’αž“αŸ…αž›αžΎαž€αž»αŸ†αž–αŸ’αž™αžΌαž‘αŸαžšαž™αž½αžšαžŠαŸƒ /etc/wireguard/wg0.conf αž‡αžΆαž˜αž½αž™αž“αžΉαž„αž€αžΆαžšαž€αŸ†αžŽαžαŸ‹αžŠαžΌαž…αž‚αŸ’αž“αžΆαŸ–

[Interface]
Address = 10.200.200.2/24
PrivateKey = <copy private key from wg-laptop-private.key>

[Peer]
PublicKey = <copy public key from wg-server-public.key>
AllowedIPs = 10.200.200.0/24
Endpoint = edgewalker:51820

αž…αŸ†αžŽαžΆαŸ†:

  • αž‡αŸ†αž“αž½αžŸαž±αŸ’αž™ edgewalker αž’αŸ’αž“αž€αžαŸ’αžšαžΌαžœαž”αž‰αŸ’αž‡αžΆαž€αŸ‹ IP αžŸαžΆαž’αžΆαžšαžŽαŸˆ αž¬αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž˜αŸ VPN
  • αžŠαŸ„αž™αž€αžΆαžšαž€αŸ†αžŽαžαŸ‹ AllowedIPs αž“αŸ…αž›αžΎ 10.200.200.0/24αž™αžΎαž„αž”αŸ’αžšαžΎαžαŸ‚ VPN αžŠαžΎαž˜αŸ’αž”αžΈαž…αžΌαž›αž”αŸ’αžšαžΎαž”αžŽαŸ’αžαžΆαž‰αžαžΆαž„αž€αŸ’αž“αž»αž„αŸ” αž…αžšαžΆαž…αžšαžŽαŸαž‘αŸ…αž€αžΆαž“αŸ‹αž’αžΆαžŸαž™αžŠαŸ’αž‹αžΆαž“ IP/αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž˜αŸαž•αŸ’αžŸαŸαž„αž‘αŸ€αžαž‘αžΆαŸ†αž„αž’αžŸαŸ‹αž“αžΉαž„αž”αž“αŸ’αžαž‘αŸ…αžαžΆαž˜αžšαž™αŸˆαž”αžŽαŸ’αžαžΆαž‰αž”αžΎαž€ "αž’αž˜αŸ’αž˜αžαžΆ"αŸ” αžœαžΆαž€αŸαž“αžΉαž„αž”αŸ’αžšαžΎαž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž˜αŸ DNS αžŠαŸ‚αž›αž”αžΆαž“αž€αŸ†αžŽαžαŸ‹αž‘αž»αž€αž‡αžΆαž˜αž»αž“αž“αŸ…αž›αžΎαž€αž»αŸ†αž–αŸ’αž™αžΌαž‘αŸαžšαž™αž½αžšαžŠαŸƒαž•αž„αžŠαŸ‚αžšαŸ”

αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αžΆαžšαž’αŸ’αžœαžΎαžαŸαžŸαŸ’αž αž“αž·αž„αž€αžΆαžšαž”αžΎαž€αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαžŠαŸ„αž™αžŸαŸ’αžœαŸαž™αž”αŸ’αžšαžœαžαŸ’αžαž· αž™αžΎαž„αž”αŸ’αžšαžΎαž–αžΆαž€αŸ’αž™αž”αž‰αŸ’αž‡αžΆαžŠαžΌαž…αž‚αŸ’αž“αžΆαŸ” wg-quick ΠΈ systemd:

$ sudo wg-quick up wg0
$ sudo systemctl enable [email protected]

αžŠαŸ†αž‘αžΎαž„αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž—αŸ’αž‰αŸ€αžœαž“αŸ…αž›αžΎαž‘αžΌαžšαžŸαŸαž–αŸ’αž‘ Android

αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž‘αžΌαžšαžŸαŸαž–αŸ’αž‘ Android αž™αžΎαž„αž”αž„αŸ’αž€αžΎαžαž―αž€αžŸαžΆαžšαž€αŸ†αžŽαžαŸ‹αžšαž…αž“αžΆαžŸαž˜αŸ’αž–αŸαž“αŸ’αž’αžŸαŸ’αžšαžŠαŸ€αž„αž‚αŸ’αž“αžΆ (αžŸαžΌαž˜αž αŸ…αžœαžΆαžαžΆ mobile.conf):

[Interface]
Address = 10.200.200.3/24
PrivateKey = <copy private key from wg-mobile-private.key>
DNS = 10.200.200.1
        
[Peer]
PublicKey = <copy public key from wg-server-public.key>
AllowedIPs = 0.0.0.0/0
Endpoint = edgewalker:51820

αž˜αž·αž“αžŠαžΌαž…αž€αžΆαžšαž€αŸ†αžŽαžαŸ‹αž“αŸ…αž›αžΎαž€αž»αŸ†αž–αŸ’αž™αžΌαž‘αŸαžšαž™αž½αžšαžŠαŸƒαž‘αŸ αž‘αžΌαžšαžŸαŸαž–αŸ’αž‘αžαŸ’αžšαžΌαžœαžαŸ‚αž”αŸ’αžšαžΎαž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž˜αŸ VPN αžšαž”αžŸαŸ‹αž™αžΎαž„αž‡αžΆαž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž˜αŸ DNS (αž”αž“αŸ’αž‘αžΆαžαŸ‹ DNS) αž αžΎαž™αž€αŸαž†αŸ’αž›αž„αž€αžΆαžαŸ‹αž…αžšαžΆαž…αžšαžŽαŸαž‘αžΆαŸ†αž„αž’αžŸαŸ‹αžαžΆαž˜αžšαž™αŸˆαž•αŸ’αž›αžΌαžœαžšαžΌαž„αž€αŸ’αžšαŸ„αž˜αžŠαžΈ VPN (AllowedIPs = 0.0.0.0/0).

αž‡αŸ†αž“αž½αžŸαž±αŸ’αž™αž€αžΆαžšαž…αž˜αŸ’αž›αž„αž―αž€αžŸαžΆαžšαž‘αŸ…αž§αž”αž€αžšαžŽαŸαž…αž›αŸαžαžšαž”αžŸαŸ‹αž’αŸ’αž“αž€ αž’αŸ’αž“αž€αž’αžΆαž…αž”αŸ†αž”αŸ’αž›αŸ‚αž„αžœαžΆαž‘αŸ…αž‡αžΆαž€αžΌαžŠ QRαŸ–

$ sudo apt install qrencode
$ qrencode -t ansiutf8 < mobile.conf

αž›αŸαžαž€αžΌαžŠ QR αž“αžΉαž„αž…αŸαž‰αž‘αŸ…αž€αžΆαž“αŸ‹αž€αž»αž„αžŸαžΌαž›αž‡αžΆ ASCII αŸ” αžœαžΆαž’αžΆαž…αžαŸ’αžšαžΌαžœαž”αžΆαž“αžŸαŸ’αž€αŸαž“αž–αžΈαž€αž˜αŸ’αž˜αžœαž·αž’αžΈ Android VPN αž αžΎαž™αž“αžΉαž„αžŠαŸ†αž‘αžΎαž„αž•αŸ’αž›αžΌαžœαžšαžΌαž„αž€αŸ’αžšαŸ„αž˜αžŠαžΈ VPN αžŠαŸ„αž™αžŸαŸ’αžœαŸαž™αž”αŸ’αžšαžœαžαŸ’αžαž·αŸ”

αžŸαŸαž…αž€αŸ’αžαžΈαžŸαž“αŸ’αž“αž·αžŠαŸ’αž‹αžΆαž“

αž€αžΆαžšαžŠαŸ†αž‘αžΎαž„ WireGuard αž‚αžΊαž˜αžΆαž“αž›αž€αŸ’αžαžŽαŸˆαžœαŸαž‘αž˜αž“αŸ’αžαž”αžΎαž”αŸ’αžšαŸ€αž”αž’αŸ€αž”αž‘αŸ…αž“αžΉαž„ OpenVPN αŸ”

αž”αŸ’αžšαž—αž–: www.habr.com

αž”αž“αŸ’αžαŸ‚αž˜αž˜αžαž·αž™αŸ„αž”αž›αŸ‹