VPN ด้วย WireGuard บน Android เพื่อรักษาความปลอดภัยเครือข่ายภายในบ้านของคุณ

  • WireGuard ให้บริการ VPN สำหรับบ้านที่รวดเร็ว ปลอดภัย และติดตั้งง่าย เหมาะสำหรับการเข้าถึงเครือข่ายของคุณจากอุปกรณ์ Android และอุปกรณ์อื่นๆ
  • หัวใจสำคัญคือการสร้างคู่คีย์ กำหนด AllowedIPs อย่างถูกต้อง เปิดใช้งานการส่งต่อและ NAT และปกป้องพอร์ต UDP ด้วยไฟร์วอลล์ที่เหมาะสม
  • หากมีการใช้งาน CGNAT แล้ว VPS ที่ทำหน้าที่เป็นตัวกลางจะช่วยให้คุณสามารถเข้าถึงเครือข่ายภายในบ้านของคุณได้อย่างต่อเนื่องผ่านอุโมงค์ WireGuard ระหว่างเซิร์ฟเวอร์ระยะไกลและ LAN ภายในบ้านของคุณ
  • แผงควบคุมต่างๆ เช่น WireGuard Easy และแอปอย่างเป็นทางการ ช่วยอำนวยความสะดวกในการจัดการอุปกรณ์ต่อพ่วงและการใช้งานบนมือถือผ่านรหัส QR และไฟล์ .conf ที่สามารถนำกลับมาใช้ใหม่ได้

Wireguard VPN

หากคุณได้จัดตั้งชุดอุปกรณ์เทคโนโลยีขนาดเล็กไว้ที่บ้านพร้อมกับ... NAS, เซิร์ฟเวอร์ Linux หรือคอมพิวเตอร์มือสองที่มีบริการต่างๆ ครบครันฉันแน่ใจว่าคุณเคยเจอปัญหาเดียวกันนี้: ทุกอย่างทำงานได้อย่างสมบูรณ์แบบขณะที่คุณเชื่อมต่อ Wi-Fi แต่พอออกจากบ้านปุ๊บ ทุกอย่างก็ใช้งานไม่ได้ คุณไม่สามารถเข้าถึงแอป ไฟล์ หรือกล้อง IP ได้โดยไม่ติดขัดกับปัญหาการตั้งค่าพอร์ต ปัญหา DDNS และความเสี่ยงด้านความปลอดภัย หรือต้องหันไปใช้... VPN ที่แนะนำสำหรับ Android.

วิธีที่ง่ายและปลอดภัยที่สุดในการแก้ปัญหานี้คือการสร้าง VPN ด้วย WireGuard และเชื่อมต่อจากอุปกรณ์ Android (และจากอุปกรณ์อื่นๆ) ด้วยวิธีนี้ คุณสามารถใช้เครือข่ายภายในบ้านได้ราวกับว่าคุณอยู่ที่นั่นจริงๆ แม้ว่าผู้ให้บริการอินเทอร์เน็ตของคุณจะใช้ CGNAT หรือคุณมีโครงสร้างเครือข่ายที่ค่อนข้างซับซ้อนก็ตาม มาดูกันทีละขั้นตอน: ตั้งแต่ WireGuard คืออะไร วิธีการตั้งค่าบน Linux (หรือด้วย Docker และแผงควบคุมเช่น EasyPanel/WireGuard Easy) และวิธีการปรับแต่งเพื่อให้เข้าถึง LAN ของคุณได้ เปิดใช้งาน VPN บน Android และท่องเว็บได้อย่างปลอดภัยจากอุปกรณ์มือถือของคุณ

WireGuard คืออะไร และเหตุใดจึงเหมาะสำหรับใช้เป็น VPN ในบ้าน?

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

โค้ดเบสของมันมีขนาดเล็กมาก (ประมาณ...) หลายพันบรรทัดวิธีนี้ช่วยให้ค้นหาช่องโหว่และอัปเดตระบบได้ง่ายขึ้น สำหรับการเข้ารหัส ระบบจะใช้เฉพาะอัลกอริธึมที่ทันสมัยและได้รับการยอมรับอย่างดี เช่น Curve25519, ChaCha20, Poly1305, BLAKE2s และบริษัท ไม่มีรายการรหัสลับที่ล้าสมัยมากมายที่ไม่มีใครควรใช้อีกต่อไปแล้ว

นอกจากนี้ ยังใช้งานได้เฉพาะบน โปรโตคอล UDP และสามารถรวมเข้ากับเคอร์เนลของ Linux ได้ดังนั้นค่าความหน่วงจึงต่ำ ประสิทธิภาพดีมาก และการใช้งาน CPU น้อยมาก โดยเฉพาะอย่างยิ่งเมื่อเชื่อมต่อจาก Android ผ่าน 4G/5G หรือ Wi-Fi ทั่วไป การเชื่อมต่อใหม่รวดเร็ว และระบบจัดการการเปลี่ยนแปลงเครือข่ายได้ค่อนข้างดี

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

