WireGuard VPN: การติดตั้งและกำหนดค่าเซิร์ฟเวอร์ VPN และไคลเอนต์

WireGuard VPN เป็นแอปพลิเคชั่นซอฟต์แวร์ฟรีที่จะช่วยให้เราสามารถสร้างอุโมงค์ VPN ซอฟต์แวร์ที่สมบูรณ์นี้รวมเอาการสื่อสารและโปรโตคอลการเข้ารหัสที่จำเป็นทั้งหมดไว้เพื่อสร้างเครือข่ายส่วนตัวเสมือนระหว่างไคลเอนต์หลายเครื่องและเซิร์ฟเวอร์ WireGuard ให้ประสิทธิภาพที่ดีกว่าโปรโตคอล IPsec และ OpenVPN (ทั้งในเรื่องความเร็วและเวลาในการเชื่อมต่อ) วันนี้เราจะอธิบายคุณสมบัติหลักของมันวิธีการติดตั้งและกำหนดค่าได้อย่างง่ายดาย

ไวร์การ์ด -14

คุณสมบัติของ WireGuard VPN

WireGuardVPN เป็นซอฟต์แวร์เพื่อ สร้างเครือข่ายส่วนตัวเสมือน (VPN) อย่างยิ่ง ง่ายต่อการกำหนดค่า , เร็วมาก (เร็วกว่า IPsec และ OpenVPN) และที่ใช้ การเข้ารหัสที่ทันสมัยที่สุดโดยค่าเริ่มต้น , โดยไม่จำเป็นต้องเลือกระหว่างอัลกอริธึมการเข้ารหัสแบบสมมาตร, อสมมาตรและการแฮช เป้าหมายของ WireGuard VPN คือการเป็นมาตรฐานและสำหรับผู้ใช้ตามบ้านและธุรกิจที่จะเริ่มใช้งานแทนที่จะใช้ IPsec หรือ OpenVPN ที่เป็นที่นิยมซึ่งยากต่อการกำหนดค่าและช้าลง ซอฟต์แวร์นี้ออกแบบมาเพื่อให้ผู้ชมทุกคนใช้งานได้ทั้งสำหรับผู้ใช้ตามบ้านและคอมพิวเตอร์ระดับสูง

ด้วย WireGuard VPN ไม่จำเป็นต้องจัดการการเชื่อมต่อ กังวลเกี่ยวกับสถานะของเครือข่ายส่วนตัวเสมือนจัดการกระบวนการหรือรู้ว่ามีอะไรอยู่ภายใต้ซอฟต์แวร์เพื่อให้ทำงานเช่นเดียวกับ IPsec ที่มักจะต้องดูบันทึกและตรวจสอบสิ่งที่เกิดขึ้น จุดแข็งอีกประการหนึ่งคือการกำหนดค่านั้นธรรมดามาก แต่มีประสิทธิภาพมาก

ซอฟต์แวร์เป็น L3 VPN , อย่างนั้นแหละ ใช้การขุดอุโมงค์เท่านั้น มันไม่ได้เกิดขึ้นในฐานะ OpenVPN ที่เรามีความเป็นไปได้ที่จะทำงานในโหมดการขนส่งหรือโหมดอุโมงค์ ในกรณีนี้เราจะใช้โหมดอุโมงค์เสมอนอกจากนี้มันเข้ากันได้กับทั้งสอง เครือข่าย IPv4 และเครือข่าย IPv6 นอกจากนี้ยังสามารถห่อหุ้มแพ็กเก็ต IPv4 ใน IPv6 และในทางกลับกัน โปรโตคอลชั้นการขนส่งที่ใช้โดย WireGuard คือ UDP ดังนั้นเราจะต้องเปิดพอร์ตที่แน่นอน (เพื่อเลือกมันสามารถเปลี่ยนแปลงได้) ในเราเตอร์ของเราที่ทำ NAT

ความเข้ากันได้ของระบบปฏิบัติการ

