मैं उसी नेटवर्क पर किसी अन्य कंप्यूटर से इस लोकलहोस्ट से कैसे जुड़ सकता हूं?


171

मैं वर्तमान में एक प्रोजेक्ट पर काम कर रहा हूं और मैं इसे दो लैपटॉप पर घर पर टेस्ट करना चाहूंगा जहां एक लैपटॉप दूसरे पर लोकलहोस्ट से कनेक्ट होता है। मैं XAMPP का उपयोग कर रहा हूं। मैं यह कैसे करु?

जवाबों:


283

यह निश्चित रूप से संभव है। हम यहां अपाचे के साथ एक सामान्य मामला लेंगे।

मान लें कि आप एक बड़े Symfony2 फैन हैं और आप अपनी सिम्फनी वेबसाइट http://symfony.local/को 4 अलग-अलग कंप्यूटरों (अपनी वेबसाइट को होस्ट करने वाले मुख्य, साथ ही एक मैक, एक विंडोज और एक लिनक्स डिस्ट्रो कनेक्टेड (वायरलेस या नहीं) से एक्सेस करना चाहेंगे। मुख्य कंप्यूटर।

सामान्य रेखाचित्र:

यहां छवि विवरण दर्ज करें


1 वर्चुअल होस्ट सेट करें :

आपको सबसे पहले अपनी अपाचे httpd-vhosts.confफाइल में एक वर्चुअल होस्ट सेट करना होगा । पर XAMP , तो आप इस फ़ाइल यहाँ पा सकते हैं: C:\xampp\apache\conf\extra\httpd-vhosts.conf। पर MAMP , तो आप इस फ़ाइल यहाँ पा सकते हैं: Applications/MAMP/conf/apache/extra/httpd-vhosts.confयह चरणsymfony.local अनुरोधों को संभालने के लिए आपके कंप्यूटर पर वेब सर्वर तैयार करता है । आपको अपनी वेबसाइट के रूट / मुख्य फ़ोल्डर के साथ-साथ वर्चुअल होस्ट का नाम प्रदान करना होगा। ऐसा करने के लिए, उस फ़ाइल के अंत में निम्न पंक्ति जोड़ें। DocumentRootजहाँ भी आपका मुख्य फ़ोल्डर है, आपको उसे बदलना होगा । यहाँ मैंने /Applications/MAMP/htdocs/Symfony/अपनी वेबसाइट के मूल के रूप में लिया है ।

<VirtualHost *:80>
    DocumentRoot "/Applications/MAMP/htdocs/Symfony/"
    ServerName symfony.local
</VirtualHost>

2 अपनी होस्ट फ़ाइल कॉन्फ़िगर करें :

क्लाइंट (उस मामले में आपका ब्राउज़र) को समझने के लिए कि symfony.localवास्तव में क्या मतलब है, आपको अपने कंप्यूटर पर होस्ट्स फ़ाइल को संपादित करने की आवश्यकता है। हर बार जब आप अपने ब्राउज़र में एक URL टाइप करते हैं, तो आपका कंप्यूटर यह समझने की कोशिश करता है कि इसका क्या मतलब है! symfony.localएक कंप्यूटर के लिए कुछ भी मतलब नहीं है। इसलिए यह नाम symfony.localको एक आईपी पते पर हल करने की कोशिश करेगा । यह पहली बार आपके कंप्यूटर पर होस्ट्स फ़ाइल को देखने के द्वारा करेगा, यह देखने के लिए कि क्या वह एड्रेस बार में आपके द्वारा टाइप किए गए आईपी पते से मेल खा सकता है। यदि यह नहीं हो सकता है, तो यह DNS सर्वर से पूछेगा । यहाँ पर ट्रिक यह है कि अपने होस्ट्स फाइल को निम्नलिखित में जोड़ें।

  • पर मैक , इस फाइल में है /private/etc/hosts;
  • पर लिनक्स , इस फाइल में है /etc/hosts;
  • पर WINDOWS , इस फाइल में है \Windows\system32\private\etc\hosts;
  • पर WINDOWS 7 , इस फाइल में है \Windows\system32\drivers\etc\hosts;
  • पर Windows 10 , इस फाइल में है \Windows\system32\drivers\etc\hosts;

