По какой-то причине я не могу заставить это надежно работать так, как я хочу, как в Linux, так и в Windows, и даже на разных машинах с одной и той же ОС.
Предположим, у меня есть локальная машина, работающая на 192.168.1.66
и мой публичный IP-адрес 107.214.228.39
просто перенаправляет все порты на эту локальную машину через маршрутизатор.
В идеале я хотел бы иметь возможность просто разрешить полное доменное имя независимо от того, являюсь ли я локальным или удаленным. Например, попытка загрузить home.trwnh.com
следует выполнить поиск DNS и убедиться, что адрес 192.168.1.66
когда я нахожусь в своей локальной сети с запущенным DNSMasq, и 107.214.228.39
когда я удален и использую, например. Google или Cloudflare DNS.
Иногда это срабатывало, а иногда терпело неудачу по непонятной мне причине. Как правило, DNSMasq работает над преобразованием FQDN в локальный IP-адрес 192.168.1.66
, но тогда фактическая загрузка веб-страницы, кажется, истекает. Firefox сообщает мне: «Время ожидания соединения истекло: сервер home.trwnh.com слишком долго не отвечает». Точно так же при попытке загрузить веб-сайт по полному доменному имени на фактическом хост-компьютере он правильно разрешается в локальный хост, но по-прежнему не может загрузить веб-сайт.
Что я делаю не так?
Конфиги тут: https://gist.github.com/trwnh/c61e1b0988c0ae7e68ef19a2426a9cd2
РЕДАКТИРОВАТЬ: Все любопытнее и любопытнее! Я только что узнал, что Chrome работает нормально, и эта проблема возникает только в Firefox...
РЕДАКТИРОВАТЬ 2: отключен DNS через HTTPS, и теперь Firefox работает.
РЕДАКТИРОВАТЬ 3: Не подтвердил это для себя, но https://support.mozilla.org/en-US/kb/canary-domain-use-application-dnsnet указывает, что я должен добавить local=/use-application-dns.net/
в мой /etc/dnsmasq.conf