Чому браузери ігнорують / etc / hosts за проксі-сервером SOCKS?


8

Мій MacBook в офісі не має доступу до Інтернету. Тому я створив миттєвий проксі-сервер SOCKS через SSH для веб-пошуку.

Однак, коли я намагаюся додати запис /etc/hosts, браузер не переходить на очікуваний сайт ...

WIFI мого MacBook вимкнено і підключений до локальної мережі компанії:

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

За замовчуванням немає доступу до Інтернету.

Є вікно розробки Linux (192.168.12.128), яке має доступ до Інтернету, тому я створив миттєвий проксі-сервер SOCKS, щоб отримати доступ до Інтернету для свого MacBook:

 ssh -fND localhost:30000 ohho@192.168.12.128

Потім в системних налаштуваннях мого MacBook> Мережа> Проксі

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

Це добре виглядає і добре curlповертає вміст index.html.

Однак якщо я спробую відкрити сайт: http://air.company.comу браузерах (Safari / Chrome / Firefox) жоден із них не повертає результат, як curlце було. Chrome видає помилку:

Ця веб - сторінка недоступна Веб - сторінка http://air.company.com/ може бути тимчасово недоступною або її назавжди переміщено по новою адресою. Помилка 120 (нетто: ERR_SOCKS_CONNECTION_FAILED): невідома помилка.

Якщо я додам ще один запис у /etc/hosts:

 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>

Однак браузери повертають вміст із веб-сервера реального веб-сайту Microsoft замість вмісту з мого MacBook (127.0.01). Чому?

пс

Якщо я відключу проксі-сервер SOCKS, браузер вірно повертає вміст із 127.0.0.1.

Якщо я від'єднаю LAN-кабель, браузер вірно поверне вміст із 127.0.0.1.


Співробітник інформаційної безпеки в мені повинен запитати: Чи є причина, що ваш офіс не забезпечує доступ до Інтернету, містер Сноуден? ;)
8None1

Що робити, якщо ви не помістите 127.0.0.1 в обхід? Досі є localhost і не повинен використовувати проксі-центр. Можливо, функція обходу відключає браузери.
8None1

Microsoft нерозумно, що файл використовується лише без проксі.
BluE

Відповіді:


7

Ваш браузер запитує проксі-сервер SOCKS для сайтів, він не підключається безпосередньо. Тому розміщення IP-адреси у списку винятків не працює, оскільки ваш комп'ютер не виконує пошук air.company.com на 127.0.0.1. Проксі-сервер SOCKS є.

Щоб уникнути цього, розмістіть повне доменне ім’я того, до чого ви отримуєте доступ локально, у списку винятків у системних налаштуваннях> Мережа> Проксі.

Тож для air.company.com ви побачите список виключень (зі свого прикладу вище):

  *.local, 169.254/16, 127.0.0.1, air.company.com

Тепер ваш комп'ютер буде підключатися до air.company.com безпосередньо, а тому використовувати / etc / hosts.


Microsoft нерозумно, що файл використовується лише без проксі.
BluE
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.