ซอฟต์แวร์ VPN ใหม่นี้เปิดตัวครั้งแรกสำหรับ ลินุกซ์ เคอร์เนล แต่มันคือ ข้ามแพลตฟอร์ม เพราะมันเข้ากันได้กับ Windows, ลินุกซ์, MacOS, FreeBSD, Android และนอกจากนี้ยังมี iOS ระบบปฏิบัติการ . ข้อดีอย่างหนึ่งของซอฟต์แวร์นี้คือการกำหนดค่าไคลเอนต์และเซิร์ฟเวอร์นั้นเหมือนกันในระบบปฏิบัติการที่แตกต่างกันโดยใช้ไวยากรณ์เดียวกันดังนั้นคุณสามารถกำหนดค่าเซิร์ฟเวอร์และไคลเอนต์ใน Linux จากนั้น "ส่ง" การกำหนดค่าไปยังอุปกรณ์อื่น ๆ ระบบปฏิบัติการอื่น ๆ ภายใน

การเข้ารหัสที่ใช้

ด้วยโปรโตคอล IPsec และ OpenVPN จำเป็นต้องให้ทั้งลูกค้าและเซิร์ฟเวอร์ "ยอมรับ" บนโปรโตคอลการเข้ารหัสที่จะใช้ทั้งในเฟส 1 และเฟส 2 (ของ IPsec) และในช่องควบคุมและข้อมูล (ของ OpenVPN ) มิฉะนั้นการเชื่อมต่อจะไม่ถูกสร้างขึ้นอย่างถูกต้อง WireGuard ให้ "แพ็คเกจ" การเข้ารหัสทั้งหมด ตรวจสอบการเชื่อมต่อโดยไม่จำเป็นต้องเลือกอะไร หากถึงจุดหนึ่งในโปรโตคอลการเข้ารหัสที่ใช้โดย VPN นี้ถือว่าไม่ปลอดภัยมันเป็นเรื่องง่ายเหมือนการเปิดตัว WireGuard รุ่นที่สองด้วยโปรโตคอลใหม่ที่ไม่มีข้อบกพร่องด้านความปลอดภัยและระหว่างไคลเอนต์และเซิร์ฟเวอร์จะเป็น ระบุว่าใช้“ เวอร์ชัน 2” ซึ่งโปร่งใสสำหรับเราอย่างสมบูรณ์

รายละเอียดที่สำคัญอีกอย่างหนึ่งคือ VPN นี้ใช้ รหัสที่มาขนาดเล็กมาก . มีโค้ดไม่กี่บรรทัดเมื่อเทียบกับ StrongSwan หรือ OpenVPN ดังนั้นการตรวจสอบสามารถทำได้ในเวลาอันสั้นมันจะง่ายต่อการค้นหาช่องโหว่หรือข้อบกพร่องด้านความปลอดภัย ด้วยรหัสบรรทัดที่น้อยลงพื้นผิวของการโจมตีที่เป็นไปได้ในการเขียนโปรแกรม VPN ก็มีขนาดเล็กลงเช่นกัน

WireGuard VPN ใช้ในปัจจุบัน ชะชะช่า 20 สำหรับการเข้ารหัสแบบสมมาตรรับรองความถูกต้องด้วย Poly1305 ใช้การสร้าง AEAD นอกจากนี้ยังใช้ Curve25519 สำหรับ ECDH เบลค2 สำหรับ hashing SipHash 24 for Hashtable กุญแจและ HKDF สำหรับการสืบทอดที่สำคัญซึ่งหมายความว่าเรากำลังใช้อัลกอริทึมการเข้ารหัสลับที่ทันสมัยที่สุดโดยมีจุดประสงค์ในการให้ความปลอดภัยและประสิทธิภาพสูงสุด

รองรับ Roaming และ Kill Switch