Hosts file

##
# Host Database
# localhost is used to configure the loopback interface
##
#...
127.0.0.1           symfony.local

अब से, हर बार आप इस कंप्यूटर पर symfony.local टाइप करते हैं, आपका कंप्यूटर symfony.local से कनेक्ट करने के लिए लूपबैक इंटरफ़ेस का उपयोग करेगा। यह समझ जाएगा कि आप लोकलहोस्ट (127.0.0.1) पर काम करना चाहते हैं।

3 symfony.localदूसरे कंप्यूटर से पहुंच :

हम अंत में आपके मुख्य प्रश्न पर आते हैं जो है:

अब मैं अपनी वेबसाइट को दूसरे कंप्यूटर के माध्यम से कैसे एक्सेस कर सकता हूं?

खैर अब यह आसान है! हमें केवल अन्य कंप्यूटरों को यह बताने की आवश्यकता है कि वे कैसे खोज सकते हैं symfony.local! हम इसे कैसे करते हैं?

3a वेबसाइट की मेजबानी करने वाले कंप्यूटर का आईपी पता प्राप्त करें :

हमें सबसे पहले उस कंप्यूटर पर आईपी पते को जानना होगा जो वेबसाइट को होस्ट करता है (एक जिसे हम शुरुआत से ही काम कर रहे हैं)। टर्मिनल में, मैक और लिनक्स प्रकार ifconfig |grep inetपर, WINDOWSप्रकार पर ipconfig। मान लेते हैं कि इस कंप्यूटर का IP पता 192.168.1.5 है

3b उस कंप्यूटर पर होस्ट फ़ाइल संपादित करें जिसे आप वेबसाइट से एक्सेस करने का प्रयास कर रहे हैं। :

फिर से, मैक पर , यह फ़ाइल अंदर है /private/etc/hosts; LINUX पर , में /etc/hosts; और WINDOWS पर , \Windows\system32\private\etc\hosts(यदि आप WINDOWS 7 का उपयोग कर रहे हैं , तो यह फ़ाइल अंदर है \Windows\system32\drivers\etc\hosts) .. चाल अब उस कंप्यूटर के आईपी पते का उपयोग करने के लिए है जिसे हम एक्सेस करने / बात करने की कोशिश कर रहे हैं:

##
# Host Database
# localhost is used to configure the loopback interface
##
#...
192.168.1.5         symfony.local

4 अंत में अपने ब्राउज़र में परिणामों का आनंद लें

अब आप अपने ब्राउज़र में जा सकते हैं और http://symfony.localविभिन्न कंप्यूटरों पर अपनी वेबसाइट को खूबसूरती से देख सकते हैं! ध्यान दें कि आप एक ही रणनीति लागू कर सकते हैं यदि आप वर्चुअल बॉक्स के माध्यम से इंटरनेट एक्सप्लोरर पर अपनी वेबसाइट का परीक्षण करने के लिए एक ओएसएक्स उपयोगकर्ता हैं (यदि आप विंडोज कंप्यूटर का उपयोग नहीं करना चाहते हैं)। यह OSX पर अपने विंडोज / IE टेस्ट पर्यावरण क्राफ्टिंग में खूबसूरती से समझाया गया है ।


आप अपने लोकलहोस्ट को मोबाइल उपकरणों से भी एक्सेस कर सकते हैं

आप आश्चर्यचकित हो सकते हैं कि अपनी लोकलहोस्ट वेबसाइट को मोबाइल डिवाइस से कैसे एक्सेस करें। कुछ मामलों में, आप अपने डिवाइस पर होस्ट्स फ़ाइल (iPhone, iPad ...) को संशोधित करने में सक्षम नहीं होंगे (बाहर रखा गया जेलब्रेक)।

खैर, समाधान तब वेबसाइट की मेजबानी करने वाली मशीन पर एक प्रॉक्सी सर्वर स्थापित करना है और अपने iPhone से उस प्रॉक्सी से कनेक्ट करना है। यह वास्तव में बहुत अच्छी तरह से निम्नलिखित पदों में समझाया गया है और इसे स्थापित करने के लिए लंबा नहीं है:

एक मैक पर, मैं सिफारिश करूंगा: एक मोबाइल डिवाइस पर एक स्थानीय होस्टनाम का उपयोग करके मैक ओएस एक्स वेब साइट का परीक्षण करना: एक प्रॉक्सी के रूप में स्क्विडमैन का उपयोग करना । यह 100% मुफ्त समाधान है। कुछ लोग चार्ल्स को प्रॉक्सी सर्वर के रूप में भी इस्तेमाल कर सकते हैं लेकिन यह $ 50 है।

लिनक्स पर, आप स्क्वीड को प्रॉक्सी सर्वर के रूप में उपयोग करके ऊपर दिए गए मैक ओएस तरीके को अनुकूलित कर सकते हैं ।

विंडोज पर, आप फिडलर का उपयोग कर सकते हैं । निम्नलिखित पोस्ट में समाधान का वर्णन किया गया है: फिडलर के साथ आईफोन ट्रैफिक की निगरानी करना


23/11/2017 को संपादित करें: अरे मैं अपनी होस्ट्स फ़ाइल को संशोधित नहीं करना चाहता

@Dre। मैन्युअल रूप से होस्ट फ़ाइल को संपादित नहीं करके किसी अन्य कंप्यूटर से वेबसाइट तक पहुंचने का कोई संभावित तरीका? मान लीजिए कि मेरे पास 100 कंप्यूटर हैं जो वेबसाइट तक पहुंचना चाहते हैं

यह एक दिलचस्प सवाल है, और जैसा कि यह ओपी प्रश्न से संबंधित है, मुझे मदद करने दें।

आपको अपने नेटवर्क पर एक बदलाव करना होगा ताकि हर मशीन को पता चल सके कि आपकी वेबसाइट कहाँ पर होस्ट की गई है। अधिकांश रोज़र राउटर ऐसा नहीं करते हैं, इसलिए आपको अपने स्वयं के DNS सर्वर को अपने नेटवर्क पर चलाना होगा ।

आइए दिखाते हैं कि आपके पास एक राउटर (192.168.1.1) है। इस राउटर में एक डीएचसीपी सर्वर होता है और नेटवर्क पर 100 मशीनों को आईपी एड्रेस आवंटित करता है।

अब, मान लें कि आपके पास, ऊपर, उसी नेटवर्क पर, एक मशीन है 192.168.1.5जिस पर आपकी वेबसाइट है। हम उस मशीन को कॉल करेंगे pompei

$ echo $HOSTNAME
pompei

पहले की तरह ही, उस मशीन pompeiपर 192.168.1.5रन एक HTTP सर्वर जो अपनी वेबसाइट में कार्य करता है symfony.local

प्रत्येक मशीन के लिए यह जानना आवश्यक symfony.localहै कि pompeiअब हमें होस्ट किए जाने वाले नेटवर्क पर एक कस्टम DNS सर्वर की आवश्यकता होगी, जो जानता है कि कहां symfony.localहोस्ट किया गया है। नेटवर्क पर डिवाइस तब pompeiआंतरिक रूप से दिए गए डोमेन नामों को हल करने में सक्षम होंगे ।

3 सरल कदम।

Step 1: DNS Server

अपने नेटवर्क पर एक DNS सर्वर सेट-अप करें। चलो यह pompeiसुविधा के लिए है और dnsmasq की तरह कुछ का उपयोग करें ।

Dnsmasq Domain Name System (DNS) फारवर्डर , ... प्रदान करता है ।

हम pompeiDNS अनुरोधों को संभालने Hey, pompei, where is symfony.localऔर प्रतिक्रिया देने के लिए DNSmasq चलाना चाहते हैं Hey, sure think, it is on 192.168.1.5 but don't take my word for it

Dnsmasq स्थापित करने के लिए आगे बढ़ें, dnsmasq कॉन्फ़िगरेशन फ़ाइल आमतौर /etc/dnsmasq.confपर आपके वातावरण पर निर्भर करती है।

मैं व्यक्तिगत रूप से no-resolvऔर Google सर्वर का उपयोग करता हूं server=8.8.8.8 server=8.8.8.4

