##事象
「rails s -b 0.0.0.0」で起動したWebサーバにアクセスできない。
サーバのブラウザからは「localhost:3000」でアクセスできる。しかしLAN上の別PCから「<サーバIPアドレス>:3000」でアクセスできない。
##環境
OS: CentOS7
ruby: 2.5.1
rails: 5.1.6
##原因
ファイヤーウォールによってサーバの3000番ポートが閉じられていたため。
##対処
以下のコマンドで3000番ポートを開ける。
$ firewall-cmd --add-port=3000/tcp
##余談
ファイヤーウォールの設定は、CentOS7からはiptablesコマンドの代わりにfirewall-cmdコマンドを使う。以下のとおり、httpは許可しているのに、なぜアクセスできないのか悩んでいたが、これは80番ポートを開けているだけのようだ。
$ firewall-cmd --list-services
ssh dhcpv6-client http https