Расширенные правила для файла hosts
Мне нужно добавить правило для всех поддоменов домена. Я полагаю, это должно выглядеть так:
127.0.0.1 *.example.com
Как видите, мне нужно перенаправить все запросы на любой поддомен на example.com на localhost. Ну, я знаю, что это невозможно сделать с файлом hosts. Что еще я могу использовать в этом случае?
1 ответ
Как вы говорите, вы не можете вставлять символы подстановки в /etc/hosts
, Это просто не работает.
Это действительно оставляет вас с одним вариантом: манипулировать фактическим DNS вручную. Есть несколько способов сделать это, но два приходят на ум как лучшие варианты...
Вы можете запустить полностью скрытый DNS-сервер локально. Это может быть хорошей идеей, если у вас медленное интернет-соединение, и вы хотите, чтобы все устройства в сети прокси-сервер проходили через этот сервер, или вы используете много доменов, которые вы хотите переопределить, или по какой-то другой причине вы хотите перейти на первую Кольцо ада... Это не займет неделю, но требует обучения.
Или вы можете просто переопределить dnsmasq
настройки. Убунту через network-manager
уже работает своего рода DNS-прокси в виде dnsmasq
и вы можете сказать это, чтобы переопределить различные домены, довольно легко. Вот как я бы маршрут *.thepcspy.com
(мой домен) в 127.0.0.1
:
echo address=/thepcspy.com/127.0.0.1/ | sudo tee -a /etc/NetworkManager/dnsmasq.d/local
sudo service network-manager restart
Затем для проверки:
$ nslookup thepcspy.com
Server: 127.0.1.1
Address: 127.0.1.1#53
Name: thepcspy.com
Address: 127.0.0.1
И поддомен:
$ nslookup testing.thepcspy.com
Server: 127.0.1.1
Address: 127.0.1.1#53
Non-authoritative answer:
Name: testing.thepcspy.com
Address: 109.74.193.118
Чтобы отменить эти изменения, просто отредактируйте (или удалите) /etc/NetworkManager/dnsmasq.d/local
и перезапустить network-manager
снова.