LANからパブリックIPにアクセスする方法


1

現在、NetgearルーターとDD-WRTファームウェアを使用しています。

カメラアプリケーションがインストールされたラップトップがあります。アプリケーションは、パブリックアドレスとポートを使用してカメラを操作します。私が仕事をしているとき、アプリは正常に機能しますが、自宅では機能しません。自宅では、IPアドレスをプライベートに変更して構成を変更する必要があります。ただし、職場ではIPアドレスをパブリックに変更する必要があります。そして、私はそれを何度も繰り返します。

ケースは次のようになります。

                    +-----------------+     +------------------+
                    | Camera 01       |     | Camera 02        |
                    | 192.168.1.10:80 |     | 192.168.1.11:80  |
                    | from port: 8081 |     | from port: 8082  |
                    +-----------------+     +------------------+
                                       \   /
                                        \ /
+-------------+       +------------------+-----------------+
|     ISP     |---/---| Router (WAN port)| Router(local IP)|
| 128.x.x.107 |       | 192.168.10.1     | 192.168.1.1     |
+-------------+       +------------------+-----------------+
  • パブリックIPアドレスを使用して、たとえば128.xx107:8081を入力して、外部から(職場などから)コンピューター上のカメラにアクセスできます。

  • 192.168.1.10と入力して、LANからカメラにアクセスすることもできます。

  • 残念ながら、パブリックIPアドレス128.xx107:8081を使用してLANからカメラにアクセスすることはできません。誰もそれを行う方法を知っていますか?

NATループバック/リフレクション/ヘアピニングについて多くのことを読みましたが、私の問題に対処するのに十分なほど理解していません。

次のルールを使用して、LANからパブリックIPアドレスを介してルーターに接続できました。

iptables -t nat -I PREROUTING -d 128.x.x.107 -j DNAT --to 192.168.1.1
iptables -t nat -I POSTROUTING -s 192.168.1.1 -j SNAT --to 128.x.x.107

。。しかし、上記のルールでルーターのアドレス(192.168.1.1)の代わりにカメラアドレス(192.168.1.10)を使用すると、機能しません。

これで私を助けてもらえますか?

回答:


0

Natヘアピンが必要です。

https://wiki.mikrotik.com/wiki/Hairpin_NAT

基本的に、WAN IPを介してサーバーに向かうLAN IPがLAN IP <==> LAN IPとして書き換えられるというルールを作成します。

さまざまなこと(メール、ウェブ、ssh)のために自分のルーターで自分が必要だった


スーパーユーザーへようこそ!NetgearルーターにヘアピンNATをどのように実装しますか?OPは既にヘアピンNATについて知っているが、それを実装するのに十分ではないと言ったので、あなたの答えを拡張することは有用でしょう:)
bertieb

@AndrewSchottは答えてくれてありがとう。私は以前にこのウィキを見たことがあります。問題は、mikrotikルールをiptablesルールに変換できないことです。私はちょうどあなたがあなたの答えを展開することができますしてください場合は、ファイアウォールを構成する方法を学ぶために始めている...
REGE

申し訳ありませんが、まだ作業中ですが、この作業を行います: "iptables -t nat -A PREROUTING -i <ローカルインターフェイス> -s <内部IP範囲> -d <サーバーの外部IP> -p tcp --dport 8081 -j DNAT --to-destination 192.168.1.1 "?
アンドリューショット

残念ながら機能しません。「接続に失敗しました」というメッセージを返します:(
REGE
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.