WireGuard เป€เบ›เบฑเบ™ VPN เบ—เบตเปˆเบเบดเปˆเบ‡เปƒเบซเบเปˆเบ‚เบญเบ‡เบญเบฐเบ™เบฒเบ„เบปเบ”เบšเป?

WireGuard เป€เบ›เบฑเบ™ VPN เบ—เบตเปˆเบเบดเปˆเบ‡เปƒเบซเบเปˆเบ‚เบญเบ‡เบญเบฐเบ™เบฒเบ„เบปเบ”เบšเป?

เป€เบงเบฅเบฒเป„เบ”เป‰เบกเบฒเป€เบ–เบดเบ‡เป€เบกเบทเปˆเบญ VPN เบšเปเปˆเปเบกเปˆเบ™เป€เบ„เบทเปˆเบญเบ‡เบกเบทเบ—เบตเปˆเปเบ›เบเบ›เบฐเบซเบผเบฒเบ”เบ‚เบญเบ‡เบœเบนเป‰เบšเปเบฅเบดเบซเบฒเบ™เบฅเบฐเบšเบปเบšเบˆเบฑเบšเบซเบ™เบงเบ”เบญเบตเบเบ•เปเปˆเป„เบ›. เบœเบนเป‰เปƒเบŠเป‰เบกเบตเบงเบฝเบเบ‡เบฒเบ™เบ—เบตเปˆเปเบ•เบเบ•เปˆเบฒเบ‡เบเบฑเบ™, เปเบ•เปˆเบ„เบงเบฒเบกเบˆเบดเบ‡เปเบฅเป‰เบงเปเบกเปˆเบ™เบงเปˆเบฒเบ—เบธเบเบ„เบปเบ™เบ•เป‰เบญเบ‡เบเบฒเบ™ VPN.

เบšเบฑเบ™เบซเบฒเบเบฑเบšเบเบฒเบ™เปเบเป‰เป„เบ‚ VPN เปƒเบ™เบ›เบฐเบˆเบธเบšเบฑเบ™เปเบกเปˆเบ™เบงเปˆเบฒเบžเบงเบเป€เบ‚เบปเบฒเบกเบตเบ„เบงเบฒเบกเบซเบเบธเป‰เบ‡เบเบฒเบเปƒเบ™เบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒเบขเปˆเบฒเบ‡เบ–เบทเบเบ•เป‰เบญเบ‡, เบฅเบฒเบ„เบฒเปเบžเบ‡เบ—เบตเปˆเบˆเบฐเบฎเบฑเบเบชเบฒ, เปเบฅเบฐเป€เบ•เบฑเบกเป„เบ›เบ”เป‰เบงเบเบฅเบฐเบซเบฑเบ”เบกเปเบฅเบฐเบ”เบปเบเบ‚เบญเบ‡เบ„เบธเบ™เบ™เบฐเบžเบฒเบšเบ—เบตเปˆเบซเบ™เป‰เบฒเบชเบปเบ‡เป„เบช.

เป€เบกเบทเปˆเบญเบซเบผเบฒเบเบ›เบตเบเปˆเบญเบ™, เบœเบนเป‰เบŠเปˆเบฝเบงเบŠเบฒเบ™เบ”เป‰เบฒเบ™เบ„เบงเบฒเบกเบ›เบญเบ”เป„เบžเบ‚เปเป‰เบกเบนเบ™เบ‚เปˆเบฒเบงเบชเบฒเบ™เบ‚เบญเบ‡เบเบฒเบ™เบฒเบ”เบฒ Jason A. Donenfeld เป„เบ”เป‰เบ•เบฑเบ”เบชเบดเบ™เปƒเบˆเบงเปˆเบฒเบฅเบฒเบงเบกเบตเบžเบฝเบ‡เบžเปเปเบฅเบฐเป€เบฅเบตเปˆเบกเป€เบฎเบฑเบ”เบงเบฝเบ. WireGuard. เบ”เบฝเบงเบ™เบตเป‰ WireGuard เป„เบ”เป‰เบ–เบทเบเบเบฐเบเบฝเบกเบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบฅเบงเบกเบขเบนเปˆเปƒเบ™ Linux kernel เปเบฅเบฐเบเบฑเบ‡เป„เบ”เป‰เบฎเบฑเบšเบเบฒเบ™เบเป‰เบญเบ‡เบเปเบˆเบฒเบ Linus Torvalds เปเบฅเบฐเปƒเบ™ เบชเบฐเบžเบฒเบชเบนเบ‡เบชเบฐเบซเบฐเบฅเบฑเบ”.

