ルーターでDD-WRTファームウェアを実行しています。バージョンDD-WRT v24-sp2(12/12/11)std。
ポート80のhttp
トラフィックをPCのローカルIP192.168.2.97にポート転送しようとしていますが、参照できますLAN上のホストサイトで、リモートIPオフサイトから試行すると、「接続がタイムアウトしました」と表示されます。
誰かがリンクされたiptablesダンプを見てください here そしてポートを有効にするために使用する適切なiptables構文を見つけるのを手伝ってください正しく動作するように転送しますか?私はiptablesに非常に慣れていないので、必要な構文を作成する方法に迷っています。
[〜#〜] edit [〜#〜]Webサーバー(IISを実行しているWindows 7)からのnetstat -ano | find "80"
の出力:
TCP 0.0.0.0:80 0.0.0.0:0 LISTENING 4
TCP 192.168.2.97:1869 207.46.124.39:80 ESTABLISHED 3860
TCP 192.168.2.97:43794 74.125.229.36:80 TIME_WAIT 0
TCP [::]:80 [::]:0 LISTENING 4
UDP 127.0.0.1:48000 *:* 3132
UDP 127.0.0.1:48001 *:* 2420
[〜#〜] edit [〜#〜]DD-WRTコマンドからのiptables -t nat -L
の出力プロンプト:
Chain PREROUTING (policy ACCEPT)
target prot opt source destination
DNAT icmp -- anywhere my.wan.ip to:192.168.2.1
DNAT tcp -- anywhere my.wan.ip tcp dpt:www to:192.168.2.97:80
DNAT tcp -- anywhere my.wan.ip tcp dpt:www to:192.168.2.97
TRIGGER 0 -- anywhere my.wan.ip TRIGGER type:dnat match:0 relate:0
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
Chain POSTROUTING (policy ACCEPT)
target prot opt source destination
SNAT 0 -- 192.168.2.0/24 anywhere to:my.wan.ip
RETURN 0 -- anywhere anywhere PKTTYPE = broadcast
[〜#〜] edit [〜#〜]DD-WRTインターフェースからのiptables -t nat -vnL
の出力:
Chain PREROUTING (policy ACCEPT 165K packets, 18M bytes)
pkts bytes target prot opt in out source destination
38 47952 DNAT icmp -- * * 0.0.0.0/0 my.wan.ip to:192.168.2.1
0 0 DNAT tcp -- * * 0.0.0.0/0 my.wan.ip tcp dpt:80 to:192.168.2.97:80
0 0 DNAT tcp -- * * 0.0.0.0/0 my.wan.ip tcp dpt:80 to:192.168.2.97
47056 6024K TRIGGER 0 -- * * 0.0.0.0/0 my.wan.ip TRIGGER type:dnat match:0 relate:0
Chain OUTPUT (policy ACCEPT 4753 packets, 418K bytes)
pkts bytes target prot opt in out source destination
Chain POSTROUTING (policy ACCEPT 4753 packets, 418K bytes)
pkts bytes target prot opt in out source destination
87913 10M SNAT 0 -- * vlan2 192.168.2.0/24 0.0.0.0/0 to:my.wan.ip
0 0 RETURN 0 -- * br0 0.0.0.0/0 0.0.0.0/0 PKTTYPE = broadcast
[〜#〜] edit [〜#〜]DD-WRTコマンドプロンプトからのroute
の出力:
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
74.178.55.1 * 255.255.255.255 UH 0 0 0 vlan2
192.168.2.0 * 255.255.255.0 U 0 0 0 br0
74.178.55.0 * 255.255.255.0 U 0 0 0 vlan2
169.254.0.0 * 255.255.0.0 U 0 0 0 br0
239.0.0.0 * 255.0.0.0 U 0 0 0 br0
127.0.0.0 * 255.0.0.0 U 0 0 0 lo
default adsl-74-178-55- 0.0.0.0 UG 0 0 0 vlan2
結論:DD-WRTでそれを持っています。
私はバッファローWZR-HP-G300NH2を何十回もブリックしたりアンブリックしたりしました。以下の多くの提案を試みました。 DD-WRTフォーラムに投稿され、ほとんど死んだ空気に遭遇しました。 OpenWRT、Gargoyle、HyperWRT、Tomatoなどの他の代替ファームウェアを調べました。これらのうち、Gargoyleを使用したOpenWRTは有望に見えましたが、Gargoyleは特に私のルーターをサポートしていません(WZR-HP-G300NHはサポートされていますが、WZR-HP-G300NH2)。
私がこれまでに行った中で最も遠いのは、OpenWRTとLuci(Web管理アドオン)をインストールすることです。何百ものフォーラム投稿を調べて、多数のビルドと構成、およびその他のエラーの解決策や回避策を見つけようとしましたが、 「{開発者には完全に慣習的であるが初心者ではないように見えるライブラリ、オプション、または構成を使用して再コンパイルする」または「{あなたが明白なことを行う」などの方法で、私のような質問に答える簡潔で役に立たない投稿おそらくすでに試したことがあるでしょう。これは睡眠中に行うことができますが、特に詳しく説明する必要はありません} "。
これに続いてLuciを介していくつかの構成変更を適用しようとしたため、再起動後にルーターが再びブリックしたため、何か問題が発生したようです。気が向いたら、もう一度フラッシュをやり直して、この状況を回避するために何をする必要があるかを確認します。うまくいけば、機能するルーターまたは少なくとも使用できるスイッチができあがります。
その間に、私は先に進んで別のルーターを購入しました。工場出荷時のファームウェアが、一見単純に見えるポート転送のタスクを実行することを期待しています。 kceとこれを突き刺したすべての人に感謝します。
...バージョンDD-WRT v24-sp2(12/12/11)std。
重要な情報である改訂番号を提供していません。現在推奨されているリビジョンは13064または14869のみです。dd-wrtファームウェアのほとんどのリビジョンは不安定で壊れていると見なされます。
フォーラムスレッド からの関連情報は次のとおりです。
特にSP1またはv24final(05/21/08)13064または14896を実行している場合は、このセクションにリストされているフォーラム推奨ビルドの1つにアップグレード(またはダウングレード)します。このスレッドまたはredhawk0の発表で推奨されているものに固執します。安定性が必要です。執筆時点では、最新の公式ビルドはv.24SP1です。 SP1には多くの問題があります。それは自発的にAsusWL500Wルーターをブリックします。
これらのフォーラム推奨ビルドはすべてベータ版であり、まだ「完成」していません。自己責任で使用しますが、フォーラムで推奨されているビルドはかなり徹底的にテストされており、SP1よりも確かに優れています。フォーラムを閲覧して、他の人が言っていることを確認してください。
推奨ビルドよりも新しい16xxxまたは17xxxビルドなどの最新のビルドは、テスト専用にリリースされています。それらは新しく「改善された」ものではなく、明らかに優れているためリリースされていません。多くの場合、彼らは大きな問題を抱えています。そうでない場合は、フォーラムで推奨されます。したがって、ここで推奨されているものとは異なるビルドをインストールする場合は、ビルドをテストしているため、機能しない場合があることに注意してください。各ビルドには、ビルドがリリースされたときに作成されるフォーラム内の「ビルドスレッド」があります。そのスレッドの問題を報告しますが、ビルドスレッドでルーターの助けを求めないでください。一般的に安定したビルドが必要な場合は、このメモで推奨されているビルドの1つを使用してくださいOR REDHAWK0の推奨ビルドスレッド!このルールの唯一の例外は、非常に新しいルーターとそのルーターを使用している場合です。 15962より新しいビルドの初期フラッシュが必要です。その場合、ほとんどの場合、17990または18000(基本的に同じ)を使用する必要があります。
TL; DR:The newest builds, such as the 16xxx or 17xxx builds, that are newer than the recommended builds have been released for TESTING only... OFTEN they have massive problems.
編集:リモートIPアドレスから接続して転送をテストしたとのことですが。念のために言っておきますが、LANからWANインターフェイスのIPアドレスに接続しようとはしていません。正しいですか? NATループバック は、そのリビジョンおよび15760を超えるものでは壊れています。 。
非常にやむを得ない理由がない限り、リンクしたスレッドごとに推奨リビジョンの1つにファームウェアをダウングレードすることを強くお勧めします。
編集2:うーん。ダウングレードが機能しなかったようです。それを聞いてすみません。残念ながら、これはDD-WRTファームウェアの問題である可能性が高く、その質問はトピックから外れていると見なされます。この結論の私の理由は、iptablesが正常に見え、ポート転送がLinksysルーターで正しく機能することです。
この時点での私のアドバイスは、1)DD-WRTフォーラムに投稿する(最初にすべてのFAQを読む)、2)バグレポートを提出する、または3)実際のルーターを購入することです。私はDD-WRTに問題があっただけで、誰にもお勧めしません。さらに、COTSの「ルーター」も同様に信頼性が低いことがわかりました。
以下の4つのコマンド(2つのinsmodと2つのiptables)をルーターの起動コマンドウィンドウ(ルーターのメニューパス:[管理]-> [診断])に追加します。それらをルータのシェルコマンドウィンドウに貼り付けてから、[SAVE STARTUP]ボタンをクリックして、ルータのスタートアップコマンドウィンドウに転送します。
insmod ipt_mark
insmod xt_mark
iptables -t mangle -A PREROUTING -i! `get_wanface` -d` nvram get wan_ipaddr` -j MARK --set-mark 0xd001
iptables -t nat -A POSTROUTING -m mark --mark 0xd001 -j MASQUERADE
最善の方法は、上記の4つのコマンドをそのままコピーして、ルーターに直接1行に1つのコマンドを貼り付けることです。そうすることで、間違いを犯さないことが保証されます。これに対処することにもううんざりしているに違いありません。
それらをルーターの起動コマンドリストに保存した後、ルーターを再起動し、WAN側からポート転送をテストします。
これでうまくいくはずです。
これが私のために働いたようにあなたのために働いたならば、ここに返信してください!
よろしく、リノ
現状のルールは問題ないように見えます。したがって、他の可能性は、ISPまたは途中の誰かがdport80をブロックしていることです...それをテストする簡単な方法:
他のポートのリクエストを内部サーバーに転送するDNATルールを追加します-例:
iptables -t nat -I PREROUTING -p tcp --dport 32100 -d <wanIP> -j DNAT --to 192.168.2.97:80
次に、ブラウザを開いて、 http:// <wanIP>:321 にアクセスします。
それでも失敗する場合は、pMTUdの問題に関連している可能性があります。
Iptablesのリストは、デフォルトのfilter
テーブル(iptables -t filter -L
と同じ)専用です。これは、従来の単純なルーティング用であり、この場合は不十分です。ネットワークアドレス変換(NAT)を使用します。
この場合、関連する設定はnat
テーブルにあります(sshを介してルーターに接続し、iptables -t nat -L
を発行します)。次のようなものが含まれている必要があります。
Chain PREROUTING (policy ...)
target prot opt source destination
DNAT tcp -- anywhere your_internet_ip_address tcp dpt:80 to:192.168.2.97:80
もちろん、外部から接続する必要があります http:// your_internet_ip_address ではなく http://192.168.2.97 、明白なことを述べてくれて許してください。
DD-WRT v24GUIを介して実装する方法がわかりません。 v23では、Applications&Gaming -> Port Forwarding
を介してそれを実行し、DNATはうまく機能しました。
UPDATE 1:つまり、適切なDNATルールがあります。
私が気づいたもう一つのこと。ポート80のTRIGGERルールがあります。マニュアルによると
ポートトリガールールを設定することにより、インバウンドトラフィックが特定のLANホストに到着することを許可できます[...] PCがこれらのポートからアウトバウンドトラフィックを送信する場合、転送範囲の着信トラフィックはそのPCに転送されます。
これは通常のポートフォワーディング(DNAT)とはまったく異なるものであり、競合する可能性が非常に高くなります。トリガーは通常、接続を戻すアプリケーション(通常はマルチプレイヤーゲーム)に使用されますが、ポート80でトリガーが必要な理由がわかりません。
あなたのルールは大丈夫です。リモートアクセスのデフォルトとしてポート80が構成されています。それを変更すれば大丈夫です。
NATとファイアウォールの2つの場所で接続を許可する必要があります。