IPTables - 他のIPへのポートとポート(内部から)

IPTables - 他のIPへのポートとポート(内部から)

現在、ポート80で実行されているNASボックスがあります。外部からNASに接続するために、次のようにポート8080をNASのポート80にマップしました。

iptables -t nat -A PREROUTING -p tcp --dport 8080 -j DNAT --to-destination 10.32.25.2:80

これは魅力のように動作します。ただし、これはネットワーク外(職場、他の家など)からサイトにアクセスする場合にのみ機能します。したがって、と入力するとmywebsite.com:8080IPTablesが正しく機能し、すべてがうまく機能します。

これで問題は、ネットワーク内でこのポートをどのようにリダイレクトできるかということです。私のドメイン名はmywebsite.com内部(10.32.25.1)から私のルーター(Linuxサーバー)を指していますが、ポート8080を内部から10.32.25.2のポート80にリダイレクトしたいと思います。

どんな手がかりがありますか?

編集#1

これを助けるためにこの図を設定しました。あなたが探しているものが間違っているか間違っている場合は、いつでも更新してください。

                                 iptables
                                     |                   .---------------.
    .-,(  ),-.                       v               port 80             |
 .-(          )-.        port 8080________               |               |
(    internet    )------------>[_...__...°]------------->|      NAS      |
 '-(          ).-'     10.32.25.2    ^   10.32.25.1      |               |
     '-.( ).-'                       |                   |               |
                                     |                   '---------------'
                                     |
                                     |
                                   __  _ 
                                  [__]|=|
                                  /::/|_|

ベストアンサー1

ついに方法が見つかりました。まず、「外部」ルールを追加する必要があります-i eth1(eth1はWAN接続です)。 2つのルールを追加する必要があります。結局私が得たもの:

iptables -t nat -A PREROUTING -i eth1 -p tcp --dport 8080 -j DNAT --to 10.32.25.2:80
iptables -t nat -A PREROUTING -p tcp --dport 8080 -j DNAT --to 10.32.25.2:80
iptables -t nat -A POSTROUTING -p tcp -d 10.32.25.2 --dport 80 -j MASQUERADE

おすすめ記事