เบ‚เปเป‰เป„เบ”เป‰เบ›เบฝเบšเบ—เบตเปˆเบญเป‰เบฒเบ‡เบชเบดเบ”เบ‚เบญเบ‡ WireGuard เบซเบผเบฒเบเบเบงเปˆเบฒเบงเบดเบ—เบตเปเบเป‰เป„เบ‚ VPN เบญเบทเปˆเบ™เป†:

  • เบ‡เปˆเบฒเบโ€‹เบ—เบตเปˆโ€‹เบˆเบฐโ€‹เบ™เปเบฒโ€‹เปƒเบŠเป‰.
  • เปƒเบŠเป‰เบเบฒเบ™เป€เบ‚เบปเป‰เบฒเบฅเบฐเบซเบฑเบ”เบฅเบฑเบšเบ—เบตเปˆเบ—เบฑเบ™เบชเบฐเป„เบซเบก: Noise protocol framework, Curve25519, ChaCha20, Poly1305, BLAKE2, SipHash24, HKDF, เปเบฅเบฐเบญเบทเปˆเบ™เป†.
  • เบเบฐเบ—เบฑเบ”เบฎเบฑเบ”, เบฅเบฐเบซเบฑเบ”เบ—เบตเปˆเบชเบฒเบกเบฒเบ”เบญเปˆเบฒเบ™เป„เบ”เป‰, เบ‡เปˆเบฒเบเบ•เปเปˆเบเบฒเบ™เบเบงเบ”เบชเบญเบšเบŠเปˆเบญเบ‡เป‚เบซเบงเปˆ.
  • เบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบชเบนเบ‡.
  • เบˆเบฐเปเบˆเป‰เบ‡ เปเบฅเบฐ เบฅเบฐเบญเบฝเบ” เบชเบฐเป€เบžเบฒเบฐ.

เบžเบปเบšเป€เบซเบฑเบ™เบฅเบนเบเบ›เบทเบ™เป€เบ‡เบดเบ™เบšเป? เบกเบฑเบ™เปเบกเปˆเบ™เป€เบงเบฅเบฒเบ—เบตเปˆเบˆเบฐเบเบฑเบ‡ OpenVPN เปเบฅเบฐ IPSec เบšเป? เบ‚เป‰เบฒเบžเบฐเป€เบˆเบปเป‰เบฒเป„เบ”เป‰เบ•เบฑเบ”เบชเบดเบ™เปƒเบˆเบˆเบฑเบ”เบเบฒเบ™เบเบฑเบšเป€เบฅเบทเปˆเบญเบ‡เบ™เบตเป‰, เปเบฅเบฐเปƒเบ™เป€เบงเบฅเบฒเบ”เบฝเบงเบเบฑเบ™เบ‚เป‰เบฒเบžเบฐเป€เบˆเบปเป‰เบฒเป„เบ”เป‰เป€เบฎเบฑเบ” script เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบ•เบดเบ”เบ•เบฑเป‰เบ‡เป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบ VPN เบชเปˆเบงเบ™เบšเบธเบเบ„เบปเบ™เป‚เบ”เบเบญเบฑเบ”เบ•เบฐเป‚เบ™เบกเบฑเบ”.

เบซเบผเบฑเบเบเบฒเบ™เป€เบฎเบฑเบ”เบงเบฝเบ

