2013-06-19 11 views
5

Mój MacBook w biurze nie ma dostępu do Internetu. Dlatego ustawiłem Proxy SOCKS na SSH, aby uzyskać dostęp do stackoverflow. Używam głównie mojego MacBooka do programowania, więc polegam na /etc/hosts i wirtualnych hostach, aby testować niektóre witryny lokalnie.Dlaczego mój skrypt podąża za/etc/hosts ale przeglądarki nie, gdy jest proxy SOCKS?

Jednak gdy próbuję dodać wpis do /etc/hosts przeglądarka nie udać się do serwisu spodziewałem ... WIFI

My MacBook jest wyłączony i jest podłączony do sieci LAN przedsiębiorstwa:

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

Domyślnie nie ma dostępu do Internetu.

Nie pudełko rozwój Linux (192.168.12.128), który ma dostęp do internetu, więc skonfigurować proxy SOCKS błyskawiczne uzyskanie dostępu do Internetu dla mojego MacBooka:

ssh -fND localhost:30000 [email protected] 

potem w moich preferencjach MacBook za systemowe > Sieć> proxy

(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 

teraz mogę surfować po sieci, do tej pory tak dobrze.

Dla rozwoju skonfigurować kilka wpisów w /etc/hosts dla hostów wirtualnych celów:

127.0.0.1 air.company.com 

W 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> 

To wygląda dobrze i curl zwraca zawartość index.html przyjemnie.

Jeśli jednak spróbuję otworzyć witrynę: http://air.company.com w przeglądarkach (Safari/Chrome/Firefox), żaden z nich nie zwraca wyniku takiego jak curl. Chrome daje błąd:

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.

Jeśli dodać kolejny wpis w /etc/hosts:

127.0.0.1 www.microsoft.com 

W bash, wygląda OK:

$ 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> 

Ja też spróbować użyć ruby ​​skrypt:

require 'socket' 
require 'curl' 

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

puts 

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

Wyjście wygląda OK:

$ bundle exec ruby openweb.rb 
127.0.0.1 

<html>OK</html> 

Jednak kiedy używać przeglądarek, przeglądarek powrócić zawartości z serwera witryny prawdziwy Microsoft, zamiast treści z mojego MacBooka (127.0.01) . Czemu?

p.s .:

Gdybym wyłączyć proxy SOCKS, przeglądarka zwraca zawartość od 127.0.0.1 poprawnie.

Jeśli odłączę kabel LAN, przeglądarka poprawnie zwróci treść z 127.0.0.1.

Odpowiedz

1

Z klientami SOCKSv4a i SOCKSv5 faktycznie są w stanie mieć połączenia z serwerem do domeny nazwa, nie tylko na adres (http://en.wikipedia.org/wiki/SOCKS#SOCKS4a).

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

A ponieważ serwer SOCKS ma dostęp do internetu, można znaleźć w witrynie firmy Microsoft, a nie lokalną wersję.


Pomysły:

  • Jeśli jesteś w stanie zmienić wersję protokołu SOCKS do wersji 4, powinno działać.
  • Prawdopodobnie lepiej na dłuższą metę: wyłącz zdalny DNS w przeglądarce, przynajmniej Firefox obsługuje to ustawienie: Network.proxy.socks.remote_dns.
1

To jest problem z DNS. Spróbuj rozwiązać nazwy lokalnie.

0

ja również napotkać ten problem i rozwiązać tylko przez zmianę /etc/host wpis

Wystarczy usunąć:

127.0.0.1 www.microsoft.com

i dodać:

192.168.8.250 www.microsoft.com

inshort dodać swój adres serwera ip zamiast loopbackip

Powiązane problemy