OpenWrt + Starlink वातावरण में होम IPv6 एड्रेस के साथ WireGuard सर्वर
नमस्ते, मैं Munou हूँ।
पिछले लेख में, मैं अपने होम नेटवर्क के लिए एक सार्वजनिक IPv6 पता प्राप्त करने में सक्षम था, इसलिए मैं निम्नलिखित कार्य करूँगा:
सर्वर: OpenWrt + WireGuard Server
इंटरफ़ेस: wg1(10.2.0.0/24)
निकास IP के रूप में होम लाइन, बैंडविड्थ सीमा (जैसे VPS बैंडविड्थ सीमा) से मुक्त वातावरण।
क्लाइंट: स्मार्टफोन, नोटबुक पीसी
इसके अलावा, इस बार का उद्देश्य इस WireGuard सर्वर से ConoHa VPS पर होस्ट किए गए WireGuard सर्वर के इंटरफ़ेस wg0 (10.1.0.0/24) के साथ संचार सक्षम करना है।
wg1 इंटरफ़ेस का उपयोग करके हमेशा चालू रहने वाला VPN वातावरण बनाकर, आप बैंडविड्थ की चिंता किए बिना हमेशा आंतरिक नेटवर्क में भागीदारी सक्षम कर पाएंगे। हालांकि यह चिंता हो सकती है कि इस नेटवर्क सेगमेंट में शामिल होना अपने आप में एक भेद्यता हो सकती है, लेकिन यह इसे सार्वजनिक IP पर उजागर करने से थोड़ा बेहतर है, और वैसे भी, यदि कोई wg0 इंटरफ़ेस तक पहुँच जाता है, तो सब कुछ खत्म है।
इस सेटअप के साथ, आप OpenWrt की ओर Dnsmasq के साथ एक आंतरिक DNS सर्वर होस्ट कर पाएंगे और हर समय विज्ञापन ब्लॉक (ad-blocking) भी कर पाएंगे।
OpenWrt पर WireGuard
wireguard-tools इंस्टॉल करें।
root@OpenWrt:~# apk search wireguard
kmod-wireguard-6.12.74-r1
luci-proto-wireguard-26.120.35050~a611522
prometheus-node-exporter-ucode-wireguard-2024.02.07-r2
rpcd-mod-wireguard-2
wireguard-tools-1.0.20250521-r1
root@OpenWrt:~# apk add wireguard-tools-1.0.20250521-r1
साथ ही, मुझे लगता है कि luci-proto-wireguard-26.120.35050~a611522 जोड़ने से आप वेब UI (LuCI) से WireGuard कॉन्फ़िगर कर पाएंगे, लेकिन मैं इसे इंस्टॉल नहीं करूँगा।
सेटिंग
/etc/config/network
सर्वर-साइड इंटरफ़ेस को निम्नानुसार बनाएँ।
~~~
config interface 'wg1'
option proto 'wireguard'
option private_key 'wg1 server private key'
option listen_port '51820'
list addresses '10.2.0.1/24'
list addresses 'fd02::1/64'
option mtu '1420'
~~~
नीचे क्लाइंट-साइड सेटिंग्स जोड़ें जिन्हें अनुमति दी जानी है। मूल रूप से, PreSharedKey सेट करना और प्री-शेयर्ड कुंजी कॉन्फ़िगर करना बेहतर होता है, लेकिन अभी के लिए मैं इसे छोड़ रहा हूँ।
config wireguard_wg1
option public_key 'wg1 client public key'
list allowed_ips '10.2.0.2/32'
list allowed_ips 'fd02::2/128'
list allowed_ips 'client ipv6 addr ::2/128'
option persistent_keepalive '25'
option route_allowed_ips '1'
क्लाइंट साइड पर wg1.conf बनाएँ। सारा ट्रैफ़िक OpenWrt राउटर के माध्यम से जाएगा।
[Interface]
PrivateKey = "wg1 client public key "
Address = 10.2.0.2/24, fd02::2/64, client ipv6 addr::2/64
DNS = 10.2.0.1 # Dnsmasq के साथ पहले से ही DNS सर्वर सेट है
[Peer]
PublicKey = "wg1 server public key"
Endpoint = "wg1 ipv6 addr :51820"
AllowedIPs = 0.0.0.0/0, ::/0
PersistentKeepalive = 25
यदि इसे ऐसे ही छोड़ दिया गया, तो इसे फ़ायरवॉल द्वारा ब्लॉक कर दिया जाएगा, इसलिए wg ज़ोन बनाएँ, wan साइड IPv6 पर पोर्ट 51820/udp खोलें, होम वातावरण के रूप में LAN की अनुमति दें, और सुनिश्चित करें कि wg, wan के माध्यम से बाहर जा सके।
मूल रूप से, IPv6 के लिए NAT की आवश्यकता नहीं है, इसलिए मैं इसे स्पष्ट रूप से बंद कर दूँगा।
/etc/config/firewall
config zone
option name 'wg'
list network 'wg1'
list network 'wg0'
option input 'ACCEPT'
option forward 'ACCEPT'
option output 'ACCEPT'
option masq '1'
option masq6 '0'
config rule
option name 'Allow-WireGuard-IPv6'
option src 'wan'
option family 'ipv6'
option proto 'udp'
option dest_port '51820'
option target 'ACCEPT'
config forwarding
option src 'wg'
option dest 'lan'
config forwarding
option src 'wg'
option dest 'wan'
इस स्थिति में, wg0 के साथ संचार संभव नहीं है, इसलिए अतिरिक्त सेटिंग्स जोड़ें।
मान लें कि wg0 सर्वर-साइड सेटिंग्स भी निम्नलिखित के अनुसार जोड़ी गई हैं (मैं उन्हें यहाँ छोड़ रहा हूँ)।
/etc/config/network
config route
option interface 'wg0'
option target '10.1.0.0/24'
config interface 'wg0'
option proto 'wireguard'
option private_key 'wg0 client private key'
list addresses '10.1.0.99/24'
config wireguard_wg0
option public_key 'wg0 server public key'
option endpoint_host 'wg0 server addr'
option endpoint_port '51820'
list allowed_ips '10.1.0.0/24'
list allowed_ips '10.2.0.0/24'
option persistent_keepalive '25'
इसके साथ, कॉन्फ़िगरेशन मूल रूप से पूरा हो गया है, लेकिन dnsmasq के लिए निम्नलिखित है:
मेरे वातावरण में, यह पहले से ही शामिल था, इसलिए बस इसे सक्षम करें।
/etc/init.d/dnsmasq enable/etc/init.d/dnsmasq start
इसके बाद, /etc/dnsmasq.d/adblock.conf की तरह सूची डालें और ब्लॉक करें।
/etc/init.d/dnsmasq restart
यहाँ तक पहुँचने के बाद, आपको बस पुनः लोड करना है।
/etc/init.d/network restart
/etc/init.d/firewall restart
यह डुअल-स्टैक वातावरण को पूरा करता है जो IPv4 (जो कि CGNAT IP है) और IPv6 दोनों के साथ काम करता है।
OpenWrt वातावरण से स्पीड टेस्ट
नीचे बिना वायरगार्ड (WireGuard) कनेक्शन वाला वायर्ड वातावरण है
$ speedtest-go -s 48463
speedtest-go v1.7.10 (git-dev) @showwin
✓ ISP: 206.83.125.125 (Starlink) [35.6893, 139.6899]
✓ Found 1 Specified Public Server(s)
✓ Test Server: [48463] 5.80km Tokyo by IPA CyberLab 400G
✓ Latency: 41.037747ms Jitter: 8.459256ms Min: 24.163074ms Max: 57.008632ms
✓ Packet Loss Analyzer: Running in background (<= 30 Secs)
✓ Download: 173.63 Mbps (Used: 211.22MB) (Latency: 35ms Jitter: 6ms Min: 25ms Max: 41ms)
✓ Upload: 45.99 Mbps (Used: 81.23MB) (Latency: 35ms Jitter: 29ms Min: 23ms Max: 136ms)
✓ Packet Loss: N/A
नीचे 5GHz बैंड वाई-फाई वातावरण में wg1 VPN वातावरण से है
$ speedtest-go -s 48463
speedtest-go v1.7.10 (git-dev) @showwin
✓ ISP: 206.83.125.125 (Starlink) [35.6893, 139.6899]
✓ Found 1 Specified Public Server(s)
✓ Test Server: [48463] 5.80km Tokyo by IPA CyberLab 400G
✓ Latency: 28.199611ms Jitter: 1.516613ms Min: 26.461289ms Max: 31.90411ms
✓ Packet Loss Analyzer: Running in background (<= 30 Secs)
✓ Download: 79.63 Mbps (Used: 114.99MB) (Latency: 98ms Jitter: 39ms Min: 27ms Max: 151ms)
✓ Upload: 65.86 Mbps (Used: 96.92MB) (Latency: 62ms Jitter: 73ms Min: 26ms Max: 285ms)
✓ Packet Loss: N/A
अब आप बाहर से भी स्मार्टफोन के माध्यम से इस wg1 VPN वातावरण तक पहुँच सकते हैं।