เบซเบผเบฑเบเบเบฒเบ™เบ‚เบญเบ‡เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบ‡เบฒเบ™เบชเบฒเบกเบฒเบ”เบ–เบทเบเบญเบฐเบ—เบดเบšเบฒเบเบšเบฒเบ‡เบชเบดเปˆเบ‡เบšเบฒเบ‡เบขเปˆเบฒเบ‡เป€เบŠเบฑเปˆเบ™เบ™เบตเป‰:

  • เบเบฒเบ™เป‚เบ•เป‰เบ•เบญเบš WireGuard เบ–เบทเบเบชเป‰เบฒเบ‡เบ‚เบทเป‰เบ™เปเบฅเบฐเบฅเบฐเบซเบฑเบ”เบชเปˆเบงเบ™เบ•เบปเบงเปเบฅเบฐเบ—เบตเปˆเบขเบนเปˆ IP เบ–เบทเบเบกเบญเบšเบซเบกเบฒเบเปƒเบซเป‰เบกเบฑเบ™. เบเบฒเบ™โ€‹เบ•เบฑเป‰เบ‡โ€‹เบ„เปˆเบฒโ€‹เบ‚เบญเบ‡โ€‹เบกเบดเบ”โ€‹เบชเบฐโ€‹เบซเบฒเบโ€‹เบญเบทเปˆเบ™เป†โ€‹เปเบกเปˆเบ™โ€‹เบเบฒเบ™โ€‹เป‚เบซเบผเบ”โ€‹: เบเบฐโ€‹เปเบˆโ€‹เบชเบฒโ€‹เบ—เบฒโ€‹เบฅเบฐโ€‹เบ™เบฐโ€‹เบ‚เบญเบ‡โ€‹เป€เบ‚เบปเบฒโ€‹เป€เบˆเบปเป‰เบฒโ€‹, เบ—เบตเปˆโ€‹เบขเบนเปˆ IPโ€‹, เปเบฅเบฐโ€‹เบญเบทเปˆเบ™เป†โ€‹.
  • เบ—เบธเบเปเบžเบฑเบเป€เบเบฑเบ” IP เบ—เบตเปˆเบกเบฒเบฎเบญเบ”เบญเบดเบ™เป€เบ•เบตเป€เบŸเบ” WireGuard เบ–เบทเบเบซเบธเป‰เบกเบขเบนเปˆเปƒเบ™ UDP เปเบฅเบฐ เบˆเบฑเบ”เบชเบปเปˆเบ‡เบขเปˆเบฒเบ‡เบ›เบญเบ”เป„เบž เบกเบดเบ”โ€‹เบชเบฐโ€‹เบซเบฒเบโ€‹เบญเบทเปˆเบ™เป†โ€‹.
  • เบฅเบนเบเบ„เป‰เบฒเบฅเบฐเบšเบธเบ—เบตเปˆเบขเบนเปˆ IP เบชเบฒเบ—เบฒเบฅเบฐเบ™เบฐเบ‚เบญเบ‡เป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบเปƒเบ™เบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒ. เป€เบŠเบตเบšเป€เบงเบตเบฎเบฑเบšเบฎเบนเป‰เบ—เบตเปˆเบขเบนเปˆเบžเบฒเบเบ™เบญเบเบ‚เบญเบ‡เบฅเบนเบเบ„เป‰เบฒเป‚เบ”เบเบญเบฑเบ”เบ•เบฐเป‚เบ™เบกเบฑเบ”เป€เบกเบทเปˆเบญเป„เบ”เป‰เบฎเบฑเบšเบ‚เปเป‰เบกเบนเบ™เบ—เบตเปˆเบ–เบทเบเบ•เป‰เบญเบ‡เบˆเบฒเบเบžเบงเบเบกเบฑเบ™.
  • เป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบเบชเบฒเบกเบฒเบ”เบ›เปˆเบฝเบ™เบ—เบตเปˆเบขเบนเปˆ IP เบชเบฒเบ—เบฒเบฅเบฐเบ™เบฐเป‚เบ”เบเบšเปเปˆเบกเบตเบเบฒเบ™เบ‚เบฑเบ”เบ‚เบงเบฒเบ‡เบเบฒเบ™เป€เบฎเบฑเบ”เบงเบฝเบเบ‚เบญเบ‡เบกเบฑเบ™. เปƒเบ™เป€เบงเบฅเบฒเบ”เบฝเบงเบเบฑเบ™, เบกเบฑเบ™เบˆเบฐเบชเบปเปˆเบ‡เบเบฒเบ™เปเบˆเป‰เบ‡เป€เบ•เบทเบญเบ™เปƒเบซเป‰เบเบฑเบšเบฅเบนเบเบ„เป‰เบฒเบ—เบตเปˆเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเปเบฅเบฐเบžเบงเบเป€เบ‚เบปเบฒเบˆเบฐเบ›เบฑเบšเบ›เบธเบ‡เบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒเบ‚เบญเบ‡เบžเบงเบเป€เบ‚เบปเบฒเปƒเบ™เบ—เบฑเบ™เบ—เบต.
  • เปเบ™เบงเบ„เบงเบฒเบกเบ„เบดเบ”เบ‚เบญเบ‡เป€เบชเบฑเป‰เบ™เบ—เบฒเบ‡เปเบกเปˆเบ™เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰ เป€เบชเบฑเป‰เบ™เบ—เบฒเบ‡ Cryptokey. WireGuard เบเบญเบกเบฎเบฑเบš เปเบฅเบฐเบชเบปเปˆเบ‡เปเบžเบฑเบเป€เบเบฑเบ”เป‚เบ”เบเบญเบตเบ‡เปƒเบชเปˆเบฅเบฐเบซเบฑเบ”เบชเบฒเบ—เบฒเบฅเบฐเบ™เบฐเบ‚เบญเบ‡เปเบนเปˆเป€เบžเบทเปˆเบญเบ™. เป€เบกเบทเปˆเบญเป€เบŠเบตเบšเป€เบงเบตเบ–เบญเบ”เบฅเบฐเบซเบฑเบ”เปเบžเบฑเบเป€เบเบฑเบ”เบ—เบตเปˆเบ–เบทเบเบขเบทเบ™เบขเบฑเบ™เบขเปˆเบฒเบ‡เบ–เบทเบเบ•เป‰เบญเบ‡, เบŠเปˆเบญเบ‡เบ‚เปเป‰เบกเบนเบ™ src เบ‚เบญเบ‡เบกเบฑเบ™เบ–เบทเบเบเบงเบ”เบชเบญเบš. เบ–เป‰เบฒเบกเบฑเบ™เบเบปเบ‡เบเบฑเบšเบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒ allowed-ips authenticated peer, packet เปเบกเปˆเบ™เป„เบ”เป‰เบฎเบฑเบšเป‚เบ”เบเบเบฒเบ™เป‚เบ•เป‰เบ•เบญเบš WireGuard. เป€เบกเบทเปˆเบญเบชเบปเปˆเบ‡เปเบžเบฑเบเป€เบเบฑเบ”เบ—เบตเปˆเบชเบปเปˆเบ‡เบญเบญเบ, เบ‚เบฑเป‰เบ™เบ•เบญเบ™เบ—เบตเปˆเบชเบญเบ”เบ„เป‰เบญเบ‡เบเบฑเบ™เป€เบเบตเบ”เบ‚เบทเป‰เบ™: เบžเบฒเบเบชเบฐเบซเบ™เบฒเบก dst เบ‚เบญเบ‡เปเบžเบฑเบเป€เบเบฑเบ”เบ–เบทเบเบ›เบฐเบ•เบดเบšเบฑเบ”เปเบฅเบฐ, เบญเบตเบ‡เบ•เบฒเบกเบกเบฑเบ™, เบ„เบนเปˆเบ—เบตเปˆเบชเบญเบ”เบ„เป‰เบญเบ‡เบเบฑเบ™เบ–เบทเบเป€เบฅเบทเบญเบ, เปเบžเบฑเบเป€เบเบฑเบ”เบ–เบทเบเป€เบŠเบฑเบ™เบ”เป‰เบงเบเบฅเบฐเบซเบฑเบ”เบ‚เบญเบ‡เบกเบฑเบ™, เป€เบ‚เบปเป‰เบฒเบฅเบฐเบซเบฑเบ”เบ”เป‰เบงเบเบเบฐเปเบˆเบ‚เบญเบ‡เป€เบžเบทเปˆเบญเบ™เปเบฅเบฐเบ–เบทเบเบชเบปเปˆเบ‡เป„เบ›เบซเบฒเบˆเบธเบ”เบชเบดเป‰เบ™เบชเบธเบ”เบซเปˆเบฒเบ‡เป„เบเบชเบญเบเบซเบผเบตเบ. .

