OpenVPNサーバーを実行しているTomato(shibby)にルーターがあります(TAPを使用tap21
しています。インターフェイスはルーター上にあります)。さまざまなリソース(一部のワークステーションを含む)がeth0
このルーターで物理的に接続されています。全国に別の物理デバイスがあり、nginxやその他のサービスを実行しています。今、私はこれは素晴らしい地形セットアップされていない知っているが、不変の状況は、nginxのを実行しているデバイスがいることを必要としなければならないポート80に、このデバイスのインバウンドトラフィックとアウトバウンドトラフィックのすべてを、ルータ、VPNのクライアントとなると443本を通じてトンネルされなければなりませんVPN接続。
だから基本的に、起こる必要があるのは:
- example.comはルーター上のWANのIPに解決します
- ルーターは
tap21
nginxサーバーへのインターフェースを介してポート80と443を転送します - nginxサーバーの応答が返され
tap21
、WAN経由で返されます
#2の部分は私が問題を抱えているものです。
サーバーは現在、サブネット上の他のデバイスと通信でき(VPN上の他のリソースeth0
とルーターに物理的に接続されているリソースにpingを実行できます)、VPN経由でインターネットにアクセスできます。ただし、ポートをWANからVPN上のサーバーのアドレスに転送することはできませんでした。私が最初に試みたのは、単純にトマトのポート転送GUIを試すことでした(ただし、これはVPN上のIPでは機能せず、eth0
または上のIPでのみ機能するようwlan0
です)。それがうまくいかなかったとき、iptablesルールを追加しようとしましたが、iptablesにまだあまり不快であるため、この奇妙で問題のあるネットワーク設定に実際には関係のない質問に対する他の回答からスニペットを見つけることができました。私が試していることはnc
次のとおりです(10000をリスニングのテストポートとして使用):
iptables -t nat -I PREROUTING -p tcp -m tcp --dport 10000 -j DNAT --to-destination 192.168.12.53:10000
iptables -I FORWARD -d 192.168.12.53 -p tcp --dport 10000 -j ACCEPT
ただし、この方法で再ルーティングされているパケットに何が起こっているのかわかりません。サーバーに到達していないのは確かです。基本的に、私の質問は、特定のポートの着信接続をVPNの特定のデバイスに転送する方法です。eth0
もちろん、ルーターの他のリソースからのポート80および443のアウトバウンドトラフィックは影響を受けてはなりません。
あなたが提供できる助けをありがとう!