個人の戒めとしてメモっておく
Vagrantfile
config.vm.network :forwarded_port, guest: 4567, host: 4567, auto_correct: true, id: "http"
config.vm.network :private_network, ip: "192.168.33.11"
問題なし。
仮想(Vagrant)側の確認
とりあえず、rails 5.0.0のアプリを起動
./bin/rails s -b 0.0.0.0 -p 4567
- ポートフォワーディングでやっている4567ポートで動かしている
- bindも0.0.0.0でやっている
問題ない。
netstatでちゃんとLISTENできているか確認
netstat -tanp | grep LISTEN
を実行すると
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1304/sshd
tcp 0 0 0.0.0.0:4567 0.0.0.0:* LISTEN 3827/puma 3.6.2 (tc
tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 1391/master
tcp 0 0 :::22 :::* LISTEN 1304/sshd
tcp 0 0 ::1:25 :::* LISTEN 1391/master
4567port開いてる。問題ない。
ホスト(Mac)側の確認
こちらでもportが開いてるか確認
lsof -i -P | grep "LISTEN"
VirtualBo 29393 hogehoge 33u IPv4 0x4094c6847ecc57b 0t0 TCP *:4567 (LISTEN)
VirtualBo 29393 hogehoge 35u IPv4 0x4094c684755cc83 0t0 TCP localhost:2222 (LISTEN)
開いている。問題ない。
telnetを使って接続確認
telnet localhost 4567
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
入れる。つながっている。
別のターミナル立ち上げて、tcpdumpを使って、反応が見れるか確認。
sudo tcpdump -i all port 4567
んで、telnet接続中に以下を記入。
GET / HTTP/1.0
tcpdump反応せず。
何が問題なんだ?
- ポートフォワーディングはできている
- 設定ファイルも問題ない
- ゲスト側にリクエストが到達していない?
解決
service iptables stop
1日詰まった挙句、Firewallでした。