No description
| .gitignore | ||
| dnsmasq.conf | ||
| dnsmasq.leases | ||
| docker-compose.yml | ||
| hosts | ||
| README.md | ||
dnsmasq Docker環境
dnsmasqをDockerコンテナとして実行する環境です。DNSキャッシュサーバーおよびローカルDNSサーバーとして機能します。
機能
- DNSキャッシュサーバー: 上位DNSへの問い合わせをキャッシュして高速化
- カスタムDNSエントリ: ローカルネットワーク内のホスト名解決
- Web UI: ブラウザから設定とログを確認可能(ポート8080)
- 軽量: 軽量なdnsmasqイメージを使用
構成
docker-compose.yml: Dockerサービス定義dnsmasq.conf: dnsmasqの設定ファイルhosts: カスタムDNSエントリ.env: Web UI認証情報(Gitにはコミットしない)
使い方
1. 環境変数の設定
.envファイルを編集してWeb UIの認証情報を変更してください:
HTTP_USER=your_username
HTTP_PASS=your_secure_password
2. カスタムDNSエントリの追加
hostsファイルにカスタムDNSエントリを追加:
192.168.1.10 myserver.local
192.168.1.20 fileserver.local
3. コンテナの起動
docker-compose up -d
4. ログの確認
docker-compose logs -f dnsmasq
5. Web UIへのアクセス
ブラウザで http://localhost:8080 にアクセスし、.envで設定した認証情報でログインしてください。
DNS設定
Linuxの場合
/etc/resolv.confを編集(またはsystemd-resolvedを使用している場合は適宜設定):
nameserver 127.0.0.1
Dockerコンテナから使用する場合
docker-compose.ymlに以下を追加:
services:
your-service:
dns:
- <dnsmasq-container-ip>
設定のカスタマイズ
dnsmasq.confを編集して、以下の設定をカスタマイズできます:
- 上位DNSサーバー
- キャッシュサイズ
- ローカルドメイン
- DHCP設定(必要な場合)
設定変更後は、コンテナを再起動してください:
docker-compose restart
トラブルシューティング
ポート53が既に使用されている
他のDNSサービスがポート53を使用している可能性があります。以下を確認:
sudo lsof -i :53
sudo systemctl status systemd-resolved
systemd-resolvedが動作している場合、停止するか、dnsmasqのポートを変更してください。
DNSが解決されない
- コンテナが正常に起動しているか確認
- ログでエラーを確認
dnsmasq.confの設定を確認
セキュリティ
.envファイルはGitにコミットされません(.gitignoreに含まれています)- Web UIはデフォルトでポート8080でlisten(必要に応じて外部アクセスを制限してください)
- 本番環境では、強力なパスワードを設定してください
ライセンス
このプロジェクトはMITライセンスの下で公開されています。