とローカルホームラボDNSのセットアップ
6964 ワード
私のホームラボ環境でマルチパスとLXDを使用して構築されたFossアプリケーション、コンテナ(DockerとLXD)、および仮想マシンの数を増やしたので、私はアプリケーションとコンテナが動いている異なるポートを覚えているという困難を理解し始めました.この問題に対処する解決策の1つは、IPアドレスとポート番号を覚えていなければならないように、DNS解決に基づく呼び出しをリダイレクトするリバースプロキシでローカルおよび外部アドレスを解決するために働くローカルネットワークのためのドメインネームシステムを持つことでした.
以下のコマンドはコンテナが動いているDockerコンテナとポートを記載します、要件はホームセットアップのためにドメインを作成することです
dnsmasqとnginxを実装する前にコンテナアプリケーションにアクセスするオプション
dnsmasqとnginxの実装後
dnsmasqとnginxの実装ステップを始めましょう.以下のステップは、Ubuntu 20.04で行われます- Debianベースのディストリビューション.
DNSASASQのインストールを開始する前に、システムの解決を無効にします.
以下のコマンドはコンテナが動いているDockerコンテナとポートを記載します、要件はホームセットアップのためにドメインを作成することです
homelab.net
そして、ドメインURLを使用してホストしているコンテナ化されたアプリケーションにアクセスしてください.appsmith.homelab.net
excalidraw.homelab.net
typesense.homelab.net
nocodb.homelab.net
など
# get container names and port numbers
docker container ls --format "table {{.ID}}\t{{.Names}}\t{{.Ports}}" -a
CONTAINER ID NAMES PORTS
cbb2ac402270 appsmith 0.0.0.0:9001->9001/tcp, 0.0.0.0:70->80/tcp, 0.0.0.0:444->443/tcp
c9875323b989 typesense_typesense-1_1 0.0.0.0:8108->8108/tcp
c453288c8496 excalidraw 0.0.0.0:3001->80/tcp
5be5d33f1f50 k8s-control-plane 127.0.0.1:34589->6443/tcp
4140d2fbf7d5 mysql_nocodb_1 0.0.0.0:8082->8080/tcp
e7310461bee9 mysql_root_db_1 3306/tcp, 33060/tcp
9b56c33d45d5 meilisearch_ms_1 0.0.0.0:7700->7700/tcp
9ac6a0e16b0e mongo2 0.0.0.0:20002->27017/tcp
2aaf01d2233f mongo1 0.0.0.0:20001->27017/tcp
860b521f97dc mongo3 0.0.0.0:20003->27017/tcp
d8ad1ec3cab8 rethinkdb_rethinkdb_1 0.0.0.0:28015->28015/tcp, 0.0.0.0:29015->29015/tcp, 0.0.0.0:8081->8080/tcp
上記のようにローカルホームネットワーク上で動作するコンテナとアプリケーションはパブリックドメイン名を持っていません.オプションはDNSASASQとNGinxを逆プロキシとしてDNSサーバをセットアップするのを探すことでした.コンテナはローカルDNSサーバの唯一のユースケースのシナリオではないかもしれません、デバイスの向こう側のローカルファイル共有にアクセスするのが好きである他の多くがあるかもしれません;モバイルデバイスからのアプリケーションへのアクセスdnsmasqとnginxを実装する前にコンテナアプリケーションにアクセスするオプション
appsmith
- http://localhost:70 excalidraw
- http://localhost:80 typesense
- http://localhost:8080 dnsmasqとnginxの実装後
appsmith
- http://appsmith.homelab.net excalidraw
- http://excalidraw.homelab.net typesense
- http://typesense.homelab.net dnsmasqとnginxの実装ステップを始めましょう.以下のステップは、Ubuntu 20.04で行われます- Debianベースのディストリビューション.
DNSASASQのインストールを開始する前に、システムの解決を無効にします.
sudo systemctl stop systemd-resolved
sudo systemctl disable systemd-resolved
ステップ1 : dnsutilsをインストールする
sudo apt update && sudo apt install dnsmasq && sudo apt install dnsutils
ステップ2 : dnsmasq設定ファイルを作成する
dnsmasq_conf="no-dhcp-interface=enp2s0f0
bogus-priv
domain=homelab.net
expand-hosts
local=/homelab.net/
domain-needed
no-resolv
no-poll
server=8.8.8.8
server=8.8.4.4"
sudo echo -e "$dnsmasq_conf" > /etc/dnsmasq.d/home-lab.net
sudo systemctl restart dnsmasq
ステップ3 :コンテナDNSレコードをファイルに追加します。etc / hosts .ホストファイルのレコードはdnsmasq
sudo nano /etc/hosts
# add the below records to the hosts file
#Container DNS records
# appsmith
192.168.20.113 appsmith
# excalidraw
192.168.20.113 excalidraw
# typesense
192.168.20.113 typesense
ステップ4 : dnsmasqサービスの再起動
sudo systemctl restart dnsmasq.service
ステップ5 : nginxをインストールする
sudo apt update && sudo apt install nginx
ステップ6 :リバースプロキシ機能を有効にするには、新しいnginx設定ファイルを作成します
sudo nano /etc/nginx/sites-enabled/homelab.conf
server {
listen 80;
listen [::]:80;
server_name typesense.homelab.net;
location / {
proxy_bind 192.168.20.113;
proxy_pass http://localhost:3000;
}
}
server {
listen 80;
listen [::]:80;
server_name appsmith.homelab.net;
location / {
proxy_bind 192.168.20.113;
proxy_pass http://localhost:70;
}
}
server {
listen 80;
listen [::]:80;
server_name excalidraw.homelab.net;
location / {
proxy_bind 192.168.20.113;
proxy_pass http://localhost:3001;
}
}
The proxy_pass
引き数は全ての着信クライアントリクエストをnocodbに転送する.ホーセルラボそれぞれのアプリケーションに-ネット.IPアドレスとポート番号を簡単に変更することができます.ステップ7リロード
sudo systemctl reload nginx
Reference
この問題について(とローカルホームラボDNSのセットアップ), 我々は、より多くの情報をここで見つけました https://dev.to/ivishalgandhi/local-home-lab-dns-setup-with-dnsmasq-and-nginx-8b5テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol