रिमोट Wake-on-LAN सर्वर इंस्टॉलेशन (Docker + Python)

कनेक्शन गाइड पर वापस जाएं

यह गाइड बताती है कि Turn Off PC द्वारा उपयोग किए जाने वाले रिमोट Wake-on-LAN (WOL) सर्वर को कैसे इंस्टॉल और चलाएं।

यह सर्वर VPN और लोकल नेटवर्क के बीच एक ब्रिज के रूप में कार्य करता है, जो होम नेटवर्क के बाहर के डिवाइस को Wake-on-LAN का उपयोग करके कंप्यूटर जगाने की अनुमति देता है।

सर्विस Docker कंटेनर के अंदर चलने वाले Python HTTP सर्वर के रूप में कार्यान्वित है।


यह सर्वर क्या करता है

WOL सर्वर:


पूर्वापेक्षाएं

रिमोट Wake-on-LAN सर्वर इंस्टॉल करने से पहले, सुनिश्चित करें कि होस्ट डिवाइस पर निम्नलिखित घटक पहले से इंस्टॉल और काम कर रहे हैं:

होस्ट डिवाइस को:


परिणामी प्रोजेक्ट संरचना

इस गाइड को पूरा करने के बाद, डायरेक्टरी संरचना होगी:

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 अब सक्षम है।