現在、ポート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:8080
IPTablesが正しく機能し、すべてがうまく機能します。
これで問題は、ネットワーク内でこのポートをどのようにリダイレクトできるかということです。私のドメイン名は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