เป€เบซเบ”เบœเบปเบ™เบซเบผเบฑเบเบ‚เบญเบ‡ WireGuard เบ—เบฑเบ‡เปเบปเบ”เบกเบตเบฅเบฐเบซเบฑเบ”เปœเป‰เบญเบเบเบงเปˆเบฒ 4 เบžเบฑเบ™เป€เบชเบฑเป‰เบ™, เปƒเบ™เบ‚เบฐเบ™เบฐเบ—เบตเปˆ OpenVPN เปเบฅเบฐ IPSec เบกเบตเบซเบผเบฒเบเบฎเป‰เบญเบเบžเบฑเบ™เบชเบฒเบ. เป€เบžเบทเปˆเบญเบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบฅเบฐเบšเบปเบšเบเบฒเบ™เป€เบ‚เบปเป‰เบฒเบฅเบฐเบซเบฑเบ”เบฅเบฑเบšเบ—เบตเปˆเบ—เบฑเบ™เบชเบฐเป„เบซเบก, เบกเบฑเบ™เป„เบ”เป‰เบ–เบทเบเบชเบฐเป€เบซเบ™เบตเปƒเบซเป‰เบ›เบฐเบเบญเบšเบกเบต API cryptographic เปƒเบซเบกเปˆเปƒเบ™ Linux kernel เบชเบฑเบ‡เบเบฐเบชเบต. เปƒเบ™เบ›เบฑเบ”เบˆเบธเบšเบฑเบ™เบกเบตเบเบฒเบ™เบชเบปเบ™เบ—เบฐเบ™เบฒเบเปˆเบฝเบงเบเบฑเบšเบงเปˆเบฒเบ™เบตเป‰เปเบกเปˆเบ™เบ„เบงเบฒเบกเบ„เบดเบ”เบ—เบตเปˆเบ”เบตเบซเบผเบทเบšเปเปˆ.

เบœเบฐเบฅเบดเบ”เบ•เบฐเบžเบฑเบ™

