dnsmasqとtailscaleで自宅のネットワーク環境を整える
自宅のサーバでwebページを公開しているが、昨今のセキュリティ情勢を鑑みて静的ページのみを公開している。 しかし、ちょっとしたアプリをつくって、それを自宅のネットワーク内限定でアクセスできるようにしたい。 自宅のネットワークに繋がった状態でwebサーバのIPを直接ブラウザに入力すればwebアプリにアクセスできるが、できればdomainでアクセスしたい。 今回は勉強がてらDNSサーバの構築と外出先から自宅ネットワークにアクセスする方法についてまとめる。
DNSにdnsmasqを利用する
以前の仕事ではDNSにPower DNSを利用していたが、ちょっとめんどくさそうだったので採用を見送り、 dnsmasq を利用する。
Ubuntu系であれば以下のコマンドでインストールできる。
sudo apt install dnsmasq/etc/dnsmasq.d/home.conf に以下のように記述する。
bind-interfaces
no-dhcp-interface=eth0
local=/home.arpa/
cache-size=1000
no-resolv
server=1.1.1.1
server=8.8.8.8
host-record=hoge.home.arpa,192.168.0.109以下のコマンドで設定ファイルが正しいかをチェックする
sudo dnsmasq --test問題なければserviceをスタートする。
sudo systemctl restart dnsmasq自宅のルータのプライマリDNSを作業を行っているサーバのIPに設定する。 サーバのIPが変化しないように、ルータ側でIPアドレスの予約設定を行っておくとよい。
Tailscaleで外出先から自宅ネットワークにアクセスする
tailscaleとは自宅ネットワークに簡単にVPNの導入できるサービスだ。 Claude Codeが流行りはじめたときに、自宅のPCでclaudeを走らせておき、外出先からtailscaleを利用して自宅のPCにアクセスして指示を与える、といった使い方が流行った。
以下のコマンドでtailscaleのインストールができる。
curl -fsSL https://tailscale.com/install.sh | shその後以下のコマンドで起動する。
sudo tailscale updnsmasqを利用している場合、自宅ネットワークのみ公開しているwebアプリに外出先からアクセスするためには更に設定が必要。
sudo tailscale set --accept-dns=false先程設定した home.conf を以下のように修正する。
port=53
listen-address=127.0.0.1,192.168.0.109
interface=tailscale0
bind-dynamic
no-dhcp-interface=eth0
no-dhcp-interface=tailscale0
local=/home.arpa/
cache-size=1000
no-resolv
server=1.1.1.1
server=8.8.8.8
host-record=hoge.home.arpa,192.168.0.109その後dnsmasqを再起動する。
sudo dnsmasq --test
sudo systemctl restart dnsmasqつづいてTailscaleの管理画面で設定する。 tailscaleをインストールしたサーバで以下のコマンドを実行して、tailscaleのIPアドレスを確認する。
tailscale ip -4Tailscale DNS管理画面を開き、Namesevers > Add nameserver > Custom nameserverで新しい設定を追加する
- nameserver:
tailscale ip -4のIP address - restrict to domain をON → domainを入力する。今回の場合はhome.arpa
これで外出先から自宅ネットワークでのみ公開しているwebアプリ等にアクセスできる。