web-dev-qa-db-ja.com

プライベートネットワークで外部のVagrantボックスからの接続が拒否されました

私は、プライベートネットワークIPを備えた迷惑なボックスにCentOS 6をセットアップしました。 IPを使用してボックスにSSHで接続できるので、問題なく動作しています。ただし、カールするとポート80で接続が拒否されます。内部にデフォルトのウェルカムページを提供する非常に基本的なnginxがあります。箱の内側からそれをカーリングすると動作します。

Vagrant.configure("2") do |config|
  config.vm.box = "Centos-6.3-minimal"
  config.vm.box_url = "https://dl.dropbox.com/u/7225008/Vagrant/CentOS-6.3-x86_64-minimal.box"

  config.vm.network :private_network, ip: "192.168.33.44"
  config.vm.hostname = "local.example.com"

  config.vm.provider :virtualbox do |vb|
    vb.customize ["modifyvm", :id, "--memory", "2048"]
  end
end

これが私が試したいくつかのことです:

  • ポート転送80-> 8080に変更します。localhost:8080でのカーリングはそのままハングします。
  • 別のIPアドレスを試します。変わりはない。
  • python -m SimpleHTTPServerでリッスンすることがわかっているサーバーで0.0.0.0を開きます。それでも接続が拒否されます。

これらは機能することが知られています:

  • 指定されたプライベートネットワークIPを使用してサーバーにSSH接続します。
  • ボックス内からのカーリングが機能します。
  • 同じ設定が実サーバーでも機能します。

Guest Additionsをインストールしましたが、ゲストとホストでバージョンが異なります。それが問題かもしれません。しかし、なぜSSHが機能し、ポート80が機能しないのでしょうか。これはvagrant reloadを実行したときの出力です。 https://Gist.github.com/magnars/496e553f07ad5c770c54

更新

これは機能しませんが:

config.vm.network :forwarded_port, guest: 80, Host: 8080

これは:

ssh -f [email protected] -L 8080:127.0.0.1:80 -N

何か案は?

8
Magnar

間違っている可能性があることはたくさんありますが、最初に確認するのはゲスト内部のファイアウォールです。ポート22ではなくポート80のルールを設定するのと同じくらい簡単です。

3
kdt

ゲストホストでファイアウォールを無効にすることで同じ問題を解決

Sudo service iptables stop
Sudo service ip6tables stop 

そして、あなたはiptables --list チェックする

[vagrant@c6401 ~]$ Sudo iptables --list
Chain INPUT (policy ACCEPT)
target     prot opt source               destination         

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination         

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination   
1
zhaoqing