У моего 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
это было. Хром выдает ошибку:
Эта веб-страница недоступна. Веб-страница http://air.company.com/ может быть временно недоступна или навсегда перемещена на новый веб-адрес. Ошибка 120 (net::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). Почему?
PS
Если я отключу прокси-сервер SOCKS, браузер правильно вернет содержимое с 127.0.0.1.
Если я отключу кабель локальной сети, браузер правильно вернет содержимое с 127.0.0.1.
Ваш браузер запрашивает прокси-сервер 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.
8Нет1
8Нет1
тигровая посуда