Вчера я решил похожую проблему, поэтому git-репозитории на моем ноутбуке можно синхронизировать с пультом на настольном компьютере, без необходимости использовать другой пульт, в зависимости от того, нахожусь ли я в локальной сети или вдали от дома.
Я запустил dnsmasq
на своем рабочем столе с этим конфигом:
domain-needed
bogus-priv
no-poll
local=/localdomain/
addn-hosts=/etc/extra_hosts
/etc/extra_hosts
содержит единственную запись с IP-адресом моего рабочего стола в локальной сети и именем домена, которое разрешается для моего внешнего IP-адреса, например
192.168.0.72 jwakely.example.com
Затем на моем ноутбуке измените конфигурацию NetworkManager для моего Wi-Fi-подключения к локальной сети на "DHCP Addresses Only" и установите 192.168.0.72 в качестве основного DNS-сервера, а мой маршрутизатор в качестве дополнительного (для этого без графического интерфейса пользователя NetworkManager просто установите DNS1 и DNS2 и PEERDNS = нет, или поместите серверы имен в /etc/resolv.conf
вручную)
Он прекрасно работал, как только я вспомнил, что разрешил DNS-запросы (порт 53) через брандмауэр моего рабочего стола.
Когда я нахожусь в моей домашней локальной сети, ноутбук использует рабочий стол для DNS-запросов, поэтому получает внутренний IP-адрес для jwakely.example.com
, а все другие DNS-запросы перенаправляются на обычный DNS-сервер моего рабочего стола (который является моим ADSL-маршрутизатором). .) Только ноутбук использует экземпляр dnsmasq
, все остальные хосты в локальной сети все еще используют маршрутизатор для DNS как обычно. Если мой ноутбук находится в локальной сети, но мой рабочий стол не работает, он использует свой дополнительный DNS-сервер и не может получить внутренний IP-адрес для jwakely.example.com
но это нормально, потому что машина все равно не работает.