ServBay लोकल डेवेलपमेंट एनवायरनमेंट को LAN में एक्सेस करें
छोटे डेवेलपमेंट टीमों या ऐसे एकल डेवेलपर्स के लिए, जिन्हें कई डिवाइसेज़ पर टेस्टिंग करनी होती है, LAN (Local Area Network) में अन्य टीम मेंबर्स या डिवाइसेज़ पर चल रहे ServBay लोकल डेवेलपमेंट एनवायरनमेंट को एक्सेस करना एक आम और महत्वपूर्ण जरूरत है। ServBay डिज़ाइन में अधिकांश कोर सर्विसेज को LAN के जरिए एक्सेस करने का समर्थन करता है, लेकिन कुछ सर्विसेज के लिए सुरक्षा और उपलब्धता के लिए अतिरिक्त कॉन्फ़िगरेशन भी ज़रूरी है।
यह लेख ServBay में वेबसाइट और डेटाबेस सेवाओं के लिए LAN में एक्सेस एवं कॉन्फ़िगरेशन की पूरी प्रक्रिया बताएगा।
पूर्व-शर्तें
LAN के जरिए ServBay सेवाओं को एक्सेस करने से पहले, कृपया यह सुनिश्चित करें कि निम्नलिखित शर्तें पूरी हैं:
- नेटवर्क कनेक्शन: जिस कंप्यूटर पर ServBay चल रहा है (आगे "होस्ट मशीन" कहा जाएगा), और जिसे एक्सेस करना है (आगे "क्लाइंट" कहा जाएगा), दोनों एक ही LAN में जुड़े हों।
- होस्ट मशीन का IP पता: LAN में होस्ट मशीन का इंटरनल IP पता पता होना चाहिए। आप यह जानकारी होस्ट मशीन के नेटवर्क सेटिंग्स में देख सकते हैं।
- फ़ायरवॉल कॉन्फ़िगरेशन: यदि होस्ट मशीन के ऑपरेटिंग सिस्टम में फ़ायरवॉल चालू है, तो आपको ServBay द्वारा उपयोग किए जाने वाले मुख्य पोर्ट्स पर बाहर से आने वाले कनेक्शनों की अनुमति देनी होगी (उदा., HTTP सामान्यतः 80, HTTPS 443, MySQL 3306, PostgreSQL 5432, Redis 6379 आदि)। अपनी आवश्यकता अनुसार जिन सर्विसेज को खुला रखना है, उनके पोर्ट्स फ़ायरवॉल में खोलें और, यदि जरूरी हो, ACL (एक्सेस कंट्रोल लिस्ट) द्वारा IP रेंज सीमित करें।
वेबसाइट (Website)
ServBay से कॉन्फ़िगर की गई स्थानीय वेबसाइट्स डिफ़ॉल्ट रूप से सामान्यतः होस्ट मशीन के सभी नेटवर्क इंटरफेसेज़ (जैसे 0.0.0.0
या *
) को लिसन करती हैं, यानी LAN के अन्य डिवाइस उन्हें ब्राउज़ कर सकते हैं। ServBay, वेब सर्वर के लिए Caddy या Nginx का उपयोग करता है, जिसकी डिफ़ॉल्ट सेटिंग भी कुछ ऐसी ही है।
हालांकि, यदि आपको क्लाइंट ब्राउज़र से डोमेन नेम द्वारा इन साइट्स को देखना है, तो क्लाइंट डिवाइस पर डोमेन की सही DNS रेजोल्यूशन होना चाहिए। साथ ही, यदि आपकी लोकल वेबसाइट ServBay द्वारा जनरेटेड SSL सर्टिफ़िकेट (जो दृढ़ता से सुझाया गया है) का इस्तेमाल करती है, तो क्लाइंट को ServBay की रूट सर्टिफिकेट स्थापित करनी होगी, अन्यथा ब्राउज़र सिक्योरिटी चेतावनी देगा।
नीचे एक उदाहरण द्वारा प्रक्रिया समझाई गई है:
- होस्ट मशीन का LAN IP:
10.0.0.3
- ServBay वेबसाइट डोमेन:
servbay.demo
- वेबसाइट रूट डायरेक्टरी:
/Applications/ServBay/www/servbay.demo
डोमेन रिज़ॉल्यूशन (DNS) कॉन्फ़िगर करें
क्लाइंट कंप्यूटर को पता होना चाहिए कि servbay.demo
डोमेन, 10.0.0.3
IP से संबद्ध है। इसे सेट करने के दो मुख्य तरीके हैं:
क्लाइंट के Hosts फाइल को बदलें: यह सबसे आसान और सीधी प्रक्रिया है, खासकर जब क्लाइंट्स की संख्या कम हो।
- क्लाइंट कंप्यूटर में Hosts फाइल खोजें।
- macOS/Linux:
/etc/hosts
- Windows:
C:\Windows\System32\drivers\etc\hosts
- macOS/Linux:
- एडमिन/सुपरयूज़र के रूप में Hosts फाइल खोलें और फाइल के अंत में यह लाइन जोड़ें:
10.0.0.3 servbay.demo
1 - फाइल सेव करें। अब, उस कंप्यूटर पर
servbay.demo
टाइप करने पर, यह10.0.0.3
को इंगित करेगा।
- क्लाइंट कंप्यूटर में Hosts फाइल खोजें।
LAN DNS सर्वर पर सेट करें: यदि आपके LAN में एक कस्टम DNS सर्वर है (जैसे राउटर का इंबिल्ट DNS या अलग DNS सेवा), तो DNS सर्वर में
servbay.demo
के लिए एक A रिकॉर्ड जोड़ें, जिससे यह10.0.0.3
को पॉइंट करे। इस प्रकार, सभी क्लाइंट्स जो यह DNS इस्तेमाल करते हैं, वे डोमेन रेज़ॉल्व कर पाएँगे।
ServBay User Root Certificate (SSL) वितरित व स्थापित करें
ServBay का PKI सिस्टम लोकल वेबसाइट्स के लिए खुद का Root Certificate (ServBay User CA) जारी करता है, जिससे SSL प्रमाणपत्र दिए जाते हैं। किसी क्लाइंट द्वारा HTTPS के जरिए ऐसी वेबसाइट्स एक्सेस करने हेतु, उसे ServBay User CA ट्रस्ट करना आवश्यक है; अन्यथा ब्राउज़र सिक्योरिटी अलर्ट दिखाएगा।
आपको ServBay User CA को एक्सपोर्ट करके, सभी LAN यूज़र्स में बांटना होगा और उन्हें अपने-अपने ऑपरेटिंग सिस्टम या ब्राउज़र में इंस्टॉल/ट्रस्ट करने का निर्देश देना होगा।
विस्तृत प्रक्रिया के लिए ServBay डोक्यूमेंटेशन में SSL सर्टिफिकेट मैनेजमेंट के अनुभाग, विशेषकर "सर्टिफिकेट एक्सपोर्ट" और "OS/ब्राउज़र में इंस्टालेशन" देखें।
डेटाबेस
ServBay कई तरह की डेटाबेस सेवाओं का समर्थन करता है, जिसमें MySQL, MariaDB, PostgreSQL, MongoDB, और मेमोरीबेस्ड Redis व Memcached शामिल हैं। हर डेटाबेस का नेटवर्क लिसनिंग व अनुमति देने का तरीका अलग है।
MySQL / MariaDB
ServBay में MySQL व MariaDB की डिफ़ॉल्ट सेटिंग होती है कि वे सभी नेटवर्क इंटरफेस (0.0.0.0
) को लिसन करते हैं, यानी LAN से कनेक्शन स्वीकार करते हैं।
लेकिन, MySQL/MariaDB की यूज़र परमिशन प्रणाली बहुत सख्त है। नेटवर्क कनेक्शन अनुमति देने के बाद भी, कनेक्ट करने वाले को उपयुक्त यूज़रनेम व पासवर्ड चाहिए, और उसे अपने IP से कनेक्ट करने की परमिशन होनी चाहिए।
आमतौर पर, डिफ़ॉल्ट root
यूज़र को सिर्फ 127.0.0.1
या localhost
से जुड़ने की अनुमति होती है। LAN से एक्सेस के लिए नया यूज़र बनाएं या मौजूदा की परमिशन एडिट कर के किसी निश्चित LAN IP या सभी IP (%
) से कनेक्शन की अनुमती दें।
उदाहरण के लिए, servbay-demo
यूज़र को किसी भी LAN IP (%
) से कनेक्शन एवं किसी डेटाबेस के सभी अधिकार दें:
sql
-- मान लीजिए आप root या पर्याप्त अधिकार वाले यूज़र से लॉगिन हैं
CREATE USER 'servbay-demo'@'%' IDENTIFIED BY 'your_strong_password';
GRANT ALL PRIVILEGES ON `your_database_name`.* TO 'servbay-demo'@'%';
FLUSH PRIVILEGES;
1
2
3
4
2
3
4
'your_strong_password'
और your_database_name
को वास्तविक मान से बदलें।
महत्त्वपूर्ण: किसी यूज़र को %
(सभी IP) से कनेक्शन की अनुमति देना व बड़ी परमिशन देना, सुरक्षा दृष्टि से खतरनाक है। प्रोडक्शन या अनजाने नेटवर्क में, केवल विश्वसनीय IP से कनेक्शन दें (जैसे 'servbay-demo'@'10.0.0.5'
) या VPN जैसे सुरक्षित माध्यम इस्तेमाल करें।
ServBay में आप MySQL/MariaDB के root
पासवर्ड का रीसेट और यूज़र प्रबंधन दोनों कर सकते हैं।
Redis
ServBay में Redis डिफ़ॉल्ट रूप से सिर्फ लोकल लूपबैक (127.0.0.1
) पर लिसन करता है, यानी LAN से सीधे कनेक्शन की अनुमति नहीं होती। इसकी वजह है कि Redis में पासवर्ड द्वारा सुरक्षा डिफ़ॉल्ट रूप से चालू नहीं होती है।
Redis को LAN में उपलब्ध कराने हेतु, आपको इसका redis.conf
फाइल बदलना होगा।
आप दो तरह से ये कर सकते हैं:
1. ServBay UI के माध्यम से सेट करें
- ServBay खोलें, बाएँ साइडबार में
डेटाबेस
-Redis
चुनें - राइट साइड इंटरफेस में
Require Password
को सेलेक्ट करें और पासवर्ड डालें सेव
पर क्लिक करें
2. redis.conf को मैन्युअली एडिट करें (कम सुझावित)
- ServBay इंस्टॉल फोल्डर में Redis का
redis.conf
पाएँ (जैसे/Applications/ServBay/etc/redis/redis.conf
)। - टेक्स्ट एडिटर से
redis.conf
खोलें। bind 127.0.0.1
वाली लाइन ढूँढें।- इसे
bind 0.0.0.0
करें, या लाइन को कमेंट आउट करें (# bind 127.0.0.1
)—इससे Redis सभी नेटवर्क इंटरफेस पर लिसन करेगा। - 【अत्यंत आवश्यक】
requirepass
लाइन खोजें (शायद कमेंटेड हो)। कमेंट हटाएँ, मज़बूत पासवर्ड सेट करें:बिना पासवर्ड के Redis को LAN या पब्लिक नेटवर्क में कभी भी खुले न छोड़ें! यह बहुत बड़ा सुरक्षा रिस्क है!requirepass your_very_strong_redis_password
1 redis.conf
सेव करें।- ServBay ऐप में Redis सेवा पुनः आरंभ करें।
अब, क्लाइंट होस्ट मशीन के LAN IP और सेट किए गए पासवर्ड से Redis से कनेक्ट कर सकते हैं।
PostgreSQL
ServBay में PostgreSQL भी डिफ़ॉल्ट रूप से केवल लोकल लूपबैक (127.0.0.1
) पर लिसन करता है, यानी डिफ़ॉल्ट रूप में LAN एक्सेस संभव नहीं।
LAN से PostgreSQL को एक्सेस करने के लिए, दो मुख्य कॉन्फ़िगरेशन फाइल बदलनी होती हैं: postgresql.conf
और pg_hba.conf
।
सर्वबे ऐप में PostgreSQL की फाइल लोकेशन खोजें (जैसे
/Applications/ServBay/etc/postgresql/postgresql.conf
और/Applications/ServBay/etc/postgresql/pg_hba.conf
)।postgresql.conf
एडिट करें:postgresql.conf
टेक्स्ट एडिटर में खोलें।listen_addresses
लाइन खोजें (संभवतः कमेंटेड)।- कमेंट हटाएँ, वैल्यू
'*'
करें:listen_addresses = '*'
1 - फाइल सेव करें।
pg_hba.conf
एडिट करें:pg_hba.conf
खोलें। यह फाइल तय करती है कि किन होस्ट्स, यूज़र्स, डेटाबेसेज़ व मॉड्स को कनेक्शन मिल सकता है।- LAN कनेक्शनों को अनुमति देने के लिए लाइन जोड़ें। जैसे,
10.0.0.0/24
नेटवर्क से किसी भी यूजर को पासवर्ड (MD5) से कनेक्शन देना:# TYPE DATABASE USER ADDRESS METHOD host all all 10.0.0.0/24 md5
1
2host
: TCP/IP नेटवर्क कनेक्शनall
: सभी डेटाबेस (आप चाहें तो कोई खास नाम भी डाल सकते हैं)all
: सभी यूज़र (या कोई खास यूज़र)10.0.0.0/24
: उदाहरण IP रेंज (मसलन,10.0.0.1
से10.0.0.254
तक)। एकल IP भी डाल सकते हैं या, बहुत फैला देने के लिए0.0.0.0/0
(निषेधित, जब तक फ़ायरवॉल सुरक्षा पुख्ता न हो)।md5
: पासवर्ड (MD5 एनक्रिप्शन) से प्रमाणीकरण, LAN के लिए सुझाया जाता है।trust
(पासवर्ड रहित) याpassword
(सादा पासवर्ड, असुरक्षित) न इस्तेमाल करें।
- फाइल सेव करें।
ServBay ऐप में PostgreSQL सेवा रीस्टार्ट करें।
अब, क्लाइंट अपने LAN IP, सही यूज़रनेम और पासवर्ड से PostgreSQL से कनेक्ट कर सकते हैं।
ServBay आपको PostgreSQL root
(postgres) पासवर्ड रीसेट व यूज़र मैनेजमेंट की सुविधा देता है।
Memcached
Memcached एक उच्च प्रदर्शन डिस्ट्रिब्यूटेड इन-मेमोरी ऑब्जेक्ट कैश सिस्टम है, लेकिन इसमें कोई अंतर्निहित प्रमाणीकरण या प्राधिकरण तंत्र नहीं होता।
इसलिए, Memcached को सीधे LAN या सार्वजनिक नेटवर्क पर न खोलें, जब तक आपके पास कोई अतिरिक्त नेटवर्क सुरक्षा उपाय न हो (जैसे कि केवल भरोसेमंद LAN से एक्सेस, फ़ायरवॉल से स्ट्रिक्ट कंट्रोल आदि)।
ServBay में Memcached को LAN IP पर सेट किया जा सकता है, परंतु सुरक्षा जोखिम पूर्णतः समझें और स्वीकारें। डिफ़ॉल्ट सेटिंग में वह लोकल लूपबैक ही लिसन करता है। नेटवर्क बदलने के लिए Redis की तरह ही फाइल एडिट करनी होगी, पर याद रखें—इसमें पासवर्ड प्रोटेक्शन नहीं है।
सुरक्षा संबंधी सावधानियाँ
LAN में लोकल डेवेलपमेंट सर्विसेस खोलने का मतलब है टीमवर्क और मल्टी-डिवाइस टेस्टिंग में सुविधाजनकता, लेकिन इसी के साथ सुरक्षा जोखिम भी आते हैं। निम्नलिखित बातों का ध्यान रखें:
- फ़ायरवॉल: सर्वदा फ़ायरवॉल का उपयोग करें, ताकि केवल विश्वासपात्र LAN IP ही ServBay होस्ट के पोर्ट्स तक पहुँच सकें।
- मजबूत पासवर्ड: MySQL/MariaDB/PostgreSQL और Redis के लिए स्ट्रॉन्ग पासवर्ड का प्रयोग करें व नियमित रूप से बदलें।
- मिनिमम परमिशन सिद्धांत: डेटाबेस यूज़र्स को केवल आवश्यक न्यूनतम अनुमतियाँ दें। हर रोज़ रिमोट एक्सेस के लिए पूरे अधिकार वाले
root
याpostgres
यूजर्स का इस्तेमाल न करें। - Memcached सुरक्षा: फिर याद दिलाएँ—Memcached में कोई इंटरनल सुरक्षा नहीं होती, अतः LAN में उसे खुला रखने में बहुत सावधानी रखें। SSH टनल जैसी सुरक्षित विधियाँ अपनाएँ।
- ओएस अपडेट: ServBay होस्ट मशीन का ऑपरेटिंग सिस्टम, ServBay, और इससे जुड़ा सारा सॉफ़्टवेयर अप-टू-डेट रखें, ताकि सुरक्षा पैच मिलते रहें।
इन स्टेप्स और सुरक्षा सुझावों का पालन कर के, आप LAN में अपने ServBay लोकल डेवेलपमेंट एनवायरनमेंट को कहीं अधिक सुरक्षित और प्रभावी ढंग से शेयर व एक्सेस कर सकते हैं।