เบ›เบฐเป‚เบซเบเบ”เบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบชเบนเบ‡เบชเบธเบ” (เป€เบกเบทเปˆเบญเบ›เบฝเบšเบ—เบฝเบšเบเบฑเบš OpenVPN เปเบฅเบฐ IPSec) เบˆเบฐเป€เบซเบฑเบ™เป„เบ”เป‰เบŠเบฑเบ”เป€เบˆเบ™เปƒเบ™เบฅเบฐเบšเบปเบš Linux, เบ™เบฑเบšเบ•เบฑเป‰เบ‡เปเบ•เปˆ WireGuard เบ–เบทเบเบ›เบฐเบ•เบดเบšเบฑเบ”เป€เบ›เบฑเบ™เป‚เบกเบ”เบนเบ™ kernel เบขเบนเปˆเบ—เบตเปˆเบ™เบฑเป‰เบ™. เบ™เบญเบเบˆเบฒเบเบ™เบฑเป‰เบ™, macOS, Android, iOS, FreeBSD เปเบฅเบฐ OpenBSD เป„เบ”เป‰เบฎเบฑเบšเบเบฒเบ™เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™, เปเบ•เปˆเปƒเบ™เบžเบงเบเบกเบฑเบ™ WireGuard เป€เบฎเบฑเบ”เบงเบฝเบเบขเบนเปˆเปƒเบ™เบžเบทเป‰เบ™เบ—เบตเปˆเบœเบนเป‰เปƒเบŠเป‰เบ—เบตเปˆเบกเบตเบœเบปเบ™เบชเบฐเบ—เป‰เบญเบ™เบ•เปเปˆเบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบ—เบฑเบ‡เบซเบกเบปเบ”. เบเบฒเบ™เบฎเบญเบ‡เบฎเบฑเบš Windows เบ„เบฒเบ”เบงเปˆเบฒเบˆเบฐเป€เบžเบตเปˆเบกเปƒเบ™เบญเบฐเบ™เบฒเบ„เบปเบ”เบญเบฑเบ™เปƒเบเป‰เบ™เบตเป‰.

เบœเบปเบ™โ€‹เป„เบ”เป‰โ€‹เบฎเบฑเบš Benchmark เบเบฑเบš เป€เบงเบฑเบšเป„เบŠเบขเปˆเบฒเบ‡เป€เบ›เบฑเบ™เบ—เบฒเบ‡เบเบฒเบ™:

WireGuard เป€เบ›เบฑเบ™ VPN เบ—เบตเปˆเบเบดเปˆเบ‡เปƒเบซเบเปˆเบ‚เบญเบ‡เบญเบฐเบ™เบฒเบ„เบปเบ”เบšเป?

เบ›เบฐเบชเบปเบšเบเบฒเบ™เบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰เบ‚เบญเบ‡เบ‚เป‰เบญเบ

เบ‚เป‰เบญเบเบšเปเปˆเปเบกเปˆเบ™เบœเบนเป‰เบŠเปˆเบฝเบงเบŠเบฒเบ™ VPN. เป€เบกเบทเปˆเบญเบ‚เป‰เบญเบเบ•เบฑเป‰เบ‡ OpenVPN เบ”เป‰เบงเบเบ•เบปเบ™เป€เบญเบ‡เปเบฅเบฐเบกเบฑเบ™เบซเบ™เป‰เบฒเป€เบšเบทเปˆเบญเบซเบผเบฒเบ, เปเบฅเบฐเบ‚เป‰เบญเบเบšเปเปˆเป„เบ”เป‰เบฅเบญเบ‡ IPSec. เบกเบตเบเบฒเบ™เบ•เบฑเบ”เบชเบดเบ™เปƒเบˆเบซเบผเบฒเบเป€เบเบตเบ™เป„เบ›เบ—เบตเปˆเบˆเบฐเป€เบฎเบฑเบ”, เบกเบฑเบ™เบ‡เปˆเบฒเบเบซเบผเบฒเบเบ—เบตเปˆเบˆเบฐเบเบดเบ‡เบ•เบปเบงเป€เบญเบ‡เปƒเบชเปˆเบ•เบตเบ™. เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™, เบ‚เป‰เบญเบเบชเบฐเป€เบซเบกเบตเปƒเบŠเป‰เบชเบฐเบ„เบดเบšเบ—เบตเปˆเบเบฝเบกเบžเป‰เบญเบกเป€เบžเบทเปˆเบญเบ•เบฑเป‰เบ‡เบ„เปˆเบฒเป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบ.

เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™, WireGuard, เบˆเบฒเบเบ—เบฑเบ”เบชเบฐเบ™เบฐเบ‚เบญเบ‡เบ‚เป‰เบญเบ, เป‚เบ”เบเบ—เบปเปˆเบงเป„เบ›เปเบกเปˆเบ™เป€เบซเบกเบฒเบฐเบชเบปเบกเบชเปเบฒเบฅเบฑเบšเบœเบนเป‰เปƒเบŠเป‰. เบเบฒเบ™เบ•เบฑเบ”เบชเบดเบ™เปƒเบˆเปƒเบ™เบฅเบฐเบ”เบฑเบšเบ•เปˆเปเบฒเบ—เบฑเบ‡เบซเบกเบปเบ”เปเบกเปˆเบ™เบ”เปเบฒเป€เบ™เบตเบ™เบขเบนเปˆเปƒเบ™เบ‚เปเป‰เบเปเบฒเบ™เบปเบ”, เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™เบ‚เบฐเบšเบงเบ™เบเบฒเบ™เบเบฐเบเบฝเบกเป‚เบ„เบ‡เบชเป‰เบฒเบ‡เบžเบทเป‰เบ™เบ–เบฒเบ™ VPN เบ›เบปเบเบเบฐเบ•เบดเปƒเบŠเป‰เป€เบงเบฅเบฒเบžเบฝเบ‡เปเบ•เปˆเบชเบญเบ‡เบชเบฒเบกเบ™เบฒเบ—เบต. เบกเบฑเบ™เป€เบเบทเบญเบšเป€เบ›เบฑเบ™เป„เบ›เบšเปเปˆเป„เบ”เป‰เบ—เบตเปˆเบˆเบฐเป‚เบเบ‡เปƒเบ™เบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒ.