* नोट: * हमेशा DNSmasq को पुनः आरंभ करें यदि कोई परिवर्तन नहीं होता है / तो / फाइल को होस्ट करता है अन्यथा प्रभावी नहीं होगा।

Step 2: Firewall

काम करने के लिए, pompeiआने वाले और बाहर जाने वाले 'डोमेन' पैकेट की अनुमति देने की आवश्यकता है, जो 53 से और पोर्ट करने के लिए जा रहे हैं। ये DNS पैकेट हैं और अगर pompeiइन्हें अनुमति नहीं दी जाती है, तो आपके DNS सर्वर के लिए बिल्कुल भी कोई रास्ता नहीं है। आगे बढ़ो और उस पोर्ट 53 को खोलें। linux पर, आप इसके लिए क्लासिकल रूप से उपयोग करेंगे iptables

मुझे जो भी मिला है उसे साझा करना, लेकिन आपको अपने फ़ायरवॉल में गोता लगाने और सब कुछ अच्छी तरह से समझने की संभावना होगी।

#
# Allow outbound DNS port 53
#
 iptables -A INPUT -p tcp --dport 53 -j ACCEPT
 iptables -A INPUT -p udp --dport 53 -j ACCEPT

 iptables -A OUTPUT -p tcp --dport 53 -j ACCEPT
 iptables -A OUTPUT -p udp --dport 53 -j ACCEPT

 iptables -A INPUT -p udp --sport 53 -j ACCEPT
 iptables -A INPUT -p tcp --sport 53 -j ACCEPT

 iptables -A OUTPUT -p tcp --sport 53 -j ACCEPT
 iptables -A OUTPUT -p udp --sport 53 -j ACCEPT

Step 3: Router

अपने राउटर को बताएं कि आपका डीएनएस सर्वर अभी चालू 192.168.1.5है। अधिकांश समय, आप बस अपने राउटर में लॉगिन कर सकते हैं और इसे मैन्युअल रूप से बहुत आसानी से बदल सकते हैं।

बस हो गया, आप एक मशीन पर कर रहे हैं और के लिए पूछना जब symfony.local, यह आपके पूछेंगे DNS सर्वर जहां symfony.localहोस्ट किया गया है, और जैसे ही यह DNS सर्वर से अपने जवाब प्राप्त हुआ है, तो उचित भेज देंगे HTTP अनुरोध करने के लिए pompeiपर 192.168.1.5

मैं आपको इसके साथ खेलने देता हूं और सवारी का आनंद लेता हूं। ये 2 चरण मुख्य दिशानिर्देश हैं, इसलिए आपको डिबग करना होगा और कुछ घंटे बिताने होंगे अगर यह पहली बार हो। मान लें कि यह थोड़ा अधिक उन्नत नेटवर्किंग है, प्राथमिक DNS सर्वर, द्वितीयक DNS सर्वर आदि हैं । सौभाग्य!


अच्छा जवाब। मैंने आखिरी भाग का अनुसरण किया जब तक कि मुझे "फिडलर के साथ आईफोन ट्रैफिक की निगरानी करना" नहीं मिला। यह फिडलर होमपेज की ओर इशारा करता है। यह लिंक होना चाहिए: conceptdev.blogspot.com/2009/01/…
23

मैंने होस्ट फ़ाइल को संशोधित किया है, लेकिन समस्या यह है कि मेरे पास IIS सर्वर भी चल रहा है इसलिए मेरा "लोकलहोस्ट" या "127.0.0.1" IIS सर्वर की ओर इशारा कर रहा है कि मैं इसे xamp सर्वर से कैसे बदल सकता हूं?
उज़ैर अली

1
@ hostफ़ाइल को मैन्युअल रूप से संपादित नहीं करके किसी अन्य कंप्यूटर से वेबसाइट तक पहुंचने का कोई भी संभव तरीका ?
मान लीजिए

1
@Dre हाँ, आपको अपने नेटवर्क पर एक बदलाव करना होगा ताकि हर मशीन को पता चल सके कि आपकी वेबसाइट कहाँ पर होस्ट की गई है। मैंने उत्तर के अंत में जानकारी जोड़ी है। उम्मीद है की वो मदद करदे।
मिक

1
बहुत बढ़िया स्पष्टीकरण!
शेफर्ड