ซอฟต์แวร์นี้ออกแบบมาเพื่อให้สามารถ เดินเตร่อย่างง่ายดายและรวดเร็ว หากอุปกรณ์ของเราเปลี่ยนเครือข่ายและเปลี่ยน IP สาธารณะอย่างมีเหตุผลเช่นเมื่อเราผ่านจากเครือข่าย Wi-Fi และเครือข่าย 4G / LTE ของผู้ให้บริการของเราการเชื่อมต่อ VPN จะยังคงถูกยกขึ้นเพราะจะรับรองความถูกต้องอีกครั้งอย่างรวดเร็วด้วย VPN เซิร์ฟเวอร์เพื่อให้เราเชื่อมต่อกับ VPN เสมอ

เรายังสามารถ เปิดใช้งาน Kill-Switch บนอุปกรณ์ ด้วยวิธีนี้หากการเชื่อมต่อ VPN ถูกขัดจังหวะซอฟต์แวร์เองก็จะรับผิดชอบการขัดจังหวะการรับส่งข้อมูลเครือข่ายทั้งหมดจนกว่าการเชื่อมต่อ VPN จะถูกสร้างขึ้นใหม่เพื่อที่จะไม่นำทางโดยไม่มีการป้องกัน VPN นี้ให้เรา

การติดตั้ง WireGuard VPN

การติดตั้งซอฟต์แวร์นี้ง่ายมากเราแค่ต้องทำ ไปที่เว็บไซต์อย่างเป็นทางการของ WireGuard และดาวน์โหลดไฟล์ปฏิบัติการสำหรับระบบปฏิบัติการ Windows หรือ MacOS หากคุณใช้ระบบปฏิบัติการบน Linux พร้อมที่เก็บข้อมูลที่สอดคล้องกันคุณอาจต้องเพิ่มที่เก็บ WireGuard เฉพาะเนื่องจากปัจจุบันไม่ได้อยู่ในสาขา“ เสถียร” ตามค่าเริ่มต้น

ตัวอย่างเช่นเราได้ติดตั้งเซิร์ฟเวอร์ VPN ในรุ่นล่าสุดของ Debian เพื่อติดตั้งเราได้ทำตามขั้นตอนที่ระบุไว้ในเว็บไซต์อย่างเป็นทางการ ต้องมีสิทธิ์ Superuser เพื่อดำเนินการติดตั้งอย่างถูกต้อง

 sudo echo "deb http://deb.debian.org/debian/ unstable main"> /etc/apt/sources.list.d/unstable.list sudo printf 'Package: * / nPin: release a = unstable / nPin- ลำดับความสำคัญ: 90 / n '> /etc/apt/preferences.d/limit- unstable sudo apt update sudo apt install wireguard

เราต้องไม่ลืมว่า VPN นี้ยังเข้ากันได้กับระบบปฏิบัติการเช่น FreeBSD, OpenBSD และแม้แต่กับ OpenWRT สำหรับเราเตอร์เพียงแค่ติดตั้งผ่าน“ opkg” เนื่องจากซอฟต์แวร์เพิ่มเติมทั้งหมดมักติดตั้ง

หากคุณกำลังจะติดตั้งไคลเอนต์ VPN บนสมาร์ทโฟนของคุณด้วย Android หรือ iOS ปัจจุบันเรามีแอปพลิเคชั่นอย่างเป็นทางการดังนั้นคุณสามารถติดตั้งได้โดยไม่มีปัญหาจาก Google Play และ App Store ตามลำดับ:

การกำหนดค่า WireGuard: พับลิกคีย์ส่วนตัวและไฟล์การกำหนดค่า

เมื่อเราติดตั้ง WireGuard อย่างถูกต้องแล้วทั้งบนคอมพิวเตอร์ที่ทำหน้าที่เป็นเซิร์ฟเวอร์รวมถึงไคลเอนต์ทั้งหมดที่เราต้องการเชื่อมต่อจำเป็นต้องกำหนดค่า สิ่งแรกที่เราต้องทำคือสร้างคู่กุญแจสาธารณะส่วนตัวทั้งบนเซิร์ฟเวอร์และลูกค้าทั้งหมดที่เราต้องการเชื่อมต่อ เราได้ใช้ระบบปฏิบัติการ Debian เพื่อสร้างคีย์และเพื่อกำหนดค่าเซิร์ฟเวอร์อย่างไรก็ตามเราสามารถทำได้โดยตรงในซอฟต์แวร์ Windows

