DD-WRT:LAN内から発信されたリクエストにポート転送を適用できるようにする方法は?


26

ルーターの元のファームウェアでは、ポート80からLAN内のサーバーへのポート転送が定義されており、外部の動的DNSサービスと組み合わせて使用​​していました。

私は今、DD-WRTにし、ポート転送のみから外部IPへの要求のために働く悲しいかなアップグレードした LAN。LAN内からは、その内部IPによってのみサーバーにアクセスできます。

外部IP(および動的外部IPに接続されたドメイン名)をLAN からも適切にアクセスするにはどうすればよいですか?

私は標準のDD-WRT定義でそれを達成する方法を見つけることを好むが、例えばiptablesを使用することは問題外ではない。

回答:


25

最近のDD-WRTビルドのバグのようです。

iptablesを使用します。

iptables -t nat -I POSTROUTING -o br0 -s 192.168.1.0/24 -d 192.168.1.0/24 -j MASQUERADE

(特定のLANに従ってサブネットを変更します)

http://hax.at/text/41から


それは明らかではありませんでした!チャームのように働いた:)
ジェイ

これをスタートアップコマンドとして設定し、ルーターを再起動しましたが、変更はありません—それでも動作しません。
ティムウィ

私のために働いた。どうもありがとうございました。これで、DD-WRTルーターの内部ネットワークからddnsに割り当てられたIPにアクセスできます。
-nusi

3
これは私にとってはうまくいきましたが、スタートアップスクリプトではなくファイアウォールスクリプトとして保存した場合のみです。
ジャレットミラード

@Timwi-ジャレットが述べたように、私もこれを「スタートアップ」セクションではなく「ファイアウォール」セクションに入れなければなりませんでした。
dan_linder 14

4

UrElの答えの精神で:iptables適応なしでコピーアンドペーストできる自己構成スクリプトは、DD-WRTフォーラムにあります。

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 mangle -A PREROUTING -j CONNMARK --save-mark 
iptables -t nat -A POSTROUTING -m mark --mark 0xd001 -j MASQUERADE 

Jarettが指摘したように、これはスタートアップスクリプトとしてではなく、ファイアウォールスクリプトとして使用する必要があります。


このソリューションは、UrEIのソリューションよりもうまく機能しました。UrEIのソリューションにより、SIP電話機が接続できなくなったためです。
jamix 14

これと@UrlElのルールの違いは何ですか(WANインターフェイスとIPアドレスを動的に取得する以外に)?
ピョートルドブロゴスト

1

[セキュリティ]-> [ファイアウォール]タブで[WAN NATリダイレクトのフィルター]を無効にしてみてください。ヘルプの説明から:

WAN NATリダイレクションのフィルターLAN上のホストがルーターのWANアドレスを使用して、LAN上のサーバー(ポートリダイレクションを使用して構成されている)に接続できないようにします。


既に無効になっています(デフォルト)。他のアイデアはありますか?
-UrEl

それは奇妙です-私のLANでは、この設定がまさに違いを生むものです。どのビルドを使用していますか?たぶん、あなたはダブルチェックする必要があり、あなたのポート転送-多分そこの何かが間違っているあなたは(?多分IPアドレスは、このようにポート転送を壊し、あなたの外部と内部のアクセスの間で変更されている)逃したことがある
トビアスPlutat

私は16994を使用しています。その間、hax.at
text

ああ、バグだらけのDD-WRTリリースが大好きです!(クライアントからの接続の確立にはしばらく時間がかかりました...静的リースのホスト名にはアルファベット文字のみを使用する必要があることがわかりました。Arrgh!)
トビアスプルタット

1

あなたの本当の問題は、DNS Aレコードの2つのビューが必要だということです。外部では、ダイナミックDNSはポート80をローカルホストに転送するネットワークパブリックIPを指します。必要なのは、ローカルホストのローカルホストIPに同じ完全修飾ドメイン名を指すAレコードを持つエントリをdnsmasqに追加することだけです。これを行うには、[サービス]ページ/追加のdnsmasqオプションで次を追加します。

 address=/www.mydomain.com./xx.xx.xx.xx

xxをローカルIPに、ドメイン名をドメイン名に置き換えるだけです。末尾のドットを忘れないでください。そうしないと、ローカルドメイン名が追加されます。


これは私がやったことであり、動作します!しかし、特定のポートでこれを行うことは可能ですか?これは、ポートを単一のコンピューターに転送する場合にのみ機能します。ポートを複数のコンピューターに転送する場合、機能しません
...-rinogo
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.