เบ‚เบฐเบšเบงเบ™เบเบฒเบ™เบ•เบดเบ”เบ•เบฑเป‰เบ‡ เบญเบฐเบ—เบดเบšเบฒเบเบฅเบฐเบญเบฝเบ” เบขเบนเปˆเปƒเบ™เป€เบงเบฑเบšเป„เบŠเบ—เปŒเบ—เบฒเบ‡เบเบฒเบ™, เบ‚เป‰เบฒเบžเบฐเป€เบˆเบปเป‰เบฒเบขเบฒเบเบˆเบฐเบชเบฑเบ‡เป€เบเบ”เป€เบซเบฑเบ™เปเบเบเบ•เปˆเบฒเบ‡เบซเบฒเบเบ—เบตเปˆเบ”เบตเป€เบฅเบตเบ” เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™ OpenWRT.

เบฅเบฐเบซเบฑเบ”เบเบฒเบ™เป€เบ‚เบปเป‰เบฒเบฅเบฐเบซเบฑเบ”เปเบกเปˆเบ™เบชเป‰เบฒเบ‡เบ‚เบถเป‰เบ™เป‚เบ”เบเบœเบปเบ™เบ›เบฐเป‚เบซเบเบ” wg:

SERVER_PRIVKEY=$( wg genkey )
SERVER_PUBKEY=$( echo $SERVER_PRIVKEY | wg pubkey )
CLIENT_PRIVKEY=$( wg genkey )
CLIENT_PUBKEY=$( echo $CLIENT_PRIVKEY | wg pubkey )

เบ•เปเปˆเป„เบ›, เบ—เปˆเบฒเบ™เบˆเปเบฒเป€เบ›เบฑเบ™เบ•เป‰เบญเบ‡เบชเป‰เบฒเบ‡เบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒเป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบ /etc/wireguard/wg0.conf เป‚เบ”เบโ€‹เบกเบตโ€‹เป€เบ™เบทเป‰เบญโ€‹เปƒเบ™โ€‹เบ”เบฑเปˆเบ‡โ€‹เบ•เปเปˆโ€‹เป„เบ›โ€‹เบ™เบตเป‰โ€‹:

[Interface]
Address = 10.9.0.1/24
PrivateKey = $SERVER_PRIVKEY
[Peer]
PublicKey = $CLIENT_PUBKEY
AllowedIPs = 10.9.0.2/32

เปเบฅเบฐเบเบปเบเบญเบธเป‚เบกเบ‡เบ‚เบถเป‰เบ™เบ”เป‰เบงเบเบ•เบปเบงเปœเบฑเบ‡เบชเบท wg-quick:

sudo wg-quick up /etc/wireguard/wg0.conf

เปƒเบ™เบฅเบฐเบšเบปเบšเบ—เบตเปˆเบกเบต systemd เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบ™เปเบฒเปƒเบŠเป‰เบญเบฑเบ™เบ™เบตเป‰เปเบ—เบ™ sudo systemctl start [email protected].

เปƒเบ™เป€เบ„เบทเปˆเบญเบ‡เบฅเบนเบเบ„เป‰เบฒ, เบชเป‰เบฒเบ‡ config /etc/wireguard/wg0.conf:

[Interface]
PrivateKey = $CLIENT_PRIVKEY
Address = 10.9.0.2/24
[Peer]
PublicKey = $SERVER_PUBKEY
AllowedIPs = 0.0.0.0/0
Endpoint = 1.2.3.4:51820 # ะ’ะฝะตัˆะฝะธะน IP ัะตั€ะฒะตั€ะฐ
PersistentKeepalive = 25 

เปเบฅเบฐเบเบปเบเบญเบธเป‚เบกเบ‡เบ‚เบถเป‰เบ™เบ”เป‰เบงเบเบงเบดเบ—เบตเบ”เบฝเบงเบเบฑเบ™:

sudo wg-quick up /etc/wireguard/wg0.conf

เบ—เบฑเบ‡เบซเบกเบปเบ”เบ—เบตเปˆเบเบฑเบ‡เป€เบซเบผเบทเบญเปเบกเปˆเบ™เป€เบžเบทเปˆเบญ configure NAT เปƒเบ™เป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบเป€เบžเบทเปˆเบญเปƒเบซเป‰เบฅเบนเบเบ„เป‰เบฒเบชเบฒเบกเบฒเบ”เป€เบ‚เบปเป‰เบฒเป€เบ–เบดเบ‡เบญเบดเบ™เป€เบ•เบตเป€เบ™เบฑเบ”, เปเบฅเบฐเบ—เปˆเบฒเบ™เบชเปเบฒเป€เบฅเบฑเบ”!