เส้นทางเพื่อเรียกใช้เซิร์ฟเวอร์ WireGuard บน Debian คือ / etc / wireguard / ดังนั้นเราจะไปที่เส้นทางนี้ด้วยคำสั่งต่อไปนี้:

cd /etc/wireguard/

การสร้างคีย์แบบสาธารณะแม้แต่ส่วนตัวสำหรับเซิร์ฟเวอร์

หากต้องการสร้างคู่คีย์สาธารณะและคีย์ส่วนตัวในตำแหน่งนี้เราต้องใส่:

wg genkey | tee claveprivadaservidor | wg pubkey > clavepublicaservidor

ตอนนี้เราจะมีสองไฟล์ไฟล์หนึ่งมีพับลิกคีย์และอีกหนึ่งไฟล์เป็นไฟล์ส่วนตัว:

  • รหัสส่วนตัว: 6JcquylvtJsHNCdWrYMj28XsLIFJUVjlr2y5o27rO2c =
  • กุญแจสาธารณะ: xeTkJjjBUyp8paxTgajwDa + qWjrD2RpXlJRSHMwcGDQ =

กุญแจเหล่านี้เป็นสิ่งที่เราจะใช้สำหรับเซิร์ฟเวอร์ WireGuard VPN «

การสร้างคีย์แบบสาธารณะแม้ส่วนตัวสำหรับลูกค้า

ในการสร้างกุญแจสาธารณะและกุญแจส่วนตัวอีกคู่หนึ่งซึ่งเราจะใช้ในไคลเอนต์เราสามารถสร้างมันในโฟลเดอร์ใหม่หรือสร้างในตำแหน่งเดียวกัน แต่ใช้ชื่ออื่น

wg genkey | tee claveprivadacliente1 | wg pubkey > clavepublicacliente1

ตอนนี้เราจะมีสองไฟล์ไฟล์หนึ่งมีพับลิกคีย์และอีกหนึ่งไฟล์เป็นไฟล์ส่วนตัว:

  • รหัสส่วนตัว: yPMpP2raY4FoCEJkmzQMlxzm / 6RBIW9HkjY6pVFIOnI =
  • รหัสสาธารณะ: 6c12jLkKzgU9len1kQ / 6Fc61xm + LL98TPPlLsri8klE =

กุญแจเหล่านี้เป็นสิ่งที่เราจะใช้สำหรับไคลเอนต์ WireGuard VPN

ไฟล์การกำหนดค่าเซิร์ฟเวอร์

การกำหนดค่าของเซิร์ฟเวอร์ WireGuard นั้นค่อนข้างง่ายเมื่อเทียบกับเซิร์ฟเวอร์ IPsec หรือ OpenVPN อย่างไรก็ตามเราต้องคำนึงถึงหลายสิ่งที่เราอธิบายด้านล่าง

ในเซิร์ฟเวอร์เราจะต้องมี” อินเตอร์เฟซ ” ส่วนในส่วนนี้เราสามารถระบุ ที่อยู่ IP ส่วนตัว ที่ระบุเซิร์ฟเวอร์เมื่อไคลเอนต์เชื่อมต่อ เราต้องจำไว้ว่า VPN นี้คือ L3 ดังนั้นเราจึงสามารถใส่ที่อยู่ IP ส่วนตัวที่ไม่ได้ใช้งานในเวลาใดก็ได้ ตัวอย่างเช่นใน OpenVPN ซับเน็ตเริ่มต้นคือ 10.8.0.0/24 ที่นี่เราสามารถใส่ซับเน็ตเดียวกันหรืออื่น ๆ 192.168.2.0/24 (และ 192.168.2.1 เป็นเซิร์ฟเวอร์ตัวเองและ IP อื่น ๆ ที่เป็นไคลเอนต์) . ด้วยไวยากรณ์ของ« ที่อยู่ »เราจะใส่ subnet VPN ที่เราต้องการ