25

एक ही वायरलेस और पूरे इंटरनेट पर दोनों लैपटॉप पर परीक्षण के लिए आप http://localhost.run/ या https://brok.com/ जैसी सेवा का उपयोग कर सकते हैं


3
localhost.run ने आकर्षण की तरह काम किया। मेरा सर्वर पोर्ट 8000 पर चल रहा था और बस कमांड लाइन को 80 से 8000 में बदल दिया था।
इसुरु

3
वाह! awsome ... यह वास्तव में एक ही बार में काम किया ... धन्यवाद @tommyvn
Jabongg

स्थानीय होस्ट्स फ़ाइल को अपडेट करने की तुलना में NGROK को स्थापित करना आसान है। +1
ब्लैकहैटसमुरी

त्वरित परीक्षण के लिए आसान समाधान
शमिला

15

बशर्ते दोनों मशीनें एक ही कार्यसमूह में हों, cmd.exeजिस मशीन से आप कनेक्ट करना चाहते हैं , उस पर खोलें ipconfigऔर IPv4 Addressलाइन में आईपी को नोट करें ।

फिर, जिस मशीन से आप कनेक्ट करना चाहते हैं, उसका उपयोग करें http:// + the IP of the target machine

इससे हो जाना चाहिए।


3
यह काम करेगा यदि पोर्ट 80 ऐप के लिए पोर्ट है (आमतौर पर यह है) लेकिन ध्यान रखें कि हम एक अलग पोर्ट का उपयोग कर सकते हैं। इसका मतलब होगा http: // + टार्गेट मशीन का IP + ": PORT_NUMBER"
ggderas

यह वह सरल उपाय था जिसकी मुझे तलाश थी। @ कोडिन यूजेनियु: कृपया अपने उत्तर में "उत्तर: PORT_NUMBER" सुझाव को शामिल करने पर विचार करें जैसा कि गर्डर द्वारा वर्णित है। मेरे लिए यह आवश्यक था क्योंकि मैं अपाचे सुपरसेट का उपयोग करके पोर्ट 8088 से जुड़ा था।
ओहुमेरोने

8

Mac OS X पर:

  1. टर्मिनल में, ifconfig | grep 192.अपनी मशीन के आंतरिक आईपी को चालू नेटवर्क पर प्राप्त करने के लिए चलाएं । यह कुछ इस तरह हो सकता है192.168.1.140

  2. एक सर्वर शुरू करें। उदाहरण के लिए, node server.jsकुछ पोर्ट पर सर्वर शुरू कर सकता है।

  3. अपने फ़ोन पर, 192.168.1.140:3000आपके सर्वर पर जो भी पोर्ट चल रहा है, उस पर जाएँ।


6

इस उपकरण ने मुझे बहुत बचाया, क्योंकि मेरे पास अपनी मशीन पर कोई व्यवस्थापक अनुमति नहीं है और पहले से ही नोडज स्थापित है। किसी कारण से मेरे नेटवर्क पर कॉन्फ़िगरेशन मुझे ब्राउज़र पर आईपी इंगित करने वाली अन्य मशीनों तक पहुंच नहीं देता है।

# Using a local.dev vhost
$ browser-sync start --proxy

# Using a local.dev vhost with PORT
$ browser-sync start --proxy local.dev:8001

# Using a localhost address
$ browser-sync start --proxy localhost:8001

# Using a localhost address in a sub-dir
$ browser-sync start --proxy localhost:8080/site1

http://www.browsersync.io/docs/command-line/


मैं लोकलहोस्ट पर एक वेबएप चलाता हूं: 3000। मैंने browser-sync start --proxy localhost:3000एक अलग शेल में इस्तेमाल किया । एक अन्य डिवाइस पर, जो मेरे द्वारा टाइप किए गए नेटवर्क से जुड़ा है: ${computerIP}:3000लेकिन मुझे कुछ भी नहीं दिख रहा है। मुझे लगता है कि मुझे और कुछ प्रदान करना चाहिए।
बेन कार्प

5

