रिमोट Wake-on-LAN सर्वर इंस्टॉलेशन (Docker + Python)
यह गाइड बताती है कि Turn Off PC द्वारा उपयोग किए जाने वाले रिमोट Wake-on-LAN (WOL) सर्वर को कैसे इंस्टॉल और चलाएं।
यह सर्वर VPN और लोकल नेटवर्क के बीच एक ब्रिज के रूप में कार्य करता है, जो होम नेटवर्क के बाहर के डिवाइस को Wake-on-LAN का उपयोग करके कंप्यूटर जगाने की अनुमति देता है।
सर्विस Docker कंटेनर के अंदर चलने वाले Python HTTP सर्वर के रूप में कार्यान्वित है।
यह सर्वर क्या करता है
WOL सर्वर:
- एक Linux सिस्टम पर लगातार चलता है (अनुशंसित: Raspberry Pi)
- पोर्ट 5000 पर HTTP अनुरोधों को सुनता है
- HTTP POST के माध्यम से एक MAC एड्रेस प्राप्त करता है
- लोकल नेटवर्क के अंदर एक Wake-on-LAN मैजिक पैकेट भेजता है
- VPN (जैसे Tailscale) के साथ उपयोग करने पर रिमोट Wake-on-LAN सक्षम करता है
पूर्वापेक्षाएं
रिमोट Wake-on-LAN सर्वर इंस्टॉल करने से पहले, सुनिश्चित करें कि होस्ट डिवाइस पर निम्नलिखित घटक पहले से इंस्टॉल और काम कर रहे हैं:
-
Raspberry Pi OS (या कोई अन्य समर्थित Linux डिस्ट्रिब्यूशन) → Raspberry Pi OS इंस्टॉलेशन
-
Docker (WOL सर्वर कंटेनर चलाने के लिए आवश्यक) → Linux पर Docker इंस्टॉलेशन
-
Tailscale (VPN के माध्यम से रिमोट एक्सेस के लिए आवश्यक) → Tailscale इंस्टॉलेशन
होस्ट डिवाइस को:
- हर समय चालू रहना चाहिए
- लोकल नेटवर्क से कनेक्ट होना चाहिए
- VPN (Tailscale) से कनेक्ट होना चाहिए
परिणामी प्रोजेक्ट संरचना
इस गाइड को पूरा करने के बाद, डायरेक्टरी संरचना होगी:
wol-server/
├── Dockerfile
├── docker-compose.yml
├── requirements.txt
└── wol_server.py
चरण 1: प्रोजेक्ट डायरेक्टरी बनाएं
WOL सर्वर होस्ट करने के लिए एक डायरेक्टरी बनाएं और उसमें प्रवेश करें:
mkdir -p ~/wol-server
cd ~/wol-server
चरण 2: Python सर्वर स्क्रिप्ट बनाएं
मुख्य Python स्क्रिप्ट बनाएं:
nano wol_server.py
निम्नलिखित कोड पेस्ट करें:
from flask import Flask, request
import os
app = Flask(__name__)
@app.route("/wake", methods=["POST"])
def wake():
data = request.get_json()
mac = data.get("mac")
if not mac:
return "No MAC address provided", 400
os.system(f"wakeonlan {mac}")
return f"Magic packet sent to {mac}", 200
if __name__ == "__main__":
app.run(host="0.0.0.0", port=5000)
सेव करें और बाहर निकलें: Ctrl + O → Enter Ctrl + X
चरण 3: Python निर्भरता फ़ाइल बनाएं
requirements.txt फ़ाइल बनाएं:
nano requirements.txt
आवश्यक निर्भरता जोड़ें:
Flask==2.3.3
सेव करें और बाहर निकलें: Ctrl + O → Enter Ctrl + X
चरण 4: Dockerfile बनाएं
Dockerfile बनाएं:
nano Dockerfile
निम्नलिखित सामग्री पेस्ट करें:
FROM python:3.11-slim
RUN apt-get update && \
apt-get install -y wakeonlan && \
rm -rf /var/lib/apt/lists/*
WORKDIR /app
COPY requirements.txt .
COPY wol_server.py .
RUN pip install --no-cache-dir -r requirements.txt
EXPOSE 5000
CMD ["python3", "wol_server.py"]
सेव करें और बाहर निकलें: Ctrl + O → Enter Ctrl + X
चरण 5: Docker Compose फ़ाइल बनाएं
Docker Compose का उपयोग करने से प्रबंधन सरल होता है और कंटेनर स्वचालित रूप से रीस्टार्ट सुनिश्चित होता है।
फ़ाइल बनाएं:
nano docker-compose.yml
निम्नलिखित कॉन्फ़िगरेशन पेस्ट करें:
version: "3"
services:
wol-server:
build: .
network_mode: "host" # होस्ट नेटवर्क का उपयोग करता है (ब्रॉडकास्ट के लिए आवश्यक)
cap_add:
- NET_ADMIN # ब्रॉडकास्ट पैकेट भेजने की अनुमति देता है
restart: unless-stopped
सेव करें और बाहर निकलें: Ctrl + O → Enter Ctrl + X
network_mode: host क्यों आवश्यक है Wake-on-LAN ब्रॉडकास्ट पैकेट का उपयोग करता है।
Docker का डिफ़ॉल्ट ब्रिज नेटवर्किंग ब्रॉडकास्ट पैकेट सही ढंग से नहीं भेज सकता। होस्ट नेटवर्किंग का उपयोग करने से कंटेनर को अनुमति मिलती है:
भौतिक नेटवर्क तक सीधे पहुंचना
लोकल LAN पर WOL पैकेट भेजना
एक नेटिव सर्विस की तरह व्यवहार करना
चरण 6: कंटेनर बिल्ड और शुरू करें
wol-server डायरेक्टरी के अंदर से चलाएं:
docker compose up -d
Docker ये करेगा:
इमेज बिल्ड करेगा
निर्भरताएं इंस्टॉल करेगा
बैकग्राउंड में सर्वर शुरू करेगा
चरण 7: सत्यापित करें कि सर्वर चल रहा है
चल रहे कंटेनर जांचें:
docker ps
आपको इसके समान आउटपुट दिखना चाहिए:
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
4XXXXXX31ba4 wol-server-wol-server "python3 wol_server.py" 4 minutes ago Up 4 minutes wol-server-wol-server-1
यदि कंटेनर चल रहा है, तो सर्वर सक्रिय है।
सर्वर कैसे उपयोग किया जाता है सर्वर इस पर सुनता है:
http://<SERVER_IP>:5000/wake यह JSON डेटा के साथ एक HTTP POST अनुरोध की अपेक्षा करता है:
{
"mac": "AA:BB:CC:DD:EE:FF"
}
चरण 8: Turn Off PC (मोबाइल ऐप) में रिमोट WOL सक्षम करें
अपने फ़ोन पर Turn Off PC खोलें
अपने डिवाइस को संपादित करने के लिए जाएं
रिमोट WOL सक्षम करें
एक्सटर्नल सर्वर IP में Raspberry Pi का IP दर्ज करें
कॉन्फ़िगरेशन सेव करें
बस इतना ही। रिमोट Wake-on-LAN अब सक्षम है।