ข้อดีอีกประการหนึ่งคือ WireGuard สามารถใช้งานได้บนหลายแพลตฟอร์ม: มี แอปพลิเคชันอย่างเป็นทางการสำหรับ Androidโปรแกรมนี้ใช้งานได้กับ iOS, Windows, macOS และ Linux และยังสามารถทำงานบนเราเตอร์, คอนเทนเนอร์ Docker หรืออุปกรณ์ฝังตัวได้อีกด้วย สำหรับอุปกรณ์พกพา คุณสามารถนำเข้าไฟล์ .conf หรือสแกนไฟล์ได้โดยตรง รหัส QR ที่สร้างขึ้นบนเซิร์ฟเวอร์ และนั่นคือมัน

ข้อกำหนดพื้นฐานก่อนการตั้งค่าเซิร์ฟเวอร์ WireGuard ของคุณ

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

วิธีปฏิบัติที่พบได้บ่อยที่สุดคือการใช้ เซิร์ฟเวอร์ลินุกซ์นี่อาจเป็น VPS บนคลาวด์ (Ubuntu 22.04 เป็นตัวเลือกที่สะดวกมาก) หรือเครื่องคอมพิวเตอร์ที่บ้าน (Raspberry Pi, miniPC, NAS ที่รองรับ ฯลฯ) ระบบปฏิบัติการรุ่นใหม่ใด ๆ ที่รองรับ WireGuard ก็สามารถใช้งานได้ แต่ Ubuntu/Debian มีเอกสารและตัวอย่างมากกว่า

โปรโตคอลความปลอดภัย VPN
บทความที่เกี่ยวข้อง:
โปรโตคอลความปลอดภัย VPN ที่ใช้มากที่สุด: คำแนะนำ ความแตกต่าง และคำแนะนำที่ครอบคลุม 2025

คุณต้องการผู้ใช้ที่มี สิทธิ์การดูแลระบบ (ในฐานะผู้ใช้ root หรือผู้ใช้ที่มีสิทธิ์ sudo) เนื่องจากคุณจะต้องติดตั้งแพ็กเกจ ปรับแต่งการตั้งค่าเครือข่าย เปิดใช้งานการส่งต่อ IP และอาจต้องแก้ไขกฎไฟร์วอลล์ นอกจากนี้ การเข้าถึงเซิร์ฟเวอร์ผ่าน SSH และรู้วิธีการเชื่อมต่อจากเครื่องของคุณก็เป็นสิ่งสำคัญเช่นกัน

ในฝั่งไคลเอ็นต์ คุณจะใช้เป็นหลัก สมาร์ทโฟน Android ที่ติดตั้งแอป WireGuard อย่างเป็นทางการแม้ว่ารูปแบบการตั้งค่าเดียวกันจะใช้ได้กับ Windows, macOS, Linux หรือ iOS ก็ตาม ไฟล์การตั้งค่าจะเปลี่ยนแปลงเพียงเล็กน้อยระหว่างแพลตฟอร์มต่างๆ ดังนั้นสิ่งที่คุณเรียนรู้ในที่นี้จึงมีประโยชน์สำหรับทุกแพลตฟอร์ม

ศัตรูตัวฉกาจ: CGNAT และผลกระทบต่อ VPN ในบ้านของคุณ

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

การตรวจจับนั้นง่ายมาก: ขั้นแรก ให้จดบันทึกของคุณ IP สาธารณะ จากเว็บไซต์เช่น “whatismyip.” ในเบราว์เซอร์ของคุณ จากนั้นเข้าถึงแผงควบคุมของเราเตอร์ (โดยปกติอยู่ที่ 192.168.1.1 หรือ 192.168.0.1) และดูในส่วน WAN หรือ Internet เพื่อหาที่อยู่ IP ที่เราเตอร์คิดว่าตัวเองมี หากที่อยู่ IP นั้นขึ้นต้นด้วย 10.xxx หรืออยู่ในช่วง 100.64.0.0 – 100.127.255.255 และหากข้อมูลไม่ตรงกับข้อมูลบนเว็บไซต์ แสดงว่าคุณอยู่ภายใต้การกำกับดูแลของ CGNAT อีกทางเลือกหนึ่งคือโทรติดต่อโอเปเรเตอร์และสอบถามโดยตรง

เมื่อใช้ CGNAT เราเตอร์ของคุณจะไม่ได้รับที่อยู่ IP สาธารณะโดยตรง ดังนั้น คุณไม่สามารถตั้งค่าการส่งต่อพอร์ตแบบคลาสสิกได้บางบริษัทอนุญาตให้คุณเลือกที่จะไม่ใช้ CGNAT โดยการจ่ายเงินเพิ่มหรือเปิดใช้งานตัวเลือกเพิ่มเติม ในขณะที่บางบริษัทอาจกำหนดให้คุณต้องเปลี่ยนแผน และบางครั้งราคาก็พุ่งสูงขึ้นอย่างมาก หากคุณไม่ต้องการทำขั้นตอนเหล่านั้นทั้งหมด วิธีแก้ปัญหาที่ชาญฉลาดคือการเปลี่ยนไปใช้... VPS ในฐานะสะพานเชื่อมเซิร์ฟเวอร์ที่บ้านของคุณจะสร้างอุโมงค์ WireGuard ไปยัง VPS และคุณจะเชื่อมต่อกับ VPS จากอุปกรณ์ Android เพื่อเข้าถึงเครือข่าย LAN ที่บ้านของคุณ