เบ„เบงเบฒเบกเบ‡เปˆเบฒเบเบ”เบฒเบเบ‚เบญเบ‡เบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰เปเบฅเบฐเบ„เบงเบฒเบกเบซเบ™เบฒเปเบซเบ™เป‰เบ™เบ‚เบญเบ‡เบžเบทเป‰เบ™เบ–เบฒเบ™เบฅเบฐเบซเบฑเบ”เบ™เบตเป‰เปเบกเปˆเบ™เบšเบฑเบ™เบฅเบธเป„เบ”เป‰เป‚เบ”เบเบเบฒเบ™เบเปเบฒเบˆเบฑเบ”เบซเบ™เป‰เบฒเบ—เบตเปˆเบเบฒเบ™เปเบˆเบเบขเบฒเบเบ—เบตเปˆเบชเปเบฒเบ„เบฑเบ™. เบšเปเปˆเบกเบตเบฅเบฐเบšเบปเบšเปƒเบšเบขเบฑเป‰เบ‡เบขเบทเบ™เบ—เบตเปˆเบŠเบฑเบšเบŠเป‰เบญเบ™ เปเบฅเบฐเบ—เบธเบเบชเบดเปˆเบ‡เบ—เบตเปˆเป€เบ›เบฑเบ™เบ•เบฒเบขเป‰เบฒเบ™เบ‚เบญเบ‡เบšเปเบฅเบดเบชเบฑเบ”เบ™เบตเป‰; เบเบฐเปเบˆเบเบฒเบ™เป€เบ‚เบปเป‰เบฒเบฅเบฐเบซเบฑเบ”เบชเบฑเป‰เบ™เบ–เบทเบเปเบˆเบเบขเบฒเบเบซเบผเบฒเบเบ„เบทเบเบฑเบšเบเบฐเปเบˆ SSH. เปเบ•เปˆเบ™เบตเป‰เป€เบฎเบฑเบ”เปƒเบซเป‰เป€เบเบตเบ”เบšเบฑเบ™เบซเบฒ: WireGuard เบˆเบฐเบšเปเปˆเบ‡เปˆเบฒเบเบ—เบตเปˆเบˆเบฐเบ›เบฐเบ•เบดเบšเบฑเบ”เปƒเบ™เบšเบฒเบ‡เป€เบ„เบทเบญเบ‚เปˆเบฒเบเบ—เบตเปˆเบกเบตเบขเบนเปˆเปเบฅเป‰เบง.

เปƒเบ™เบšเบฑเบ™เบ”เบฒเบ‚เปเป‰เป€เบชเบ, เบกเบฑเบ™เป€เบ›เบฑเบ™เบกเบนเบ™เบ„เปˆเบฒเบ—เบตเปˆเบชเบฑเบ‡เป€เบเบ”เบงเปˆเบฒ WireGuard เบˆเบฐเบšเปเปˆเป€เบฎเบฑเบ”เบงเบฝเบเบœเปˆเบฒเบ™ HTTP proxy, เป€เบžเบฒเบฐเบงเปˆเบฒเบกเบตเบžเบฝเบ‡เปเบ•เปˆเป‚เบ›เป‚เบ•เบ„เบญเบ™ UDP เป€เบ—เบปเปˆเบฒเบ™เบฑเป‰เบ™เบ—เบตเปˆเบกเบตเบเบฒเบ™เบ‚เบปเบ™เบชเบปเปˆเบ‡. เบ„เปเบฒเบ–เบฒเบกเบ—เบตเปˆเป€เบเบตเบ”เบ‚เบทเป‰เบ™: เบกเบฑเบ™เป€เบ›เบฑเบ™เป„เบ›เป„เบ”เป‰เบ—เบตเปˆเบˆเบฐเป€เบฎเบฑเบ”เปƒเบซเป‰เบ„เบงเบฒเบกเบชเบฑเบšเบชเบปเบ™เบ‚เบญเบ‡เป‚เบ›เป‚เบ•เบ„เบญเบ™เบšเป? เปเบ™เปˆเบ™เบญเบ™, เบ™เบตเป‰เบšเปเปˆเปเบกเปˆเบ™เบงเบฝเบเบ‡เบฒเบ™เป‚เบ”เบเบเบปเบ‡เบ‚เบญเบ‡ VPN, เปเบ•เปˆเบชเปเบฒเบฅเบฑเบš OpenVPN, เบชเปเบฒเบฅเบฑเบšเบ•เบปเบงเบขเปˆเบฒเบ‡, เบกเบตเบงเบดเบ—เบตเบ—เบตเปˆเบˆเบฐเบ›เบญเบกเบ•เบปเบงเป€เบ›เบฑเบ™ HTTPS, เป€เบŠเบดเปˆเบ‡เบŠเปˆเบงเบเปƒเบซเป‰เบœเบนเป‰เบขเบนเปˆเบญเบฒเป„เบชเบ‚เบญเบ‡เบšเบฑเบ™เบ”เบฒเบ›เบฐเป€เบ—เบ”เบ—เบตเปˆเบกเบตเบชเบดเบ”เป€เบชเบฅเบตเบžเบฒเบšเปƒเบ™เบเบฒเบ™เปƒเบŠเป‰เบญเบดเบ™เป€เบ•เบตเป€เบ™เบฑเบ”เบขเปˆเบฒเบ‡เป€เบ•เบฑเบกเบชเปˆเบงเบ™.

