単純なポート転送


19

リバースプロキシと2台目のサーバーをセットアップしようとしているので、少し問題があります。私の考えは、ファイアウォールがhttpsをリバースプロキシに、ポート29418(gerrit ssh)を2番目のサーバーに転送するようにすることでした。今、私の協力するIT担当者は次のように述べています。両方のポートがサーバー1に行くか、両方のポートがサーバー2に行きます。

OK、回避策として、ポート29418-> server2:29418のリバースプロキシでポート転送を設定しようとしました

詳細:

  • Server1 IP:Ubuntu 12.04.2 LTS上の10.0.0.132および192.168.10.2
  • Server2 IP:Ubuntu 12.04.2 LTS上の10.0.0.133および192.168.10.3

これで、httpsとポート29418の両方がファイアウォールから10.0.0.132に移動し、ITがそれが唯一の方法であると言います。:(

10.0.0.132:29418-> 192.168.10.3:29418または10.0.0.133:29418から転送する方法を教えてください

10.0.0.132で作業している場合、10.0.0.133:29418と192.168.10.3:29418の両方に接続できるため、ポートが開いています。

-更新-

私のiptables -t nat -Lは次のようになります。

root @ dev:/ root#iptables -t nat -L
Chain PREROUTING(ポリシーACCEPT)
ターゲットprot optソースdestination
DNAT tcp-どこでもdev.example.com tcp dpt:29418 to:10.0.0.133

チェーンINPUT(ポリシーACCEPT)
ターゲットprot optソースdestination

チェーン出力(ポリシーACCEPT)
ターゲットprot optソースdestination

チェーンPOSTROUTING(ポリシーACCEPT)
ターゲットprot optソースdestination
root @ dev:/ root#cat / proc / sys / net / ipv4 / ip_forward
1

回答:


32

他の誰かが実際に機能する方法を探している場合に備えて。@HorsePunchKidは彼の提案にぴったりですが、欠落しているステップを埋めるこのチュートリアルを見つけました。

http://www.debuntu.org/how-to-redirecting-network-traffic-to-a-new-ip-using-iptables/

本質的に:

IP転送を有効にします。

sysctl net.ipv4.ip_forward=1

転送ルールを追加します(nnnn:portを使用):

iptables -t nat -A PREROUTING -p tcp -d 10.0.0.132 --dport 29418 -j DNAT --to-destination 10.0.0.133:29418

IPtablesにマスカレードを依頼:

iptables -t nat -A POSTROUTING -j MASQUERADE

以上です!いずれにせよそれは私のために働いた:)


1
これは、このテーマに関して私が見つけた最良の答えです。
ビクターPiousbox 14

このソリューションを使用した後、Dockerコンテナーからの接続が失われました。ルールを削除する必要がありました。ルールは機能していましたが、他のすべてのトラフィックを失いました。これはお勧めしません。
Dyin

iptables -t nat -A POSTROUTING -j MASQUERADEわあ...それだけです、ありがとう!ウェブを検索して把握するのに何時間も費やしました。これはとても簡単で機能します。
エビワゴン

7

10.0.0.132にiptablesがインストールされている場合、これは非常に簡単だと思います。

iptables -t nat -A PREROUTING -j DNAT -d 10.0.0.132 -p tcp --dport 29418 --to 10.0.0.133

これは、10.0.0.132が試行する他のルーティングの前に、ポート29418で10.0.0.132に着信するトラフィックを同じポートで代わりに10.0.0.133に送信することを意味します。このコマンドを実行して問題が発生した場合は、-Aフラグを-Dに置き換えて削除してください。

10.0.0.132の起動時にこのルールを自動的に実行したい場合は、上記のコマンドを「ポストアップ」ルールとして/ etc / network / interfacesに追加することを検討してください。


それはまさに私がしたことですが、うまくいきませんでした。/etc/sysctl.confでnet.ipv4.ip_forward = 1のコメントを外しましたが、10.0.0.132
29418

6

一時的なメソッドを検索する場合は、以下の解決策を試してください。

    ssh -L 192.168.0.10:8080:10.0.0.10:80 root@10.0.0.10

上記のコマンドは、ベースマシンのポート8080へのすべての接続を仮想マシンの80ポートにリダイレクトします。Webページhttp://192.168.0.10:8080にアクセスして、動作をテストできます。ゲストマシンのWebページが表示されます。

これはすべてのポートに適用されます:)


0

最終的には、pfSenseをESXiサーバー内のルーターとしてインストールして、Ubuntuで動作させることができなかったため、トラフィックを異なるVMにルーティングする必要がありました。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.