การเตรียมเซิร์ฟเวอร์ Linux: การอัปเดตและการติดตั้ง WireGuard

บนเซิร์ฟเวอร์ที่ใช้ Ubuntu 22.04 (หรือเวอร์ชันที่คล้ายกัน) สิ่งแรกที่ต้องทำคือ อัปเดตแพ็คเกจ เพื่อหลีกเลี่ยงการส่งต่อช่องโหว่หรือเวอร์ชันเก่า:

apt update && apt upgrade -y

จากนั้นติดตั้ง WireGuard จากแหล่งเก็บซอฟต์แวร์อย่างเป็นทางการโดยใช้คำสั่ง:

apt install -y wireguard

แพ็คเกจนี้ประกอบด้วยเครื่องมือต่างๆ wg และ wg-quick และโหลดโมดูลเคอร์เนลที่จำเป็น หากคุณต้องการบังคับโหลดด้วยตนเองในสภาพแวดล้อมที่ไม่ปกติ คุณสามารถใช้คำสั่งต่อไปนี้:

modprobe wireguard

โครงสร้างการสร้างคีย์และการกำหนดค่าเซิร์ฟเวอร์

หัวใจหลักของ WireGuard คือระบบของ คีย์สาธารณะและคีย์ส่วนตัวโดยปกติแล้ว การทำงานจะดำเนินการในไดเร็กทอรีมาตรฐาน /etc/ไวร์การ์ด/ซึ่งเป็นที่ที่คุณจะเก็บกุญแจและไฟล์การกำหนดค่า

เปลี่ยนไปที่ไดเร็กทอรีนั้น แล้วตั้งค่าสิทธิ์การเข้าถึงให้เข้มงวดขึ้นก่อนที่จะสร้างอะไรก็ตาม:

cd /etc/wireguard/
umask 077

สิ่งนี้ทำให้มั่นใจได้ว่า ไฟล์ใหม่เหล่านี้อาจไม่สามารถอ่านได้โดยผู้ใช้รายอื่นขั้นตอนนี้สำคัญมากเมื่อสร้างคีย์ส่วนตัว ตัวอย่างเช่น สร้างคู่คีย์เซิร์ฟเวอร์:

wg genkey > privatekey
wg pubkey < privatekey > publickey

La กุญแจส่วนตัว ไฟล์จะต้องอยู่บนเซิร์ฟเวอร์ตลอดเวลาและห้ามออกจากเซิร์ฟเวอร์เด็ดขาด; กุญแจสาธารณะ ใช่ คุณสามารถแชร์กับลูกค้าได้ นอกจากนี้ ควรหลีกเลี่ยงแอปพลิเคชันของบุคคลที่สามที่อาจทำให้ข้อมูลลับรั่วไหล โปรดอ่านบทความเกี่ยวกับ [หัวข้อหายไป] แอปพลิเคชัน VPN ที่ไม่ปลอดภัย หากคุณมีข้อสงสัยใด ๆ เกี่ยวกับลูกค้า

chmod 600 privatekey

หากคุณต้องการดูแป้นพิมพ์บนหน้าจอเพื่อคัดลอกในภายหลัง คุณสามารถใช้คำสั่งต่อไปนี้:

tail privatekey publickey

สร้างและแก้ไขไฟล์ wg0.conf ของเซิร์ฟเวอร์

Wireguard VPN

WireGuard จัดระเบียบอุโมงค์ของตนในรูปแบบต่างๆ อินเทอร์เฟซเสมือน การเรียกตามธรรมเนียมคือ wg0, wg1 เป็นต้น แต่ละอินเทอร์เฟซจะมีไฟล์การกำหนดค่าของตัวเองอยู่ใน /etc/ไวร์การ์ด/เรากำลังจะสร้าง wg0.conf เป็นอินเทอร์เฟซหลัก

หากคุณชอบ Nano และยังไม่ได้ติดตั้ง คุณสามารถเพิ่มได้โดยใช้คำสั่ง:

apt install -y nano

เปิดไฟล์การกำหนดค่า:

nano /etc/wireguard/wg0.conf

ก่อนที่จะเขียนอะไรลงไป ให้ระบุชื่อของอินเทอร์เฟซเครือข่ายที่เชื่อมต่อกับอินเทอร์เน็ต (อินเทอร์เฟซที่มีที่อยู่ IP สาธารณะ หรือที่อยู่ IP ที่คุณใช้เชื่อมต่อผ่าน SSH) คุณสามารถค้นหาได้โดยใช้คำสั่งต่อไปนี้:

ip a

ใน VPS หลายๆ เครื่องเรียกสิ่งนี้ว่า eth0, ens3, enp0s3 หรืออะไรทำนองนั้น คุณจะต้องใช้มันสำหรับกฎ NAT ตัวอย่างของการบล็อกที่สมบูรณ์อาจเป็นดังนี้:


Address = 10.30.0.1/24
PrivateKey = <clave_privada_servidor>
ListenPort = 51820
PostUp = iptables -A FORWARD -i %i -j ACCEPT; iptables -A FORWARD -o %i -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
PostDown = iptables -D FORWARD -i %i -j ACCEPT; iptables -D FORWARD -o %i -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE

ตรงนี้คุณกำลังกำหนดที่อยู่ IP ให้กับเซิร์ฟเวอร์ 10.30.0.1 ภายในเครือข่าย VPNคุณกำหนดให้มันรับฟังบนพอร์ต UDP 51820 และกำหนดกฎ iptables ที่จะใช้เมื่ออินเทอร์เฟซ wg0 ทำงาน (โพสต์อัพ) และจะถูกลบออกเมื่อคุณลงไป (โพสต์ดาวน์โปรดระมัดระวังเมื่อทำการเปลี่ยนชิ้นส่วน eth0 โดยใช้ชื่อจริงของอินเทอร์เฟซเอาต์พุตของคุณ

ใน Nano คุณจะประหยัดได้ด้วย Ctrl + O และคุณปิดท้ายด้วย Ctrl + Xไฟล์ wg0.conf นี้จะเป็นแกนหลักที่คุณจะใช้เพิ่มไคลเอ็นต์ (peers) ต่างๆ เข้าไป

เปิดใช้งานการส่งต่อ IP และเริ่มต้นบริการ WireGuard

เพื่อให้ลูกค้าของคุณสามารถเข้าถึงอินเทอร์เน็ตหรือเครือข่าย LAN ที่อยู่ด้านหลังเซิร์ฟเวอร์ VPN ได้ ระบบจะต้องอนุญาตให้มีการเข้าถึงนั้น การส่งต่อแพ็กเก็ต IPv4 และ IPv6สิ่งนี้ถูกควบคุมด้วย sysctl

วิธีที่รวดเร็วคือการเพิ่มบรรทัดที่เกี่ยวข้องเข้าไป /etc/sysctl.conf หรือไปยังไฟล์ใน /etc/sysctl.d/ และชาร์จพลังงาน:

echo "net.ipv4.ip_forward=1" >> /etc/sysctl.conf
echo "net.ipv6.conf.all.forwarding=1" >> /etc/sysctl.conf
sysctl -p

หากบรรทัดเหล่านั้นมีอยู่แล้วแต่ถูกคอมเมนต์ไว้ (ด้วยเครื่องหมาย #) ก็เพียงพอแล้วที่จะ... ลบเครื่องหมาย # ออกบันทึกและเริ่มต้นใหม่อีกครั้ง sysctl -pหากไม่ทำขั้นตอนนี้ คุณจะมีอุโมงค์เชื่อมต่อ แต่คุณจะไม่สามารถเข้าถึงเครือข่าย LAN หรืออินเทอร์เน็ตจากเครื่องลูกข่ายได้

ตอนนี้คุณสามารถยก WireGuard ขึ้นได้ด้วยความช่วยเหลือจาก WG-ด่วน และ systemd:

systemctl start wg-quick@wg0

เพื่อให้ระบบเริ่มต้นทำงานโดยอัตโนมัติ:

systemctl enable wg-quick@wg0

ตรวจสอบว่าทุกอย่างเป็นสีเขียวด้วย:

systemctl status wg-quick@wg0

และหากต้องการดูรายละเอียดแบบเรียลไทม์ของอินเทอร์เฟซ คีย์ พีร์ และปริมาณการรับส่งข้อมูล ให้ใช้คำสั่ง:

wg

เพิ่มไคลเอ็นต์: PC, โทรศัพท์มือถือ Android และอุปกรณ์อื่นๆ

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

สำหรับคอมพิวเตอร์ตั้งโต๊ะ คุณสามารถทำได้ดังนี้เป็นต้น /etc/wireguard/:

wg genkey > mypc_privatekey
wg pubkey < mypc_privatekey > mypc_publickey

และสำหรับโทรศัพท์มือถือ Android ของคุณ:

wg genkey > myphone_privatekey
wg pubkey < myphone_privatekey > myphone_publickey

ตรวจสอบไฟล์ด้วย:

ls

และแสดงคีย์สาธารณะ:

tail mypc_publickey myphone_publickey

กุญแจสาธารณะเหล่านั้นคือกุญแจที่คุณจะต้องป้อนเข้าไป wg0.conf ภายในบล็อก เปิดไฟล์เซิร์ฟเวอร์อีกครั้ง:

nano /etc/wireguard/wg0.conf

และเขากล่าวเสริมว่า ตัวอย่างเช่น:


PublicKey = <clave_publica_mypc>
AllowedIPs = 10.30.0.2/32

คีย์สาธารณะ =
อนุญาต IPs = 10.30.0.3/32

การทำเช่นนี้เป็นการจองที่อยู่ IP ไว้ 10.30.0.2 สำหรับพีซี และ 10.30.0.3 สำหรับมือถือ Android/32 บ่งบอกว่าเป็นที่อยู่ IP เฉพาะบุคคล โดยแต่ละอุปกรณ์จะใช้ที่อยู่ IP ที่ไม่ซ้ำกันภายในเครือข่ายย่อยของ VPN

บันทึกและโหลดบริการใหม่เพื่อใช้การเปลี่ยนแปลง:

systemctl restart wg-quick@wg0

สร้างไฟล์การกำหนดค่าไคลเอ็นต์

ตอนนี้ถึงเวลาเตรียมตัวแล้ว ไฟล์ .conf ที่ไคลเอ็นต์จะใช้ข้อมูลเหล่านี้ได้แก่ คีย์ส่วนตัวของคุณ ที่อยู่ IP ภายใน DNS และข้อมูลเซิร์ฟเวอร์ (คีย์สาธารณะ ที่อยู่ IP/โดเมน และพอร์ต)

สำหรับพีซี คุณสามารถสร้างได้ มายพีซีคอนฟ ในไฟล์ /etc/wireguard/ (หรือที่ที่คุณต้องการ):

nano mypc.conf

ประเภทเนื้อหา:


PrivateKey = <clave_privada_mypc>
Address = 10.30.0.2/24
DNS = 1.1.1.1

คีย์สาธารณะ =
จุดสิ้นสุด = :51820
อนุญาต IPs = 0.0.0.0/0
ถาวร Keepalive = 20

ในส่วนแรก คุณกำหนด "ส่วนติดต่อ" ภายในเครื่องของไคลเอนต์ ได้แก่ คีย์ส่วนตัว ที่อยู่ IP ของ VPN และ DNS ที่จะใช้ ในส่วนที่สอง คุณอธิบายเซิร์ฟเวอร์ ได้แก่ คีย์สาธารณะ ที่อยู่ และพอร์ต บรรทัดนี้ อนุญาต IPs = 0.0.0.0/0 ทำให้ การรับส่งข้อมูลของลูกค้าทั้งหมดจะผ่าน VPN (อุโมงค์เต็มรูปแบบ) หากคุณต้องการเข้าถึงเฉพาะ LAN ระยะไกลของคุณ คุณสามารถจำกัดไว้ที่ 10.30.0.0/24 และ/หรือ 192.168.x.0/24 ขึ้นอยู่กับเครือข่ายของคุณ

การเชื่อมต่อแบบคงอยู่ แนะนำให้ทำการตรวจสอบทุกๆ 20-25 วินาที สำหรับไคลเอ็นต์ที่อยู่หลัง NAT หรือเครือข่ายมือถือ เนื่องจากจะช่วยป้องกันไม่ให้ท่อส่งข้อมูลแสดงว่าไม่ทำงาน และป้องกันไม่ให้ไฟร์วอลล์ปิดเซสชัน

วิธีเปิดใช้งาน VPN บน Android
บทความที่เกี่ยวข้อง:
วิธีเปิดใช้งาน VPN บน Android และบล็อกการรับส่งข้อมูลที่ไม่ปลอดภัย

การกำหนดค่าเฉพาะไคลเอ็นต์ Android

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

โดยทำตามตัวอย่าง คุณได้สร้าง คีย์ส่วนตัวของโทรศัพท์และคีย์สาธารณะของโทรศัพท์โทรศัพท์ของคุณไม่มีไฟล์ myphone.conf:

nano myphone.conf

ประมาณนี้:


PrivateKey = <clave_privada_myphone>
Address = 10.30.0.3/24
DNS = 1.1.1.1

คีย์สาธารณะ =
จุดสิ้นสุด = :51820
อนุญาต IPs = 0.0.0.0/0
ถาวร Keepalive = 20

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

วิธีที่สะอาดที่สุดโดยทั่วไปคือการใช้ คิวเรนโค้ด เพื่อสร้างรหัส QR ที่แอป WireGuard บน Android สามารถสแกนได้:

apt install -y qrencode
qrencode -t ansiutf8 -r myphone.conf

คุณจะเห็นคิวอาร์โค้ดในรูปแบบอักขระ ASCII บนเทอร์มินัล บนอุปกรณ์มือถือของคุณ เปิดแอป WireGuard แล้วเลือก “สแกนจากคิวอาร์โค้ด"(สแกนจากคิวอาร์โค้ด) แล้วชี้ไปที่หน้าจอ วิธีนี้คุณไม่จำเป็นต้องแชร์ไฟล์ .conf ผ่านช่องทางที่ไม่น่าเชื่อถือ"

การเข้าถึงเครือข่าย LAN ภายในบ้าน, DNS และชื่อโดเมนภายในเครื่อง

นอกเหนือจากการสร้างอุโมงค์แล้ว สิ่งที่น่าสนใจเกี่ยวกับ... VPN ด้วย WireGuard บน Android เพื่อการเชื่อมต่อที่ปลอดภัยภายในบ้าน นั่นหมายถึงการที่คุณสามารถเข้าถึงอุปกรณ์ภายในบ้านทั้งหมดได้ราวกับว่าคุณอยู่ที่นั่นจริงๆ เช่น NAS, กล้อง IP, เราเตอร์, เซิร์ฟเวอร์มีเดีย ฯลฯ โดยในอุดมคติแล้วควรใช้ ใช้ชื่อโดเมนท้องถิ่นแทนที่อยู่ IP.

เราเตอร์หลายรุ่นที่รวมเซิร์ฟเวอร์ WireGuard หรือ DNS ภายในไว้ด้วย มักจะมีส่วนลักษณะนี้ เครือข่าย → DNS → แก้ไขโฮสต์ ที่คุณสามารถสร้างรายการต่างๆ ได้ เช่น 192.168.1.50 nas-casa.localหากคุณตั้งค่า DNS ของไคลเอนต์ VPN ให้ชี้ไปยังเราเตอร์หรือเซิร์ฟเวอร์ที่ทำการแปลงชื่อเหล่านั้น คุณจะสามารถเข้าถึงอุปกรณ์ของคุณโดยใช้ชื่อโฮสต์ได้

เฟิร์มแวร์เราเตอร์บางตัวที่มี WireGuard จะมีช่องทำเครื่องหมายให้เลือก เช่น “อนุญาตการเข้าถึงเครือข่าย LAN จากระยะไกล”"การเข้าถึงระยะไกลผ่านเครือข่ายย่อย LAN" หรือชื่อที่คล้ายกัน คุณต้องเปิดใช้งานสิ่งเหล่านี้เพื่อให้ไคลเอนต์ระยะไกลสามารถเข้าถึงได้ ซับเน็ตท้องถิ่น (192.168.xx) นอกเหนือจากตัวเราเตอร์เองแล้ว

ในกรณีที่เซิร์ฟเวอร์ WireGuard ทำงานแบบฝังตัวอยู่ในเราเตอร์ มักจะช่วยให้สามารถดำเนินการดังกล่าวได้ ส่งออกโปรไฟล์ .conf ที่เตรียมไว้ล่วงหน้า สำหรับอุปกรณ์พกพาหรือเราเตอร์ไคลเอ็นต์อื่นๆ โปรไฟล์เหล่านี้มักประกอบด้วย IP ของอุโมงค์, DNS ที่ถูกต้อง (โดยปกติจะเป็น IP ของเราเตอร์เองบนเครือข่าย VPN) และ AllowedIPs ที่กำหนดค่าอย่างถูกต้อง

การตรวจสอบ การแก้ไขปัญหา และความปลอดภัย

เมื่อนำเข้าการตั้งค่าลงใน Android และเปิดใช้งานอุโมงค์แล้ว สิ่งแรกที่ต้องทำคือตรวจสอบว่า การจับมือเป็นไปอย่างถูกต้องแอป WireGuard จะแสดงสถานะ จำนวนไบต์ที่ส่ง/รับ และเวลาที่เกิดการเชื่อมต่อครั้งล่าสุด

บนเซิร์ฟเวอร์ ให้รันคำสั่ง:

wg

ตรงนั้นคุณจะเห็นข้อมูลสำหรับแต่ละเครื่องปลายทาง ได้แก่ คีย์สาธารณะ ที่อยู่ IP ระยะไกลที่เชื่อมต่อเข้ามา การจับมือครั้งล่าสุด และข้อมูลการรับส่งที่แลกเปลี่ยนกัน หากช่อง "การจับมือครั้งล่าสุด" ว่างเปล่าหรือเก่ามาก แสดงว่าเครื่องปลายทางเชื่อมต่อไม่ได้ หรือมีบางอย่างขัดขวางอยู่

หากไม่มีการเชื่อมต่อ ให้ตรวจสอบว่า... พอร์ต UDP (51820 หรือพอร์ตใดก็ตามที่คุณใช้) เปิดอยู่ บนไฟร์วอลล์ของเซิร์ฟเวอร์ (UFW, iptables, nftables) และบนเราเตอร์ตัวกลางใดๆ หากเซิร์ฟเวอร์อยู่หลังเราเตอร์บ้าน ให้กำหนดค่า... การส่งต่อพอร์ต UDP จากพอร์ตนั้นไปยังที่อยู่ IP ภายในของเซิร์ฟเวอร์ปัญหานี้อาจส่งผลกระทบต่อแอปพลิเคชันบางตัว โปรดดูคำแนะนำของเราเกี่ยวกับเรื่องนี้ ควรทำอย่างไรหากแอปพลิเคชันใช้งานไม่ได้ขณะเปิดใช้งาน VPN.

หากอุโมงค์เปิดแล้ว แต่คุณไม่มีอินเทอร์เน็ตมือถือ ให้ตรวจสอบการส่งต่อแพ็กเก็ต (เน็ต.ipv4.ip_forward และเป็นทางเลือก net.ipv6.conf.all.forwardingตรวจสอบว่า ) ทำงานอยู่ และกฎ NAT ชี้ไปยังอินเทอร์เฟซขาออกที่ถูกต้อง (eth0, ens3 เป็นต้น)

ปัญหา DNS มักจะตรวจพบเมื่อคุณสามารถ ping ที่อยู่ IP เฉพาะ (เช่น 1.1.1.1) ได้ แต่ไม่สามารถระบุโดเมนได้ ในกรณีนั้น ให้ตรวจสอบบรรทัดดังกล่าว โดเมนเอสอาร์ = ในไฟล์ .conf ของไคลเอ็นต์: คุณสามารถใช้ DNS สาธารณะ (8.8.8.8, 1.1.1.1) หรือที่อยู่ IP ของอุโมงค์ของเซิร์ฟเวอร์หากเซิร์ฟเวอร์นั้นทำหน้าที่เป็นตัวแก้ไขภายใน

ในแง่ของความปลอดภัย นอกเหนือจากการเข้ารหัสของ WireGuard แล้ว ยังมีอีกหลายประการ แนวปฏิบัติที่ดีที่สำคัญ:

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

เมื่อคุณใช้งาน CGNAT หรือต้องการฟังก์ชันขั้นสูงกว่านั้น: ให้เชื่อมต่อผ่าน VPS

หากผู้ให้บริการของคุณใช้ระบบ CGNAT หรือคุณต้องการแยกส่วนการเข้าถึงสาธารณะของบ้าน คุณสามารถตั้งค่าโซลูชันที่ซับซ้อนขึ้นเล็กน้อยแต่ทรงประสิทธิภาพมากได้: ใช้ VPS เป็นศูนย์กลาง และใช้เซิร์ฟเวอร์ที่บ้านของคุณเป็นเครื่องลูกข่ายจากนั้นเชื่อมต่ออุปกรณ์ Android ของคุณเข้ากับ VPS และใช้ VPS นั้นในการเข้าถึงเครือข่าย LAN ของคุณ

หลักการพื้นฐานคือ: คุณตั้งค่าในระบบคลาวด์ เซิร์ฟเวอร์ WireGuard (ตัวอย่างเช่น ด้วย Docker และสแต็กอย่าง linuxserver/wireguard หรือที่เก็บแพ็กเกจสำเร็จรูป) คุณเปิดใช้งานการส่งต่อและ NAT และที่บ้านคุณก็จะมี Raspberry Pi หรือ PC ที่เปิดใช้งานอยู่ตลอดเวลา ซึ่งเชื่อมต่อกับ VPS นั้นในฐานะผู้ส่งผ่าน (peer) VPS นั้นมี IP สาธารณะและไม่ได้รับผลกระทบจาก CGNAT ดังนั้นคุณจึงสามารถเปิดพอร์ตได้โดยไม่มีปัญหาใดๆ

ขั้นตอนการทำงานทั่วไปของ Docker อาจเป็นดังนี้:

  • บน VPS คุณติดตั้ง Docker และ Docker Compose โคลน repository การกำหนดค่า WireGuard และ คุณสามารถเรียกใช้คอนเทนเนอร์ได้ด้วยคำสั่ง `docker-compose up -d`.
  • คอนเทนเนอร์จะสร้างคีย์เซิร์ฟเวอร์และคีย์ของโหนดต่างๆ (peer1, peer2…) โดยอัตโนมัติ และบันทึกไฟล์ .conf ของคีย์เหล่านั้นไว้ในโฟลเดอร์ config
  • คุณปรับไฟล์เซิร์ฟเวอร์เพื่อรวมของคุณเข้าไปด้วย กำหนดซับเน็ตบ้าน (เช่น 192.168.1.0/24) ใน AllowedIPs เลือกอุปกรณ์ปลายทางที่ Raspberry Pi ของคุณจะใช้งาน และกำหนดค่า iptables หรือกฎที่เทียบเท่าบนโฮสต์เพื่อกำหนดเส้นทางการรับส่งข้อมูลระหว่าง VPN และเครือข่ายภายในบ้านของคุณ
  • บน Raspberry Pi ให้โคลน repository เดียวกัน (หรือ repository ที่เตรียมไว้แล้ว) สร้างไฟล์ wg0.conf ด้วยข้อมูลที่สร้างขึ้นสำหรับ peer1 เปิดใช้งาน NAT ในเครื่อง (เพื่อให้สามารถส่งข้อมูลกลับไปยัง LAN ได้) และเริ่มต้นไคลเอนต์ WireGuard ใน Docker หรือแบบดั้งเดิม

จากนั้น อุปกรณ์อื่นๆ (รวมถึงของคุณ) Android ที่ติดตั้งแอป WireGuardคุณสามารถใช้ peer เพิ่มเติมของ VPS (peer2, peer3…) เพื่อเชื่อมต่อได้ ในทางปฏิบัติ คุณจะเชื่อมต่อกับที่อยู่ IP ของ VPS เสมอ แต่สุดท้ายแล้วคุณจะเข้าถึงบริการเครือข่ายภายในบ้านของคุณ แม้ว่าจะผ่าน CGNAT ก็ตาม

WireGuard พร้อมแผงควบคุมเว็บ: WireGuard Easy, EasyPanel และบริษัทผู้ผลิต

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

ขั้นตอนการใช้งานแผงควบคุมเหล่านี้โดยทั่วไปจะเป็นดังนี้:

  • คุณเข้าถึงแผงควบคุม (EasyPanel หรืออื่นๆ) ด้วยบัญชีผู้ใช้ของคุณ
  • คุณติดตั้งเทมเพลต ไวร์การ์ด อีซี่โดยกำหนดพารามิเตอร์ต่างๆ เช่น โดเมน/IP สาธารณะ (WG_HOST), พอร์ต UDP, ซับเน็ต VPN และ DNS
  • ระบบจะเริ่มต้นคอนเทนเนอร์ที่แสดงเว็บอินเทอร์เฟซที่ได้รับการป้องกันด้วยรหัสผ่าน ซึ่งคุณจะเห็น... รายชื่อเพื่อนร่วมงาน สถิติ และตัวเลือกการกำหนดค่า.
  • ในการเพิ่มลูกค้า คุณเพียงแค่กรอกแบบฟอร์มด้วยชื่อของลูกค้า ระบบจะสร้างรหัส กำหนดที่อยู่ IP และแสดงผลให้ รหัส QR พร้อมสแกนด้วย Androidนอกเหนือจากการอนุญาตให้คุณดาวน์โหลดไฟล์ .conf แล้ว

วิธีนี้สะดวกมากในสภาพแวดล้อมที่มีคนใช้ VPN หลายคน (เช่น ครอบครัว ทีมงาน ฯลฯ) เพราะคุณสามารถ... เปิดใช้งานหรือยกเลิกสิทธิ์การเข้าถึงได้ภายในไม่กี่วินาที โดยไม่ต้องอธิบายรายละเอียดทางเทคนิคใดๆ นอกจากนี้ หากคุณติดตั้ง WireGuard Easy บน VPS คุณจะสามารถรวมศูนย์การเข้าถึงระยะไกลทั้งหมดไปยังเครือข่ายภายในบ้านและสถานที่อื่นๆ ได้

WireGuard บนระบบปฏิบัติการอื่นๆ: Windows, macOS, Linux, iOS

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

รูปแบบการกำหนดค่าเหมือนเดิม: บล็อกที่มีของคุณ คีย์ส่วนตัว ที่อยู่ และ DNSและปิดกั้นด้วย คีย์สาธารณะของเซิร์ฟเวอร์, ปลายทาง และ IP ที่อนุญาตเมื่อบันทึกเสร็จแล้ว เพียงกด "เปิดใช้งาน" เพื่อเปิดใช้งานอินเทอร์เฟซและเริ่มการไหลของข้อมูล

บน iOS ขั้นตอนจะคล้ายกับ Android มาก คือ คุณติดตั้งแอป WireGuard จาก App Store สร้างอุโมงค์ใหม่ แล้วคุณก็สามารถใช้งานได้เลย นำเข้าไฟล์ .conf หรือสแกนคิวอาร์โค้ด ซึ่งคุณสร้างขึ้นโดยใช้ qrencode หรือจากแผงควบคุมเช่น WireGuard Easy จากนั้นเปิดใช้งานอุโมงค์ด้วยสวิตช์ และคุณก็สามารถเข้าถึงเครือข่ายภายในบ้านของคุณได้แล้ว

บนระบบ Linux แบบเดสก์ท็อป คุณสามารถใช้เครื่องมือบรรทัดคำสั่งได้โดยตรง (wg-quick up wg0หรือผสานรวมเข้ากับ NetworkManager โดยการนำเข้าไฟล์ .conf จากอินเทอร์เฟซแบบกราฟิก นอกจากนี้ยังมีไคลเอ็นต์อย่างเป็นทางการสำหรับ macOS ซึ่งมีประสบการณ์การใช้งานที่คล้ายคลึงกับเวอร์ชัน Windows มาก

ในที่สุดก็มี ใช้โปรโตคอลและรูปแบบการกำหนดค่าเดียวกันในทุกแพลตฟอร์ม มันช่วยให้ชีวิตง่ายขึ้นมาก: คุณสามารถคัดลอกตรรกะจากไคลเอนต์หนึ่งไปยังอีกไคลเอนต์หนึ่งได้โดยการเปลี่ยนเฉพาะคีย์และ IP ของอุโมงค์เท่านั้น

Android VPN
บทความที่เกี่ยวข้อง:
VPN ที่ดีที่สุดสำหรับ Android: คู่มือฉบับสมบูรณ์พร้อมตัวเลือก ความเสี่ยง และเคล็ดลับต่างๆ สำหรับปี 2025 และต่อๆ ไป

ด้วยการผสมผสานสิ่งเหล่านี้—เซิร์ฟเวอร์ Linux หรือ Docker ที่ตั้งค่าอย่างดี, การรองรับ VPS หากคุณใช้ CGNAT, แผงควบคุมบนเว็บเพื่อลดความซับซ้อนในการจัดการ และแอป WireGuard บน Android—คุณสามารถตั้งค่าระบบได้ VPN สำหรับใช้งานในบ้านที่แข็งแกร่ง รวดเร็ว และปลอดภัย ซึ่งช่วยให้คุณเข้าถึงเครือข่ายภายในบ้าน ไฟล์ และบริการต่างๆ รวมถึงท่องเว็บได้อย่างปลอดภัยบน WiFi สาธารณะ โดยไม่ต้องพึ่งพาบุคคลที่สามหรือโซลูชันเชิงพาณิชย์ที่ไม่โปร่งใส โปรดแชร์ข้อมูลนี้เพื่อให้ผู้อื่นได้ทราบเกี่ยวกับฟีเจอร์ใหม่นี้.