เบเบฒเบ™เบ„เบปเป‰เบ™เบžเบปเบš

เป€เบžเบทเปˆเบญเบชเบฐเบซเบผเบธเบš, เบ™เบตเป‰เปเบกเปˆเบ™เป‚เบ„เบ‡เบเบฒเบ™เบ—เบตเปˆเบซเบ™เป‰เบฒเบชเบปเบ™เปƒเบˆเบซเบผเบฒเบเปเบฅเบฐเบ”เบต, เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบ™เปเบฒเปƒเบŠเป‰เบกเบฑเบ™เบขเบนเปˆเปƒเบ™เป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบเบชเปˆเบงเบ™เบšเบธเบเบ„เบปเบ™. เบเปเบฒเป„เบฅเปเบกเปˆเบ™เบซเบเบฑเบ‡? เบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบชเบนเบ‡เปƒเบ™เบฅเบฐเบšเบปเบš Linux, เบ„เบงเบฒเบกเบ‡เปˆเบฒเบเปƒเบ™เบเบฒเบ™เบ•เบดเบ”เบ•เบฑเป‰เบ‡ เปเบฅเบฐเบเบฒเบ™เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™, เบžเบทเป‰เบ™เบ–เบฒเบ™เบฅเบฐเบซเบฑเบ”เบ—เบตเปˆเบซเบ™เบฒเปเบซเบ™เป‰เบ™ เปเบฅเบฐเบชเบฒเบกเบฒเบ”เบญเปˆเบฒเบ™เป„เบ”เป‰. เบขเปˆเบฒเบ‡เปƒเบ”เบเปเปˆเบ•เบฒเบก, เบกเบฑเบ™เป„เบงเป€เบเบตเบ™เป„เบ›เบ—เบตเปˆเบˆเบฐเบŸเป‰เบฒเบงเบ—เบตเปˆเบˆเบฐเป‚เบญเบ™เป‚เบ„เบ‡เบชเป‰เบฒเบ‡เบžเบทเป‰เบ™เบ–เบฒเบ™เบ—เบตเปˆเบชเบฑเบšเบชเบปเบ™เปƒเบซเป‰เบเบฑเบš WireGuard; เบกเบฑเบ™เบ„เบธเป‰เบกเบ„เปˆเบฒเบ—เบตเปˆเบˆเบฐเบฅเปเบ–เป‰เบฒเบเบฒเบ™เบฅเบงเบกเบขเบนเปˆเปƒเบ™ Linux kernel.

เป€เบžเบทเปˆเบญเบŠเปˆเบงเบเบ›เบฐเบขเบฑเบ”เป€เบงเบฅเบฒเบ‚เบญเบ‡เบ‚เป‰เบญเบ (เปเบฅเบฐเบ‚เบญเบ‡เป€เบˆเบปเป‰เบฒ), เบ‚เป‰เบญเบเป„เบ”เป‰เบžเบฑเบ”เบ—เบฐเบ™เบฒ WireGuard เบ•เบดเบ”เบ•เบฑเป‰เบ‡เบญเบฑเบ”เบ•เบฐเป‚เบ™เบกเบฑเบ”. เบ”เป‰เบงเบเบเบฒเบ™เบŠเปˆเบงเบเป€เบซเบผเบทเบญเบ‚เบญเบ‡เบกเบฑเบ™, เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบ•เบฑเป‰เบ‡เบ„เปˆเบฒ VPN เบชเปˆเบงเบ™เบ•เบปเบงเบชเปเบฒเบฅเบฑเบšเบ•เบปเบงเบ—เปˆเบฒเบ™เป€เบญเบ‡เปเบฅเบฐเบซเบกเบนเปˆเป€เบžเบทเปˆเบญเบ™เบ‚เบญเบ‡เบ—เปˆเบฒเบ™เป‚เบ”เบเบšเปเปˆเบกเบตเบเบฒเบ™เป€เบ‚เบปเป‰เบฒเปƒเบˆเบซเบเบฑเบ‡เบเปˆเบฝเบงเบเบฑเบšเบกเบฑเบ™.

เปเบซเบผเปˆเบ‡เบ‚เปเป‰เบกเบนเบ™: www.habr.com

เป€เบžเบตเปˆเบกเบ„เบงเบฒเบกเบ„เบดเบ”เป€เบซเบฑเบ™