2013-06-19 8 views
5

कार्यालय में मेरे मैकबुक में इंटरनेट का उपयोग नहीं है। तो मैंने स्टैक ओवरफ्लो तक पहुंचने के लिए एसएसएच पर एक त्वरित सॉक्स प्रॉक्सी स्थापित की। मैं मुख्य रूप से विकास के लिए अपने मैकबुक का उपयोग करता हूं इसलिए मैं स्थानीय स्तर पर कुछ साइटों का परीक्षण करने के लिए /etc/hosts और वर्चुअल होस्ट पर भरोसा करता हूं।मेरी स्क्रिप्ट/etc/hosts का अनुसरण क्यों करती है लेकिन ब्राउज़र सॉक्स प्रॉक्सी होने पर नहीं होता है?

IP address: 192.168.8.250 
Subnet mask: 255.255.255.0 
Router:  192.168.8.1 
DNS server: 8.8.8.8 
:

हालांकि, जब मैं /etc/hosts के लिए एक प्रविष्टि जोड़ने के लिए प्रयास करते हैं, ब्राउज़र साइट मैं उम्मीद ...

मेरे मैकबुक के वाईफ़ाई बंद है और कंपनी लैन से जुड़ा है करने के लिए जाना नहीं है

डिफ़ॉल्ट रहें, इंटरनेट का उपयोग नहीं है।

ssh -fND localhost:30000 [email protected] 
तब मेरे मैकबुक के सिस्टम प्राथमिकताओं में

:

वहाँ एक लिनक्स विकास बॉक्स (192.168.12.128) जो इंटरनेट की पहुंच है, तो मैं ऊपर एक पल सॉक्स प्रॉक्सी मेरी मैकबुक के लिए इंटरनेट का उपयोग हासिल करने के लिए सेट > नेटवर्क> प्रॉक्सी

(Enable) SOCKS Proxy 
SOCKS Proxy sever: 127.0.0.1:30000 
Bypass proxy settings for these Hosts & Domains: 
    *.local, 169.254/16, 127.0.0.1 

अब मैं वेब सर्फ कर सकता हूं, अब तक इतना अच्छा है।

विकास के लिए, मैं कुछ प्रविष्टियों /etc/hosts में आभासी मेजबान प्रयोजन के लिए सेट करें:

127.0.0.1 air.company.com 

bash में:

$ ping air.company.com 
PING air.ohho.es (127.0.0.1): 56 data bytes 
64 bytes from 127.0.0.1: icmp_seq=0 ttl=64 time=0.046 ms 

$ curl air.company.com 
<html>OK</html> 

यह अच्छा लग रहा है और curlindex.html अच्छी तरह से की सामग्री देता है।

हालांकि, यदि मैं साइट खोलने का प्रयास करता हूं: http://air.company.com ब्राउज़र (सफारी/क्रोम/फ़ायरफ़ॉक्स) में, उनमें से कोई भी curl परिणाम नहीं देता है। मैं /etc/hosts में कोई अन्य प्रविष्टि जोड़ देते हैं तो

This webpage is not available The webpage at http://air.company.com/ might be temporarily down or it may have moved permanently to a new web address. Error 120 (net::ERR_SOCKS_CONNECTION_FAILED): Unknown error.

: Chrome एक त्रुटि दे

127.0.0.1 www.microsoft.com 

bash में, यह ठीक लग रहा है:

$ ping www.microsoft.com 
PING www.microsoft.com (127.0.0.1): 56 data bytes 
64 bytes from 127.0.0.1: icmp_seq=0 ttl=64 time=0.047 ms 
64 bytes from 127.0.0.1: icmp_seq=1 ttl=64 time=0.128 ms 
^C 
--- www.microsoft.com ping statistics --- 
2 packets transmitted, 2 packets received, 0.0% packet loss 
round-trip min/avg/max/stddev = 0.047/0.087/0.128/0.041 ms 

$ curl www.microsoft.com 
<html>OK</html> 

मैं भी रूबी स्क्रिप्ट का उपयोग कर प्रयास करें:

require 'socket' 
require 'curl' 

ip = IPSocket.getaddress('www.microsoft.com') 
puts ip 

puts 

http = Curl.get("http://www.microsoft.com/") 
puts http.body_str 

उत्पादन ठीक लग रहा है:

$ bundle exec ruby openweb.rb 
127.0.0.1 

<html>OK</html> 

हालांकि, जब मैं ब्राउज़र का उपयोग, ब्राउज़र मेरी मैकबुक से सामग्री के बजाय, असली माइक्रोसॉफ्ट साइट के वेब सर्वर से सामग्री वापसी (127.0.01) । क्यूं कर?

पी.एस .:

मैं सॉक्स प्रॉक्सी अक्षम करते हैं, ब्राउज़र सामग्री 127.0.0.1 से सही ढंग से वापस आती है।

यदि मैं लैन केबल डिस्कनेक्ट करता हूं, तो ब्राउज़र सामग्री को 127.0.0.1 से सही तरीके से वापस कर देता है।

उत्तर

1
SOCKSv4a और SOCKSv5 ग्राहकों के साथ

वास्तव में सर्वर से कनेक्ट करने में सक्षम हैं एक डोमेन नाम पर, न केवल एक पते (http://en.wikipedia.org/wiki/SOCKS#SOCKS4a) पर।

             ---------- 
                 - DNS - 
                 ┐--------- 
                . 
                . 
----------------     ----------------.- 
-    ====================-    - 
- Browser  = CON microsoft.com - SOCKS Server - 
-    ====================-    - 
----------------     ------------------ 

और चूंकि सॉक्स सर्वर इंटरनेट का उपयोग किया है, तो आप Microsoft की साइट देख सकते हैं, और नहीं अपने स्थानीय संस्करण।


विचार:

  • आप संस्करण 4 में सॉक्स प्रोटोकॉल का संस्करण बदलने में सक्षम हैं, तो यह काम करना चाहिए।
  • शायद लंबे समय तक बेहतर: ब्राउज़र में दूरस्थ DNS अक्षम करें, कम से कम फ़ायरफ़ॉक्स इस सेटिंग का समर्थन करता है: Network.proxy.socks.remote_dns
1

यह एक DNS समस्या है। स्थानीय रूप से नामों को हल करने का प्रयास करें।

3

सॉक्स 5 दूरस्थ रूप से DNS लुकअप करेगा; सुरक्षा के लिए यह एक अच्छी बात है।

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

ऐसा करने के लिए, इन होस्ट्स के लिए अपनी बाईपास प्रॉक्सी सेटिंग्स सेट करें & डोमेन: "*.company.com शामिल करने के लिए। यदि आपके पास विशेष रूप से जटिल सेटिंग्स हैं, तो आप proxy access control (उर्फ .pac) फ़ाइल सेट कर सकते हैं जो प्रॉक्सी पर क्या हो रहा है और सीधे उपयोग की जाने वाली चीज़ों के बहुत बारीक नियंत्रण की अनुमति देता है।

0

मैं भी इस समस्या का सामना और बस /etc/host प्रविष्टि

बदलकर हल बस निकालें:

127.0.0.1 www.microsoft.com

और जोड़ें:

192.168.8.250 www.microsoft.com

inshort अपने सर्वर ip पता जोड़नेके बजायip

संबंधित मुद्दे