外部IP /ポートの要求を内部IP /ポートにリダイレクトしますか?

外部IP /ポートの要求を内部IP /ポートにリダイレクトしますか?

n-1つのWeb接続仮想マシン専用n個のパブリックIPアドレスでKVM仮想化を実行する専用サーバーがあります。これで、プライベートアドレスがなく、代わりにホストから2〜3個のポートが転送されるいくつかのWeb接続VMを設定しようとしています。

ブリッジ構成は次のとおりです。

brctl show

ここに画像の説明を入力してください。

伝えたいとしましょう

  • 178.126.193.153:201 ~ 192.168.1.101:22
  • 178.126.193.153:801 ~ 192.168.1.101:80

まず、コメントアウトを削除してホストでポート転送を有効にしました。

# net.ipv4.ip_forward=1

、それから/etc/sysctl.conf私はそうだった

sysctl -p /etc/sysctl.conf
service network restart

それでは、上記のレシピと同様にこの問題、私はそうした:

iptables -t nat -A PREROUTING -p tcp -i br0 --dport 201 -j DNAT --to-destination 192.168.1.101:22
iptables -A FORWARD -p tcp -d 192.168.1.101 --dport 201 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
iptables -t nat -A PREROUTING -p tcp -i br0 --dport 801 -j DNAT --to-destination 192.168.1.101:80
iptables -A FORWARD -p tcp -d 192.168.1.101 --dport 801 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT

クライアントマシンで実行し、対応するifconfigインターフェイスeth0のIPアドレスが実際に192.168.1.101であることを確認しました。仮想マシン内部のインターフェースはと言いますかeth0

しかし、うまくいきません。

nmap 178.126.193.153開いているポート201または801が表示されず、ssh -l root -p 201 178.126.193.153混乱しています。

ssh: connect to host 178.126.193.153 port 201: Connection refused

ip routeホストに戻る

178.126.193.128/26 dev br0  proto kernel  scope link  src 178.162.193.153 
192.168.122.0/24 dev virbr0  proto kernel  scope link  src 192.168.122.1 
169.254.0.0/16 dev br0  scope link  metric 1004 
default via 178.126.193.190 dev br0 

私は何が間違っていましたか?

ベストアンサー1

トラフィックを別のポートに転送する場合は、ルートの後にSNATルールを追加する必要があります(または偽装することは重要ではありません)。また、順方向ルールでもいくつかの間違いを犯しました。だからこれを試してみてください:

iptables -t nat -A PREROUTING -p tcp -i br0 --dport 201 -j DNAT --to-destination 192.168.1.101:22
iptables -A FORWARD -p tcp -d 192.168.1.101 --dport 22 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
iptables -t nat -A POSTROUTING -d 192.168.1.101 -p tcp --dport 22 -j SNAT --to-source 178.126.193.153

おすすめ記事