web-dev-qa-db-ja.com

動的に割り当てられたIPアドレスでWebサイトをホストするにはどうすればよいですか?

最近、インターネットをアップグレードして、現在のWebホストよりもはるかに高速で信頼性の高いものにしました。現在のドメインを自宅でホストするように移動したいのですが、IPアドレスは動的です。私の知る限り、モデムやルーターを再起動する(ほとんどない)か、ケーブル1(ISP)がファームウェアの更新をプッシュする(まれに)場合にのみ、新しいIPを取得します。

これを行う方法はいくつかあります。

  1. ISPに静的IPを提供するよう説得する

  2. ルーターに現在のIPを割り当てて、静的IPを強制します(動作する可能性があります)。

  3. DNSレコードを現在のIPアドレスに設定し、まれに変更される場合に更新します。

明らかに、最初のものが機能することを望んでいますが、静的IPアドレスを取得するために(必要な場合は)余分なお金を払いたくありません。

これらのオプションのどれが最も確実に機能しますか?

13
nick

静的IPを取得するためにルーターに静的IPを単に割り当てることはできません。ほとんどのブロードバンドプロバイダーでは、追加の月額料金で静的IPをリースできます。しかし、安価で手間がかからず、稼働時間が向上するので、適切なウェブホストにそれを費やす方が良いでしょう。さらに、ほとんどの家庭用ブロードバンド接続のアップストリーム速度は非常に遅いです。また、ビジネスプランにアップグレードしない限り、あらゆる種類のインターネットサーバーを実行することに対してToSを持っている人もいます。

ただし、自宅からサイトをホストするように設定している場合は、IPが変更されるたびにDNSレコードを自動的に更新する動的DNSサービスを使用できます。ただし、これには重大な欠点があります。 1つは、非常に短いTTL時間を設定しない限り、ユーザーが古いIPにルーティングされてWebサイトにアクセスできない可能性が高いことです。ただし、TTLを非常に低く設定すると、ユーザーは頻繁にDNS要求を行う必要があり、パフォーマンスが低下します。

16
Lèse majesté

また、ローカルDHCPサーバーでWebサイトをホストしています。 IPを持っているようなDHCP接続でも、電源を切ってもIPは変わりません。このプロトコルは、私のMACアドレスをチェックして、古いIPを返そうとすることで機能します。 ISPが仕事をしているときはいつでも、モデムがダウンするとIPを失います。

No-ip.comを使用してサイトをホストする方法は、IPアドレスが変更された場合でもIPアドレスが何であるかを伝えます。ユーザーがwww.mydomain.comにアクセスしたときにno-ip.comのDNSレコードをチェックし、トラフィックのルーティング先のIPアドレスを確認できるように、DNSレコードを管理します。

私のlinksysは、www、mysqld、およびftpトラフィックを、内部サーバー192.168.15.11に転送してexmapleに送信します。私の通常の仕事用デスクトップには192.168.15.10があり、この方法でWebサーバーがUbuntu/Nginxを実行してページを提供し、Windows上の別のマシンで作業できます。

IPがno-ip.comからWindowsアプリを変更するたびに、no-ip.comアカウントに更新がプッシュされ、DNSが最新の状態に保たれます。

6
Anagio

Dyn などのダイナミックDNS(DDNS)サービスを使用してください。 DDNSプロバイダーは、動的IPの静的ドメイン名を許可します。このサービスは、トラフィックの少ないサイトではかなり安価です。 DDNSが機能する方法は、現在のIPでドメイン名を保持しているDDNSサービスを定期的に更新するようにルーターをセットアップすることです。ルーターレベルでDDNSを使用することは、サーバー側で実行している何らかの種類のアプリに本質的に同じことをさせるよりも便利です。ドメイン名を入力したインターネットユーザーは、DDNSプロバイダーによって適切なIPアドレスに常にリダイレクトされます。 DD-WRTは多くの異なるDDNSプロバイダーAPIをサポートしています 。 DynDNSはおそらく最も人気があり、LinksysとBelkinはネイティブファームウェアでDynDNS APIをサポートしています。

3
John

実際には可能です。そして、それを自動化する簡単な方法があります。

方法は次のとおりです。開始するためのモックアップスクリプト(完全に機能します)

  1. Afraid.orgでアカウントを登録し、ネームサーバーとして使用します。自由にしたい場合は、他の人があなたのドメイン上の任意のサブドメインを(要求または自由に使用できるように)許可する必要があります。各リクエストに承認が必要であることを選択します。つまり、リクエストを送信せず、他のユーザーがドメインを使用することはありません。または5を支払うだけです^

  2. no-ipまたはdyndnsアカウントを作成し、ホストの無料サブドメインの1つを選択します(no-ipは無料ユーザー向けに毎月キャプチャを開始したため)。このドメインを使用して、実際のドメインが指すipと比較します(注、あなたはそれを得ることができればあなたのWAN IPだけを使うことができます、一部の人々は彼らのルーター/モデムなどからそれを得ることができないので、私はこの方法を投稿しています、whatismyip/comのようなものを使用することも可能です/ org/net何でも。または定期的に下記の更新スクリプトを実行するだけ)

  3. Bashまたは次のようなスクリプトを作成します。

#!/ bin/bash 
#
#
#noipサービスのセットアップを忘れないでください
#RIP変数は実際のIPになりますCIPはorg 
#nameserversが指す恐れのある現在のIPになります。 
#また、「ip.of.nameserver.here.if.you.want」を削除したり、デフォルトの代わりに使用したい
#actual name serverに置き換えたりしない場合1。 
#私を殺してください
 
 RIP = `nslookup yourhost.dyndns.org ip.of.nameserver.here.if.you.want | grepアドレス:| awk 'NR == 2 {print $ 2}' `
 CIP =` nslookup yourdomain.com ip.of.nameserver.here.if.you.want | grepアドレス:| awk 'NR == 2 {print $ 2}' `
 if [$ RIP = $ CIP]#dyndns/no-ipホストのIPはドメインip 
 then [.____と同じ。] echo「いや、同じ」#これは本当に必要ないが、単に
 else 
 echo「同じではない、更新中...」
 #againこの行も必要ありませんが、下の1つでは、
#afraid.orgから取得するuriを使用します。たとえば、lynxを使用するか、DNSエントリを更新するために使用します現在のip 
 
 lynx -dump "http:// freedns(dot)afraid(dot)org/dynamic/update.php?YOUR_UNIQUE_UPDATE_CODE_GOES_HERE"> /dev/null
fi 

。 3. sayを数分に1回実行し、上記のip.shスクリプトを実行するcron.dジョブを作成します。 crontabエントリは次のようになります。

*/10 * * * * /path/to/script/ip.sh>/dev/null 2>&1
  1. ???
  2. 利益!これで、動的IPでドメインをホストでき、5分ですべてが完了しました。私の勝ち。
1
Zchesus