web-dev-qa-db-ja.com

iptablesを使用して動的IPを持つルーターでNATループバックを設定することは可能ですか?

ルーターに接続されたRaspberryPiホームサーバーをセットアップしました。私は動的IPを持っています。内部IP(192.168.0.8)を使用して、ネットワーク内のサーバーにアクセスできます。ネットワークのパブリックIPと作成したnoip.comドメインを使用して、ネットワーク外のサーバーにアクセスすることもできます。

問題は、パブリックIPアドレスまたはnoip.comドメインのいずれかを使用してネットワーク内のサーバーにSSH接続できないことです。しかし、奇妙なことに、(ネットワーク上で)Webブラウザのnoip.comドメインに移動すると、「動作する」デフォルトのApacheページが表示されます(これはキャッシュによるものではありません。いくつか確認しました。デバイス)。

少しグーグルした後、ルーターにNATループバックを設定する必要があることがわかりました。私のルーター(ISPが提供するルーター)は、Webインターフェイスを介したNATループバックをサポートしていないようです。 192.168.0.1経由。

ただし、ルーターへのTelnetアクセスは有効になっています。それはbusyboxを実行し、 `iptables 'コマンドが利用可能です。

ISP Webサイトのフォーラムで顧客が作成したコマンドを見つけました: http://www.skyuser.co.uk/forum/sky-router/47273-nat-loopback-dlink-2640s.html

私はtelnetにPuTTYを使用していますが、どれでも使用できます。

私のサーバーは192.168.0.x(私のWebサーバー)wan ipは2.x.x.x(自分のものに置き換えます)サーバーポート443(httpsは私にとってはhttpsですが、別のiptablesにしたい場合は、2つのコマンドが必要です:

iptables -t nat -A POSTROUTING -d 192.168.0.150 -s 192.168.0.0/24 -j SNAT --to-source 192.168.0.1
iptables -t nat -A PREROUTING -d 2.x.x.x -m tcp -p tcp --dport 443 -j DNAT --to-destination 192.168.0.x

--dport 443を省略して、すべてのポートをサーバーに送信するだけです。

ここで問題となるのは、WAN IPが変更されるたびに、2番目のコマンドをやり直す必要があることです(これがどのくらいの頻度で発生するかは誰にもわかりません)。また、ルーターを再起動するとこれが失われます。

2番目のコマンドのそのセクション(「iptables-t nat -A PREROUTING -d 2.x.x.x」)には、パブリックIPアドレスが含まれています。「現在のパブリックIPアドレス」を意味するようにするにはどうすればよいですか?

これが可能な場合、関連する解決のためにルーターへのすべての要求が遅くなりますか?

1
Inops

iptablesはDNS名に解決されるため、ルールでは2.x.x.xの代わりにnoip.comDNS名を使用できます。これは自分のiptables構成で機能します。

iptables -t nat -A PREROUTING -d whatever.noip.com -m tcp -p tcp --dport 443 -j DNAT --to-destination 192.168.0.x
1
Wycito