ใน« PrivateKey »เราจะต้องใส่รหัสส่วนตัวที่เราสร้างขึ้นก่อนหน้านี้สำหรับเซิร์ฟเวอร์ ใน« ฟังพอร์ต »เราจะใส่พอร์ต UDP ที่เราต้องการใช้สำหรับเซิร์ฟเวอร์พอร์ตนี้เป็นพอร์ตที่เราจะต้อง«เปิด»ใน NAT ในภายหลังถ้าเราอยู่หลังเราเตอร์ที่มี NAT

สุดท้ายในส่วนนี้ของ«อินเตอร์เฟส»เรายังสามารถกำหนดคำสั่งที่จะดำเนินการหลังจากยกอินเตอร์เฟสเสมือนด้วย« PostUp »และหลังจากโยนอินเตอร์เฟสเสมือนด้วย« PostDown » อย่างที่คุณเห็นเรามีความเห็นอยู่ในขณะนี้เนื่องจากเราไม่ต้องการทำ NAT กับอินเทอร์เฟซนี้ แต่ก็สามารถทำได้อย่างสมบูรณ์แบบ

ในส่วน” ลูกแพร์ ” เป็นที่ที่เราจะต้องใส่รายชื่อลูกค้าที่เราอนุญาตให้เชื่อมต่อ ในกรณีนี้เราจะเชื่อมต่อ«เพียร์»เท่านั้นดังนั้นเราจะกำหนดรหัสสาธารณะของคุณด้วย« กุญแจสาธารณะ »ที่เราได้สร้างขึ้นก่อนหน้านี้ (หรือว่าลูกค้าได้ให้เราเพราะมันเป็นไปได้ว่ามันถูกสร้างขึ้นโดยเขา) และนอกจากนี้เราสามารถระบุได้ว่าเราอนุญาตให้ลูกค้าที่มีที่อยู่ IP เฉพาะในการเชื่อมต่อ กับ " อนุญาต »คำสั่งเราสามารถกรองที่อยู่ IP ต้นทางถ้าเราใส่ 0.0.0.0/0 หมายความว่าเราอนุญาตที่อยู่ IP ใด ๆ

[อินเตอร์เฟส] ที่อยู่ = 192.168.2.1/24
คีย์ส่วนตัว = 6JcquylvtJsHNCdWrYMj28XsLIFJUVjlr2y5o27rO2c =
ฟังพอร์ต = 51820

#PostUp = iptables -A ไปข้างหน้า -i% i -j ยอมรับ; iptables -A ไปข้างหน้า -o% i -j ACCEPT; iptables -t nat -A POSTROUTING -o ens33 -j MASQUERADE
#PostDown = iptables -D ไปข้างหน้า -i% i -j ยอมรับ; iptables -D ไปข้างหน้า -o% i -j ACCEPT; iptables -t nat -D POSTROUTING -o ens33 -j MASQUERADE

[เพียร์] PublicKey = 6c12jLkKzgU9len1kQ / 6Fc61xm + LL98TPPlLsri8klE =
อนุญาต IPs = 0.0.0.0/0

หากเราต้องการเพิ่ม“ เพียร์” มากขึ้นเพียงแค่กำหนดเป็นรายบุคคลในไฟล์การกำหนดค่าดังนี้:

[อินเตอร์เฟส] ที่อยู่ = 192.168.2.1/24
คีย์ส่วนตัว = 6JcquylvtJsHNCdWrYMj28XsLIFJUVjlr2y5o27rO2c =
ฟังพอร์ต = 51820

#PostUp = iptables -A ไปข้างหน้า -i% i -j ยอมรับ; iptables -A ไปข้างหน้า -o% i -j ACCEPT; iptables -t nat -A POSTROUTING -o ens33 -j MASQUERADE
#PostDown = iptables -D ไปข้างหน้า -i% i -j ยอมรับ; iptables -D ไปข้างหน้า -o% i -j ACCEPT; iptables -t nat -D POSTROUTING -o ens33 -j MASQUERADE

[เพียร์] PublicKey = 6c12jLkKzgU9len1kQ / 6Fc61xm + LL98TPPlLsri8klE =
อนุญาต IPs = 0.0.0.0/0

[Peer] PublicKey = รหัสสาธารณะของลูกค้า 2
อนุญาต IPs = 0.0.0.0/0

[เพียร์] PublicKey = รหัสสาธารณะของลูกค้า 3
อนุญาต IPs = 0.0.0.0/0

[/ รหัส]

ไฟล์การกำหนดค่าสามารถเรียกว่า« wg0.conf »เนื่องจาก WireGuard สร้างอินเตอร์เฟสเสมือนที่มีชื่อนี้จึงเหมาะที่จะแยกแยะความแตกต่างได้อย่างสมบูรณ์แบบ หากต้องการเรียกใช้ไฟล์การกำหนดค่านี้เพียงแค่เรียกใช้:

root@debian-vm:/etc/wireguard# wg-quick up wg0

เมื่อคุณเริ่มต้น WireGuard จะรับผิดชอบในการสร้างอินเทอร์เฟซเสมือนการวางที่อยู่ IP, MTU และแม้กระทั่งการสร้างเส้นทางที่สอดคล้องกันในตารางเส้นทาง:

root@debian-vm:/etc/wireguard# wg-quick up wg0
[#] ip link add wg0 type wireguard
[#] wg setconf wg0 /dev/fd/63
[#] ip -4 address add 192.168.2.1 dev wg0
[#] ip link set mtu 1420 up dev wg0
[#] wg set wg0 fwmark 51820
[#] ip -4 route add 0.0.0.0/0 dev wg0 table 51820
[#] ip -4 rule add not fwmark 51820 table 51820
[#] ip -4 rule add table main suppress_prefixlength 0
[#] sysctl -q net.ipv4.conf.all.src_valid_mark=1
[#] iptables-restore -n

ไฟล์การกำหนดค่าสำหรับลูกค้า

การกำหนดค่าไคลเอนต์ WireGuard นั้นค่อนข้างง่ายเมื่อเทียบกับเซิร์ฟเวอร์ IPsec หรือ OpenVPN อย่างไรก็ตามเราต้องคำนึงถึงหลายสิ่งที่เราอธิบายด้านล่าง

ในลูกค้าเราจะต้องมี” อินเตอร์เฟซ ” ส่วนในส่วนนี้เราสามารถระบุ ที่อยู่ IP ส่วนตัว ที่ระบุลูกค้าเมื่อเราเชื่อมต่อ เราต้องจำไว้ว่า VPN นี้คือ L3 ดังนั้นเราจึงสามารถใส่ที่อยู่ IP ส่วนตัวที่ไม่ได้ใช้งานในเวลาใดก็ได้ ตัวอย่างเช่นใน OpenVPN ซับเน็ตเริ่มต้นคือ 10.8.0.0/24 ที่นี่เราสามารถใส่ซับเน็ตเดียวกันหรืออื่น ๆ 192.168.2.0/24 (และ 192.168.2.1 เป็นเซิร์ฟเวอร์ตัวเองและที่อยู่ 192.168.2.2 จากนี้เป็นต้นไป เป็นลูกค้าด้วยไวยากรณ์ของ” ที่อยู่ ” เราจะใส่ subnet VPN ที่เราต้องการ

ใน« PrivateKey »เราจะต้องป้อนรหัสส่วนตัวที่เราสร้างขึ้นก่อนหน้านี้สำหรับลูกค้า

ในส่วน” ลูกแพร์ ” คือที่ที่เราจะต้องใส่กุญแจสาธารณะด้วย” กุญแจสาธารณะ ” ของเซิร์ฟเวอร์ WireGuard ที่เรากำลังจะเชื่อมต่อนั่นคือกุญแจสาธารณะนี้จะต้องให้กับเราโดยเซิร์ฟเวอร์ ในโอกาสนี้เรายังสามารถใช้ อนุญาต ” คำสั่ง แต่การดำเนินการจะแตกต่างกันในโอกาสนี้เราสามารถกำหนดได้ว่าเราเพียงต้องการผ่าน VPN ไปยังเครือข่ายย่อย (หรือเครือข่ายย่อยหลายแห่ง) หรือเราต้องการส่งต่อการรับส่งข้อมูลอินเทอร์เน็ตทั้งหมดโดยเครือข่ายส่วนตัวเสมือน ถ้าเราใส่ subnets คั่นด้วยเครื่องหมายจุลภาคเราสามารถเข้าถึงหลายอย่างที่เรามีบนเซิร์ฟเวอร์ถ้าเราต้องการส่งต่อปริมาณการใช้งานทั้งหมดที่เราใส่ไว้ 0.0.0.0/0 เนื่องจากมันเกิดขึ้นกับ IPsec

ในที่สุดด้วย« ปลายทาง »คำสั่งเราจะกำหนดที่อยู่ IP สาธารณะของเซิร์ฟเวอร์ที่เราใช้งาน WireGuard VPN ตามด้วยสองจุด (:) ของพอร์ต UDP ที่ใช้ เราต้องจำไว้ว่า WireGuard ใช้ UDP ดังนั้นเราไม่ควรกรองมันในไฟร์วอลล์

ซอฟต์แวร์และการสื่อสารกับ WireGuard พยายามส่งผ่านโดยไม่มีใครสังเกตเห็นให้มากที่สุดหากไม่ได้ใช้งานนั่นคือจะไม่ส่งข้อมูลผ่าน VPN อย่างต่อเนื่องเพื่อให้ทันเนลใช้งานได้เหมาะสำหรับการประหยัดแบตเตอรี่และข้อมูลมือถือบนสมาร์ทโฟน ในการกำหนดค่าปกติส่วนใหญ่สิ่งนี้จะทำงานได้อย่างสมบูรณ์ แต่ถ้าเราอยู่เบื้องหลัง NAT หรือ ไฟร์วอลล์เป็นไปได้ว่าการสื่อสารถูกตัดเนื่องจากไม่มีการถ่ายโอนข้อมูลดังนั้นจึงจำเป็นต้องกำหนดค่า "ให้มีชีวิตอยู่" ในการกำหนดค่า Keep Alive เพียงระบุคำสั่ง“ PersistentKeepAlive” และป้อนจำนวนเต็มซึ่งหมายถึงวินาทีของการมีชีวิตอยู่ ตามเอกสารอย่างเป็นทางการการตั้งค่า 25 วินาทีเพียงพอสำหรับไฟร์วอลล์และระบบ NAT ส่วนใหญ่ถ้าเราตั้งค่า 0 มันจะปิดใช้งานฟังก์ชันนี้ หากเราอยู่หลัง NAT หรือไฟร์วอลล์และต้องการรับการเชื่อมต่อขาเข้าหลังจากเวลาผ่านไปนานโดยไม่มีการรับส่งข้อมูลคำสั่งนี้จะมีความจำเป็นมิฉะนั้นเราอาจไม่วางไว้

[อินเทอร์เฟซ] PrivateKey = yPMpP2raY4FoCEJkmzQMlxzm / 6RBIW9HkjY6pVFIOnI =
ที่อยู่ = 192.168.2.2/32

[เพียร์] PublicKey = xeTkJjJUUp8paxTgajwDa + qWjrD2RpXlJRSHMwcGDQ =
อนุญาต IPs = 0.0.0.0/0
Endpoint = 10.10.2.86

#PersistentKeepalive = 25

ในระบบปฏิบัติการ Windows เราสามารถนำเข้าการกำหนดค่าเดียวกันนี้และเราจะทำให้มันพร้อมที่จะเชื่อมต่อแม้ว่าเราจะสามารถเชื่อมต่อตั้งแต่เริ่มต้นไคลเอนต์ แต่เราต้อง "ผ่าน" กุญแจสาธารณะที่สร้างขึ้นไปยังเซิร์ฟเวอร์ WireGuard

นอกจากนี้ยังเป็นสิ่งสำคัญมากที่จะต้องดูบันทึกของ WireGuard เพื่อตรวจสอบว่าการเชื่อมต่อ VPN นั้นถูกสร้างขึ้นอย่างถูกต้อง เราไม่สามารถใส่ที่อยู่ IP ส่วนส่วนตัวที่ใช้งานในไคลเอนต์ Windows ได้เนื่องจากเราจะมีข้อผิดพลาดในการเชื่อมต่อ

อย่างที่คุณเห็นการกำหนดค่าของ WireGuard VPN นั้นง่ายและรวดเร็วจริงๆ

ประสิทธิภาพของ WireGuard VPN เมื่อเทียบกับ L2TP / IPsec และ OpenVPN

ใน RedesZone เราได้ตรวจสอบประสิทธิภาพของ WireGuard VPN เปรียบเทียบกับ L2TP / IPsec และ OpenVPN การทดสอบได้ดำเนินการในเครือข่ายท้องถิ่นเพื่อหลีกเลี่ยงปัญหากับผู้ปฏิบัติงานดังนั้นเราสามารถวัดประสิทธิภาพสูงสุดที่แท้จริงที่สามารถให้กับเราได้ ฮาร์ดแวร์เฉพาะ

การกำหนดค่าเซิร์ฟเวอร์ VPN ที่เราใช้ (ทั้ง L2TP / IPsec, OpenVPN และ WireGuard) มีดังนี้:

  • QNAP TS-1277: โปรเซสเซอร์ AMD Ryzen 7 2700; หน่วยความจำแรม: 64GB RAM DDR4; การเชื่อมต่อเครือข่าย: QNAP QXG-10G2T-107 ที่ 10Gbps ด้วยสายเคเบิล Cat7 และ D-Link DXS-1210-10TS สวิตช์ .
  • ซอฟต์แวร์ VPN สำหรับ L2TP / IPsec และ OpenVPN (โดยใช้ UDP) คือ QVPN 2 จาก QNAP
  • ในการทดสอบครั้งที่สองกับ OpenVPN (โดยใช้ UDP) และ AES-256-GCM เราใช้ Virtualization Station กับ Debian
  • iperf3 ติดตั้งด้วยตนเองใน QTS และในเดเบียนเสมือนจริง

การกำหนดค่าไคลเอนต์ VPN ที่เราใช้ (ทั้ง L2TP / IPsec, OpenVPN และ WireGuard) มีดังนี้:

  • พีซีที่มีโปรเซสเซอร์ AMD Ryzen 7 3800x; หน่วยความจำ RAM: 32GB RAM DDR4 3200MHz การเชื่อมต่อเครือข่าย: เอซุส XG-C100C ที่ 10Gbps ด้วยสายเคเบิล CAT7 และ a D-Link DXS-1210-10TS สวิตช์ สำหรับการเชื่อมต่อของทั้งสอง อุปกรณ์ . ระบบปฏิบัติการที่ใช้ในการทดสอบ: Windows 10 1909
  • ไคลเอนต์ Windows 10 L2TP / IPsec
  • OpenVPN เวอร์ชันล่าสุด (2.4.8)
  • iperf 3 ใน Windows 10

ประสิทธิภาพที่ได้จากการทดสอบมีดังนี้:

อย่างที่คุณเห็นความเร็วที่แท้จริงของ WireGuard นั้นเป็นสองเท่าของ L2TP / IPsec หรือ OpenVPN ดังนั้นเราจึงสามารถพูดได้ว่า VPN นี้เร็วมาก

เราหวังว่าบทช่วยสอนการติดตั้งนี้จะช่วยคุณและคุณสามารถปรับใช้เซิร์ฟเวอร์และไคลเอนต์ WireGuard เพื่อเชื่อมต่อกับบ้านธุรกิจหรืออินเทอร์เน็ตของเราอย่างปลอดภัยจากทุกที่ในวิธีที่ปลอดภัย