यह हो सकता है कि आपके फ़ायरवॉल आपको लोकलहोस्ट के वेबसर्वर तक पहुँचने से रोक रहे हों।
यदि आवश्यक हो तो अपने दोनों कंप्यूटरों के इंटरनेट सुरक्षा एंटीवायरस नेटवर्क सुरक्षा के आईपी पते को सुरक्षित आईपी पते के रूप में रखें।
कैसे अपने विंडोज़ पीसी के आईपी पते को खोजने के लिए: प्रारंभ> में (रन) के प्रकार: cmd (दर्ज)
(यह खोलता है ब्लैक बॉक्स कमांड प्रॉम्प्ट)
प्रकार में ipconfig (दर्ज)
चलो का कहना है कि अपने अपाचे या आईआईएस वेब सर्वर अपने पीसी पर स्थापित किया गया है : 192.168.0.3
और आप अपने लैपटॉप के साथ अपने वेबसर्वर का उपयोग करना चाहते हैं। (लैपटॉप का IP 192.168.0.5 है)
आपके पीसी पर आप अपने वेबसर्वर पर अपने डेटा तक पहुँचने के लिए अपने फ़ायरफ़ॉक्स या इंटरनेट इप्लॉयर ब्राउज़र के अंदर http: // localhost / टाइप करते हैं।
अपने लैपटॉप पर आप अपने पीसी पर अपने वेबसर्वर का उपयोग करने के लिए http://192.168.0.3/ टाइप करते हैं।

काम करने के लिए इन सभी चीजों के लिए आपको एक वेबसर्वर सही ढंग से स्थापित करना होगा (जैसे IIS, Apache, XAMP, WAMP आदि)।

यदि यह काम नहीं करता है, तो अपने लैपटॉप से ​​अपने पीसी को पिंग करने का प्रयास
करें: अपने लैपटॉप पर कमांड प्रॉम्प्ट खोलें: प्रारंभ> cmd (Enter)
पिंग 192.168.1.3 (दर्ज करें)
यदि पिंगिंग विफल हो जाता है, तो फ़ायरवॉल आपके कनेक्शन या आपके नेटवर्क को अवरुद्ध कर रहा है केबल लगाना दोषपूर्ण है। अपने मॉडेम या नेटवर्क स्विच और अपनी मशीनों को पुनरारंभ करें।
चैट प्रोग्राम जैसे करीबी प्रोग्राम जो आपके पोर्ट का उपयोग कर रहे हैं।
आप एक भिन्न पोर्ट संख्या: http: 192.168.0.3: 80 या http: 192.168.0.3: 81 या किसी भी यादृच्छिक संख्या को अंत में आज़मा सकते हैं


1
धन्यवाद tou @KarlosFontana - आपने अभी मेरे प्रश्न का उत्तर दिया। मुझे अपने iPhone को डेस्कटॉप पर लिखे सर्वर से जोड़ने में समस्या हो रही थी। IPhone मेरे पीसी के वाईफाई से जुड़ा था। आपकी अंतिम पंक्ति ने मेरे प्रश्न का उत्तर दिया :-)
टॉमी

4

यह एक साइड नोट है यदि कोई अभी भी ऊपर दिए गए चरण के माध्यम से किसी अन्य डिवाइस से लोकलहोस्ट का उपयोग नहीं कर सकता है। यह अपाचे पोर्ट्सकॉन्फ को स्थानीय रूप से (127.0.0.1) परोसने के लिए कॉन्फ़िगर किया गया है और बाहर नहीं।

निम्नलिखित की जाँच करें, (ubuntu apache2 के लिए)

  $ cat /etc/apache2/ports.conf

यदि निम्नलिखित सेट है,

NameVirtualHost *:80  
Listen 127.0.0.1:80  

फिर इसे डिफ़ॉल्ट मान में बदलें

NameVirtualHost *:80  
Listen 80  

0

यदि आप विंडोज पर हैं, तो स्थानीय IPv4 पता प्राप्त करने के लिए ipconfig का उपयोग करें , और फिर अपनी अपाचे कॉन्फ़िगरेशन फ़ाइल के तहत यह निर्दिष्ट करें: httpd.conf , जैसे:

Listen: 10.20.30.40:80

अपने Apache सर्वर को पुनरारंभ करें और इसे अन्य कंप्यूटर से नेटवर्क पर परीक्षण करें।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.