私はWi-Fiを使用しています。そのため、ネットワークに接続するたびにシステムのIPが変更されます。私の仕事では、IPを特定のドメイン名にマップする必要があります。そのため、毎日、IPを更新するためにhostsファイルを変更する必要があります。これは本当に面倒で、回避策が必要だと思います。そのため、hostsファイルのドメイン名にIPの範囲を追加する必要があります。それを行う方法はありますか?.
ほとんどの場合、DHCPによって割り当てられたIPアドレスをhostsファイルに実際に入れる必要はありません。たとえば、ブラウザをhttp://your-domain-here/
に向けて、ローカルWebサーバーがそれに応答できるようにしたい場合があります。 (他のクライアント/サーバー設定と同じ)。その場合—ドメインをローカルホストIPにマップします。これは127.
で始まるIPです(逆引き参照に対して奇妙な答えが得られる可能性があるため、127.0.0.1は避けます)。まだhostsファイルにない新しいものを選択するだけです。
もう1つのオプションは、静的RFC1918スペースIPアドレス(192.168.x.x、10.x.x.x、172.16–31.x.x)を選択し、それをローカルインターフェイスに追加して、そのIPアドレスを使用することです。
本当に現在のIPアドレスにマップする必要がある場合は、通常、マシンがDHCP経由でIPアドレスを取得したときにシェルスクリプトを実行できる場所があります。 dhclientを使用している場合は、スクリプトを/etc/dhcp/dhclient-enter-hooks.d/
に配置できます。 dhclient-script(8)マニュアルページ それを文書化していますが、このようなもの(非常にテストされていません)はおそらく機能します(moreutilsパッケージの「スポンジ」を使用します):
#!/bin/sh
MY_DOMAIN=your-domain.com
if [ "$reason" != "BOUND" ] && [ "$reason" != "REBIND" ]; then
exit 0
fi
grep -v " $MY_DOMAIN\$" /etc/hosts | sponge /etc/hosts # really should escape the dots in the domain, but probably doesn't matter.
printf '%s %s\n' "$new_ip_address" "$MY_DOMAIN" >> /etc/hosts
それは非常にテストされていません。それを試す前に、必ず/etc/hosts
のバックアップをとってください。
あなたが書く、
私はWi-Fiを使用しています。そのため、ネットワークに接続するたびにシステムのIPが変更されます。
これらの2つのステートメントは接続しないでください。 IPアドレスは、手動で固定値(「静的」アドレス)に割り当てることも、ネットワーク上のDHCPサーバーによって動的に割り当てることもできます(「動的」アドレス)。システムがWiFiに接続するか、ケーブルに接続するかは関係ありません。これらは、IPアドレスを取得するための2つのオプションです。
さらに興味深いことに、DHCPサーバーは、ネットワークに接続するたびに同じIPアドレス(非公式には「スティッキー」アドレスと呼ばれることもあります)を提供するように構成されている場合があります。これが私のホームネットワークの設定方法です。
異なるネットワーク間をローミングしている場合、(通常は)静的IPアドレスを使用できないため、スティッキーアドレスが最善のアプローチである可能性があります。
一方、ドメイン内のホストエントリを取得してクライアントシステムを指すようにするだけの場合は、ダイナミックDNSプロバイダーを検索することをお勧めします。一例はdyn.com
しかし、他にも考慮すべきことがたくさんあります。クライアントに、IPアドレスの変更をキャプチャし、中央サーバーに通知する小さなソフトウェアをインストールします。それはあなたのためにあなたのドメインエントリを更新します。パズルの最後のピースは、実際のドメインのA
レコードをクライアントシステムを指すDDNSドメインエントリを指すCNAME
に置き換えることです。
IPアドレスのリストをループして、ホストファイルの1行にそれぞれを追加するスクリプトを作成します-範囲はサポートされていないため、または-私の意見ではより良いです-仮想マシンでWebアプリケーションをホストしますa NATまたはホストオンリーアダプターなので、固定IPアドレスがあります。