Docker मध्ये wg-easy वापरून WireGuard कसे सेट करावे
Docker Compose द्वारे wg-easy सेटअप करण्याची संपूर्ण माहिती. NET_ADMIN आणि sysctls सेटिंग्जसह QR कोडद्वारे फोनवर VPN कनेक्ट करण्याची सोपी पद्धत या मार्गदर्शिकेत दिली आहे.
तुम्ही काय तयार करत आहात
wg-easy हे एक Docker कंटेनर म्हणून चालणारे, वेब इंटरफेस असलेले WireGuard आहे. हे तुमच्यासाठी WireGuard इंटरफेस व्यवस्थापित करते आणि क्लायंट तयार करण्यासाठी ब्राउझर UI उपलब्ध करून देते. तुम्ही तयार केलेल्या प्रत्येक क्लायंटला एक कॉन्फिगरेशन फाईल आणि QR कोड मिळतो, त्यामुळे फोनचा कॅमेरा स्क्रीनवर धरून तो VPN शी जोडला जाऊ शकतो.
टनेल स्वतः एक सामान्य WireGuard टनेल असते. कर्नल मॉड्यूल पॅकेट्सची ने-आण करते, त्यामुळे थ्रूपुट (throughput) हाताने केलेल्या सेटअपप्रमाणेच मिळते. तुम्हाला मिळणारा फायदा म्हणजे क्लायंटचे जीवनचक्र: SSH द्वारे कॉन्फिगरेशन फाईल एडिट न करता पीअर्स (peers) जोडणे, बंद करणे आणि हटवणे. तुम्ही ज्या गोष्टीवरचे नियंत्रण गमावता ते म्हणजे त्या कॉन्फिगरेशनचे थेट नियंत्रण, ज्यावर VPS वरील मॅन्युअल WireGuard सेटअप मध्ये चर्चा केली आहे.
तुम्हाला सार्वजनिक IPv4 ॲड्रेस असलेला KVM VPS, Docker Engine सोबत Compose प्लगइन आणि root ॲक्सेसची आवश्यकता आहे. OpenVZ किंवा LXC सारखे कंटेनर व्हर्च्युअलायझेशन, जे होस्ट कर्नल शेअर करतात, ते सहसा WireGuard मॉड्यूल लोड करू शकत नाहीत आणि अशा वेळी इंटरफेस सुरू करण्यात कंटेनर अपयशी ठरतो.
आवृत्ती 15 मध्ये सेटिंग्ज environment मधून हलवण्यात आल्या आहेत
तुम्हाला मिळणारी बहुतेक मार्गदर्शिका wg-easy 14 साठी लिहिलेली आहे, जिथे तुम्ही WG_HOST ला तुमच्या सर्व्हरचा पत्ता आणि PASSWORD_HASH ला ॲडमिन पासवर्डचा bcrypt हॅश, हे दोन्ही environment variables म्हणून सेट करत होतात. आवृत्ती 15 हे पूर्णपणे पुनर्लिखित (rewrite) केलेले व्हर्जन आहे. अधिकृत मायग्रेशन नोट्समध्ये स्पष्टपणे नमूद केले आहे की v15 मध्ये v14 सारखे environment variables वापरले जात नाहीत आणि त्यातील बहुतेक सेटिंग्ज आता वेब UI मधील ॲडमिन पॅनेलमध्ये हलवण्यात आल्या आहेत.
त्यामुळे, WG_HOST आणि PASSWORD_HASH आता कोणतेही काम करत नाहीत. जर तुम्ही जुनी compose फाईल कॉपी केली, तर कंटेनर सुरू होतो, त्या ओळींकडे दुर्लक्ष करतो आणि त्यानंतर तुम्हाला ब्राउझरमध्ये ॲडमिन खाते तयार करण्यास सांगतो. हा कोणताही बग नाही. ही नवीन सेटअप प्रक्रिया आहे.
ऑक्टोबर 2026 पर्यंत, पिन करण्यासाठी मुख्य टॅग 15 हा आहे. latest वापरण्याऐवजी मुख्य आवृत्ती (major version) पिन करा, कारण मेजर अपग्रेडमुळे डिस्कवरील कॉन्फिगरेशन फॉरमॅट बदलतो आणि तो सहजपणे रोल बॅक करता येत नाही. 15 व्या आवृत्तीकडे स्थलांतर करताना v14 ची JSON फाईल काढून त्याऐवजी SQLite डेटाबेस वापरण्यात आला आहे.
compose फाईल
या स्टॅकसाठी एक डिरेक्टरी तयार करा आणि त्यामध्ये अधिकृत compose फाईल लिहा. ही अपस्ट्रीम फाईल आहे, ज्यातून पर्यायी ओळी (commented-out lines) काढून टाकल्या आहेत.
sudo mkdir -p /etc/docker/containers/wg-easy
sudo curl -o /etc/docker/containers/wg-easy/docker-compose.yml \
https://raw.githubusercontent.com/wg-easy/wg-easy/master/docker-compose.ymlयाची सामग्री खालीलप्रमाणे आहे:
volumes:
etc_wireguard:
services:
wg-easy:
image: ghcr.io/wg-easy/wg-easy:15
container_name: wg-easy
networks:
wg:
ipv4_address: 10.42.42.42
ipv6_address: fdcc:ad94:bacf:61a3::2a
volumes:
- etc_wireguard:/etc/wireguard
- /lib/modules:/lib/modules:ro
ports:
- "51820:51820/udp"
- "51821:51821/tcp"
restart: unless-stopped
cap_add:
- NET_ADMIN
- SYS_MODULE
sysctls:
- net.ipv4.ip_forward=1
- net.ipv4.conf.all.src_valid_mark=1
- net.ipv6.conf.all.disable_ipv6=0
- net.ipv6.conf.all.forwarding=1
- net.ipv6.conf.default.forwarding=1
networks:
wg:
driver: bridge
enable_ipv6: true
ipam:
driver: default
config:
- subnet: 10.42.42.0/24
- subnet: fdcc:ad94:bacf:61a3::/64etc_wireguard हे एक named volume आहे, ज्यामध्ये सर्व्हर की आणि तुम्ही तयार केलेले प्रत्येक क्लायंट साठवले जातात. हे सर्व wg-easy.db या SQLite डेटाबेसमध्ये असते. या व्हॉल्यूमचा बॅकअप घ्या, अन्यथा रीबिल्ड केल्यास तुमचे सर्व पीअर्स (peers) नष्ट होतील. जर तुम्हाला या फाईल्स होस्ट फाईलसिस्टमवर पाहायच्या असतील, तर त्याऐवजी bind mount वापरा. मात्र, असे करण्यापूर्वी bind mounts आणि named volumes मधील फरक वाचा, कारण त्यांच्या परवानग्या (permissions) वेगवेगळ्या प्रकारे काम करतात.
NET_ADMIN, SYS_MODULE आणि sysctls ची आवश्यकता का आहे
डीफॉल्टनुसार कंटेनरला नेटवर्क स्टॅक हाताळण्याची परवानगी नसते आणि यातील प्रत्येक ओळ एक विशिष्ट निर्बंध काढून टाकते.
NET_ADMIN मुळे कंटेनरला wg0 इंटरफेस तयार करण्याची, त्याला पत्ता देण्याची आणि राउट्स लिहिण्याची परवानगी मिळते. याशिवाय कंटेनर सुरू होतो आणि इंटरफेस अप करतानाच बंद पडतो, कारण ip link add wg0 type wireguard हे Operation not permitted रिटर्न करते.
SYS_MODULE आणि त्यासोबतचा read-only /lib/modules माउंट कंटेनरला WireGuard कर्नल मॉड्यूल लोड करण्याची परवानगी देतो, जर ते होस्टवर आधीच लोड केलेले नसेल तर. हे मॉड्यूल होस्ट कर्नलवर असते, इमेजमध्ये नसते, म्हणूनच होस्ट डिरेक्टरी दृश्यमान असणे आवश्यक आहे. आधुनिक कर्नलमध्ये हे मॉड्यूल सहसा इन-बिल्ट असते आणि तुम्ही होस्टवर sudo modprobe wireguard && echo ok वापरून याची खात्री करू शकता.
net.ipv4.ip_forward=1 मुळे कर्नल अशा पॅकेट्सना फॉरवर्ड करते जे स्वतः त्या बॉक्ससाठी नसतात. याशिवाय क्लायंट कनेक्ट होतो, हँडशेक यशस्वी होतो, परंतु इंटरनेटवर जाणारे प्रत्येक पॅकेट ड्रॉप केले जाते, त्यामुळे ping 1.1.1.1 टाइम आउट होतो आणि VPN कनेक्ट असल्यासारखे वाटते.
net.ipv4.conf.all.src_valid_mark=1 ही गोष्ट लोकांना आश्चर्यचकित करते. WireGuard स्वतःच्या आउटगोइंग पॅकेट्सना मार्क करते जेणेकरून ते पुन्हा टनेलमध्ये राउट होऊ नयेत. Strict reverse path filtering अशा पॅकेटला पाहते ज्याचा सोर्स पत्ता अपेक्षित राउटशी जुळत नाही आणि त्याला ड्रॉप करते. हे sysctl कर्नलला मार्क केलेले पॅकेट्स स्वीकारण्यास सांगते, ज्यामुळे पूर्ण टनेल स्वतःला खंडित करण्यापासून वाचते.
सर्व्हिस सुरू करा आणि ॲडमिन खाते तयार करा
cd /etc/docker/containers/wg-easy
sudo docker compose up -d
sudo docker compose logs -fdocker compose up आणि docker compose down वापरा, start आणि stop वापरू नका. start फक्त अस्तित्वात असलेले कंटेनर रीस्टार्ट करते, त्यामुळे नेटवर्क आणि sysctl सेटिंग्जसह तुम्ही compose फाईलमध्ये केलेले कोणतेही बदल लागू होत नाहीत, तर up बदललेली प्रत्येक गोष्ट पुन्हा तयार करते. रीबूटनंतर तुम्हाला स्टॅक पुन्हा हवा असल्यास, restart: unless-stopped हे आधीच कव्हर करते आणि compose सर्व्हिसेसचे बूट वर्तन ही पॉलिसी काय करते आणि काय करत नाही हे स्पष्ट करते.
वेब UI TCP 51821 वर लिसन करते. पहिल्या भेटीवर ते एक सेटअप पेज दाखवते जिथे तुम्ही ॲडमिन खाते तयार करता आणि क्लायंट सर्व्हरपर्यंत पोहोचण्यासाठी वापरतील तो होस्ट पत्ता कन्फर्म करता. तो होस्ट पत्ता प्रत्येक क्लायंट कॉन्फिगरेशनच्या Endpoint ओळीमध्ये जातो, त्यामुळे तो सार्वजनिक IP किंवा VPS चे DNS नाव असणे आवश्यक आहे. जर तो चुकीचा असेल, तर तुम्ही फोनला दिलेला QR कोड अशा ठिकाणी निर्देशित करतो जिथे पोहोचता येत नाही आणि हँडशेक कधीही पूर्ण होत नाही.
त्या पोर्टबद्दल आणखी एक गोष्ट: जर तुम्ही INSECURE=true सेट केले नसेल, तर wg-easy 15 साधे HTTP नाकारते. अनट्रस्टेड प्रमाणपत्रासह HTTPS द्वारे तिथे पोहोचणे किंवा त्याच्या समोर रिव्हर्स प्रॉक्सीवर TLS टर्मिनेट करणे, या दोन्ही गोष्टी योग्य आहेत. डीफॉल्ट सेटिंग्जसह http:// द्वारे तिथे पोहोचणे योग्य नाही.
UI पोर्ट इंटरनेटवर पब्लिश करू नका
तुमची compose फाईल 51821 पोर्ट प्रत्येक इंटरफेसवर पब्लिश करते. हे एका अशा सिस्टिमचे लॉगिन पेज आहे जे तुमचे ट्रॅफिक राउट करू शकते, त्यामुळे ते जगासाठी खुले नसावे. Docker मध्ये पोर्ट पब्लिश केल्यामुळे DOCKER चेनमध्ये नियम लिहिले जातात, जे ufw च्या आधी तपासले जातात. त्यामुळे ufw चा deny नियम हे पोर्ट बंद करू शकत नाही. ही एक महत्त्वाची बाब आहे आणि Docker पब्लिश केलेले पोर्ट ufw ला का दुर्लक्षित करतात या लेखात ती सविस्तर स्पष्ट केली आहे.
यावर सोपा उपाय म्हणजे UI ला loopback वर बाइंड करणे आणि SSH टनेलद्वारे ते ॲक्सेस करणे:
ports:
- "51820:51820/udp"
- "127.0.0.1:51821:51821/tcp"
environment:
- INSECURE=trueत्यानंतर तुमच्या लॅपटॉपवरून:
ssh -L 51821:127.0.0.1:51821 youruser@your.server.addressतुमच्या लॅपटॉपवरील ब्राउझरमध्ये http://127.0.0.1:51821 उघडा. ट्रॅफिक SSH द्वारे एनक्रिप्ट केलेले असते, पोर्ट इतर कोणालाही प्रतिसाद देत नाही आणि INSECURE=true येथे सुरक्षित राहते कारण प्लेन HTTP हॉप कधीही loopback इंटरफेसच्या बाहेर जात नाही.
UDP 51820 उघडा आणि दोन्ही फायरवॉल तपासा
WireGuard साठी इंटरनेटवरून UDP 51820 पोर्ट उपलब्ध असणे आवश्यक आहे. Docker हे पोर्ट पब्लिश करते, परंतु अनेक प्रोव्हाइडर्स VPS च्या समोर एक स्वतंत्र नेटवर्क फायरवॉल ठेवतात ज्याची Docker ला माहिती नसते. त्यामुळे दोन्ही ठिकाणी पोर्ट उघडा. जर तुम्ही host फायरवॉल व्यवस्थापित करण्यासाठी ufw वापरत असाल, तर VPS साठी मूलभूत ufw नियम वापरणे हे nftables स्वतः लिहिण्यापेक्षा सोपे पडेल.
कंटेनर प्रत्यक्षात लिसनिंग मोडमध्ये आहे का ते तपासा:
sudo ss -ulnp | grep 51820तुम्हाला एक लिसनिंग UDP सॉकेट दिसेल. त्या ओळीवर काहीही दिसत नसेल, तर याचा अर्थ असा की कंटेनरने इंटरफेस सुरू केलेला नाही आणि sudo docker compose logs wg-easy मध्ये त्याचे कारण नमूद केलेले असेल.
क्लायंट तयार करा आणि फोनवर स्कॅन करा
UI मध्ये, एक क्लायंट तयार करा आणि त्याला नंतर ओळखता येईल असे नाव द्या, जसे की तो ज्या उपकरणाचा आहे त्याचे नाव. wg-easy पुढील मोफत टनेल ॲड्रेस वाटप करते आणि तुमच्यासाठी की-पेअर (key pair) तयार करते. प्रत्येक क्लायंटच्या ओळीत एक QR कोड आणि डाउनलोड करण्यायोग्य .conf फाईल उपलब्ध असते.
फोनवर अधिकृत WireGuard ॲप इंस्टॉल करा, QR कोडवरून टनेल जोडण्याचा पर्याय निवडा आणि तुमचा कॅमेरा स्क्रीनवरील कोडकडे वळवा. तुम्ही टाइप केलेले नाव असलेला टनेल तिथे दिसेल. तो सुरू करा, त्यानंतर UI मधील क्लायंटच्या ओळीत ट्रान्सफर काउंटर्स आणि अलीकडील हँडशेकची वेळ दिसू लागेल. एकदा फोन टनेलवर आला की, तो तुम्ही इंटरनेटवर पब्लिश न केलेल्या सेवांपर्यंत पोहोचू शकतो. अशा प्रकारे, एखादा फोन कोणत्याही ठिकाणाहून सेल्फ-होस्टेड फोटो सर्व्हरवर फोटो अपलोड करू शकतो, आणि त्या सर्व्हरचे एकही पोर्ट जगासाठी उघडे ठेवण्याची गरज पडत नाही. हीच युक्ती मीडियासाठीही वापरता येते, आणि 90 च्या दशकातील व्हिडिओ स्टोअरसारखी Jellyfin लायब्ररी हॉटेलच्या खोलीतून ब्राउझ करणे सोयीचे ठरते, कारण ती तुमच्या LAN प्रमाणेच खाजगी राहते. याच टनेलवर अलर्ट्स उलट दिशेने काम करतात, कारण सेल्फ-होस्टेड ntfy सर्व्हर बॅकअप जॉब अयशस्वी होताच फोनवर मेसेज पाठवू शकतो, आणि त्यासाठी त्याला सार्वजनिक इंटरनेटवरून आलेल्या कोणत्याही विनंतीला उत्तर देण्याची गरज नसते.
जर क्लायंट सुरू केल्यानंतरही हँडशेक दिसत नसेल, तर तो सर्व्हरपर्यंत पोहोचत नाहीये. हे UDP 51820 पोर्टमधील समस्येकडे निर्देश करते, जे एकतर प्रोव्हायडरच्या फायरवॉलमध्ये किंवा कॉन्फिगरेशनमध्ये नमूद केलेल्या एंडपॉईंट ॲड्रेसमध्ये असू शकते. जर क्लायंट हँडशेक दाखवत असेल पण इंटरनेट चालत नसेल, तर ती समस्या फॉरवर्डिंग किंवा DNS शी संबंधित असते.
डेस्कटॉपवर, .conf फाईल डाउनलोड करा आणि ती पुन्हा टाइप करण्याऐवजी WireGuard क्लायंटमध्ये इम्पोर्ट करा. त्या फाईलमधील प्रायव्हेट की एकदाच तयार केली जाते आणि एकदाच दाखवली जाते. या फाईलला तुम्ही SSH प्रायव्हेट की हाताळता तशीच सुरक्षित ठेवा.
UI च्या पलीकडे कधी जावे
जेव्हा तुमचे पीअर्स (peers) हे केवळ व्यक्ती आणि त्यांचे फोन असतात, तेव्हा wg-easy हे योग्य साधन ठरते. कॉन्फिगरेशन फाइल्स एडिट करण्यापेक्षा UI वापरणे जलद असते आणि हरवलेला फोन एका क्लिकवर रिमूक (revoke) करता येतो.
जेव्हा तुम्हाला अशा गोष्टींची गरज भासते ज्या UI मध्ये उपलब्ध नाहीत, तेव्हा तुम्ही त्याच्या मर्यादांपर्यंत पोहोचता. साईट-टू-साईट राउटिंग, जिथे पीअरचा AllowedIPs एका पत्त्याऐवजी संपूर्ण रिमोट सबनेट कव्हर करतो, ही सहसा पहिली अडचण असते. त्यानंतर प्रति-पीअर राउटिंग नियमांसह स्प्लिट टनेल्स किंवा तुमच्या प्रोव्हिजनिंग टूलद्वारे तयार केलेले कॉन्फिगरेशन येते. त्या टप्प्यावर हाताने केलेले सेटअप कठीण नसते, ते फक्त वेगळे असते आणि the plain WireGuard guide मध्ये wg0.conf वापरून तयार केलेला तोच टनेल दाखवला आहे. जर तुम्हाला कंट्रोल प्लेन चालवणे पूर्णपणे थांबवायचे असेल, तर WireGuard compared with Tailscale मध्ये मॅनेज्ड पर्यायाची माहिती दिली आहे. हा व्यवहार फायदेशीर आहे की नाही हे कोऑर्डिनेशन सर्व्हर नक्की काय ॲक्सेस करू शकतो यावर अवलंबून असते, आणि नेटवर्क सोपवण्यापूर्वी Tailscale's trust model वाचणे गरजेचे आहे. खर्च हा सहसा पुढचा प्रश्न असतो, आणि what the Tailscale free plan actually covers हे घरगुती वापरासाठी किंवा लहान टीमसाठी पुरेसे असते. त्यानंतरचे बिलिंग उपकरणांऐवजी वापरकर्त्यांच्या संख्येवर आधारित असते, जे तुम्ही आधीच वापरत असलेल्या VPS च्या बिलापेक्षा वेगळ्या स्वरूपाचे असते. त्यामुळे टीम स्थलांतरित करण्यापूर्वी what Tailscale costs once you outgrow the free plan ही रक्कम तपासा. तुम्ही तयार केलेल्या फुल टनेलला तिथे थेट पर्याय उपलब्ध आहे, कारण advertising the VPS as a Tailscale exit node केल्यास तुम्हाला सर्व्हरद्वारे तोच मार्ग मिळतो, जो प्रत्येक क्लायंट कॉन्फिगरेशनमध्ये लिहिण्याऐवजी ॲडमिन कन्सोलमधून मंजूर केला जातो. सबनेटच्या मर्यादेवरही उपाय आहे, कारण advertising a whole private network from the VPS केल्यामुळे ते नेटवर्क टेलनेटमधील (tailnet) प्रत्येक उपकरणाला उपलब्ध होते, ज्यासाठी तुम्हाला UI सोडून प्रति-पीअर AllowedIPs एडिट करण्याची गरज पडत नाही. जर तुम्हाला डॅशबोर्ड आणि ऑटोमॅटिक मेश राउटिंग हवे असेल पण दुसऱ्याचा कोऑर्डिनेशन सर्व्हर नको असेल, तर running your own NetBird server on a VPS केल्याने कंट्रोल प्लेन तुमच्या मालकीच्या हार्डवेअरवर राहते, मात्र त्यासाठी तुम्हाला DNS आणि TLS सेटअप करावा लागतो, जो wg-easy मध्ये कधीच करावा लागला नव्हता.
जर वरील compose सिंटॅक्स हा WireGuard पेक्षा जास्त अपरिचित वाटत असेल, तर Docker Compose basics on a VPS मध्ये फाइल फॉरमॅट आणि दैनंदिन कमांड्स स्पष्ट केल्या आहेत.
FAQ
wg-easy माझे WG_HOST आणि PASSWORD_HASH का दुर्लक्षित करत आहे?
हे व्हेरिएबल्स wg-easy 14 शी संबंधित आहेत. आवृत्ती 15 मध्ये पूर्णपणे बदल करण्यात आला असून, डेव्हलपर्सनी जवळजवळ सर्व कॉन्फिगरेशन वेब UI मधील ॲडमिन पॅनेलमध्ये हलवले आहे. कंटेनर हे व्हेरिएबल्स वाचत नाही, त्यामुळे तो नेहमीप्रमाणे सुरू होतो आणि पहिल्या भेटीवर तुम्हाला ॲडमिन खाते तयार करण्यास सांगतो. क्लायंटसाठीचा होस्ट पत्ता त्या सेटअप पेजवर सेट करा.
माझ्या कर्नलमध्ये आधीच WireGuard असल्यास मला SYS_MODULE ची गरज आहे का?
नाही. SYS_MODULE आणि /lib/modules माउंट यासाठी असतात की जर होस्टवर मॉड्यूल नसेल तर कंटेनर ते लोड करू शकेल. ज्या होस्टवर sudo modprobe wireguard आधीच यशस्वी होतो, तिथे या क्षमतेची (capability) गरज नसते. ती काढून टाकणे हे सुरक्षेच्या दृष्टीने एक चांगले पाऊल आहे, आणि NET_ADMIN दोन्ही परिस्थितीत आवश्यक आहे.
क्लायंट कनेक्ट होतो पण इंटरनेट चालत नाही. काय चूक आहे?
हँडशेक होऊनही ट्रॅफिक न जाणे याचा अर्थ बहुतेक वेळा फॉरवर्डिंगमध्ये समस्या असणे असा होतो. तुमच्या compose फाईलमध्ये net.ipv4.ip_forward=1 आणि net.ipv4.conf.all.src_valid_mark=1 आहेत याची खात्री करा, कारण फाईल मॅन्युअली एडिट करताना अनेकदा हे पर्याय निघून जातात. जर फॉरवर्डिंग सुरू असेल, तर क्लायंटला मिळालेला DNS सर्व्हर तपासा. जर टनेल सर्व ट्रॅफिक VPN द्वारे पाठवत असेल पण अशा DNS सर्व्हरकडे निर्देश करत असेल जो आता पोहोचण्यायोग्य नाही, तर ब्राउझरमध्ये कनेक्शन बंद असल्यासारखे वाटते.
मी माझ्या क्लायंटचा बॅकअप कसा घेऊ?
सर्व डेटा etc_wireguard या नेमड व्हॉल्यूममध्ये असतो. आवृत्ती 15 मध्ये, याचा अर्थ कंटेनरच्या आत /etc/wireguard/wg-easy.db येथे असलेली SQLite डेटाबेस फाईल असा होतो. v15 च्या डॉक्युमेंटेशनमध्ये बॅकअप किंवा एक्सपोर्टचे कोणतेही फिचर दिलेले नाही, त्यामुळे व्हॉल्यूमचाच बॅकअप घ्या: docker compose down रन करा, व्हॉल्यूममधील मजकूर सर्व्हरच्या बाहेर कुठेतरी कॉपी करा आणि त्यानंतर docker compose up -d वापरून स्टॅक पुन्हा सुरू करा. हे काम कोणत्याही अपग्रेडपूर्वी करा. जुन्या गाईड्समध्ये उल्लेख केलेली wg0.json फाईल wg-easy 14 शी संबंधित आहे. ती v14 मधील बॅकअप बटणाद्वारे एक्सपोर्ट होते आणि v15 मध्ये तिचा एकमेव उपयोग म्हणजे जुन्या इन्स्टॉलचे मायग्रेशन करताना सेटअप विझार्डमध्ये अपलोड करणे.
मी wg-easy ला रिव्हर्स प्रॉक्सीच्या मागे चालवू शकतो का?
हो. प्रॉक्सीला TCP 51821 च्या समोर ठेवा, तिथे TLS टर्मिनेट करा आणि कंटेनरवर INSECURE=true सेट करा जेणेकरून तो प्रॉक्सीकडून येणारे प्लेन HTTP ट्रॅफिक स्वीकारेल. UDP 51820 थेट पब्लिश ठेवा, कारण VPN ट्रॅफिक हे UDP असते आणि ते HTTP प्रॉक्सीमधून जात नाही.