Вступ
Нещодавно зіткнувся із цікавою ситуацією на корпоративному MacBook під час роботи в корпоративній мережі. Мережа є, Chrome відкриває сайти без проблем, але інші браузери та утиліти в терміналі, такі як ping
, curl
, npm
— відмовляються працювати. У домашній мережі все працює без проблем. Перші підозри впали на DNS або VPN, оскільки були повідомлення про помилки з name resolving. Виявилося — ні. Винна одна непомітна опція в macOS.
Симптоми
ping
не працює: Request timeout або взагалі нічогоcurl
видає:curl: (6) Could not resolve host: google.com
npm install
зависає або вилітає з помилкою DNS- браузери показують помилку DNS
При цьому Chrome чудово відкриває сайти. Схоже, що є вбудовані механізми обходу проблем з DNS і використання своїх гуглівських.
У чому проблема
Виявилося, у налаштуваннях Wi-Fi в macOS з’явилася опція Limit IP address tracking
. Ця функція намагається приховати твою справжню IP-адресу, використовуючи приватні тунелі та тимчасові IPv6-адреси. У корпоративній або іншій мережі з різними налаштуваннями безпеки це може призводити до конфліктів і повного неробочого стану мережі.
Термінальні утиліти не вміють автоматично обходити такі обмеження і, як наслідок, просто не можуть вийти в інтернет.
Як вимкнути
- Відкрий System Settings → Wi-Fi
- Натисни на свою поточну мережу
- Вимкни
Limit IP address tracking
Після цього перезапусти Wi-Fi або просто перепідключись.
Результат
Після вимкнення цієї опції:
ping
знову пінгуєcurl
резолвить хостиnpm install
завантажує залежності
Висновок
macOS продовжує робити «магічні покращення» заради приватності, але іноді це ламає базові речі. Якщо ви помітили подібні симптоми роботи мережі — насамперед перевірте цю опцію.