ポート443の2a00:1450:400c:c01 :: 71をlocalhostポート12345にリダイレクトしたいとします。
Iptablesでそれを行うには?
OK、それは、ポート> = 1000でSSLリレーを実行するWeechatです。このポートでIPv4およびIPv6と接続できます。したがって、定義済みのIPv6:Port [2a00:1450:400c:c01 :: 71]:443をIPv6 localhostポート[:: 1]:12345にバインドしたい
IPv6ではNATを想定していないため問題が発生する可能性がありますが、Linuxカーネル3.8以降では次のことが可能です。
ip6tables -t nat -A PREROUTING -p tcp -m tcp \
-d 2a00:1450:400c:c01::71 --dport 443 -j REDIRECT --to-ports 12345
この回答は、質問が編集される前の元のバージョンに適用されます。更新された質問には、@ SanderSteffannの回答が適用されます。
iptables
はIPv6ではなくIPv4のみを処理するため、iptables
を使用してそれを行うことはできません。 ip6tables
はIPv4ではなくIPv6のみを処理するため、ip6tables
を使用してそれを行うこともできません。
IPv4とIPv6の間で変換できるプロトコルコンバータは存在します。ただし、IPv4とIPv6は同じ数のIPアドレスを持たないため、これらは変換できるIPに制限を課す可能性があります。
プロトコルトランスレータを組み合わせてIPアドレスを変更し、iptables
を使用してポート番号を変更することもできます。ただし、このような組み合わせを使用することはお勧めしません。特に、特定のニーズに関する詳細を知らない限りはそうはいきません。
どちらの方法でも、サーバーから見えるクライアントIPv4アドレス内にIPv6アドレス全体を埋め込む方法がないため、サーバーはクライアントIPv6アドレスに関する情報にすぐにはアクセスできません。
提供された限られた量の情報に基づいて、@ MichaelHamptonが行ったのと同じアドバイスを提供します。最初に適切なポートでサービスを実行するだけです。それが選択肢でない場合は、より良い質問をしてください。実行しようとしたサービス、正しいポートでリッスンするように試みた方法、および失敗した方法を説明します。
これは、@ Sander Steffannに似ていますが、ハードコードされたIPアドレスではなく、インターフェイスのみで機能しました
ip6tables -t nat -I PREROUTING -i eth0 -p tcp -m tcp --dport 22 -j REDIRECT --to-ports 2222