gem install rails でインストールして rails new → rails server すれば起動というのはもう省略しときます。
[sugimura@guest1 sample]$ rails server
=> Booting WEBrick
=> Rails 4.2.0 application starting in development on http://localhost:3000
=> Run `rails server -h` for more startup options
=> Ctrl-C to shutdown server
[2015-01-23 12:07:08] INFO WEBrick 1.3.1
[2015-01-23 12:07:08] INFO ruby 2.2.0 (2014-12-25) [x86_64-linux]
[2015-01-23 12:07:08] INFO WEBrick::HTTPServer#start: pid=11897 port=3000
問題なのはfirewallですね。iptables の上に firewalld というのがかぶさっているようです。まずは firewalld が動いていることを確認。
[root@guest1 ~]# systemctl status firewalld
firewalld.service - firewalld - dynamic firewall daemon
Loaded: loaded (/usr/lib/systemd/system/firewalld.service; enabled)
Active: active (running) since Thu 2015-01-22 15:05:23 JST; 24h ago
Main PID: 535 (firewalld)
CGroup: /system.slice/firewalld.service
└─535 /usr/bin/python -Es /usr/sbin/firewalld --nofork --nopid
Jan 22 15:05:23 localhost.localdomain systemd[1]: Started firewalld - dynamic...
Hint: Some lines were ellipsized, use -l to show in full.
[root@guest1 ~]#
設定は firewall-cmd で行います。
[root@guest1 ~]# firewall-cmd --list-all
public (default, active)
interfaces: eth0
sources:
services: dhcpv6-client ssh
ports:
masquerade: no
forward-ports:
icmp-blocks:
rich rules:
この services に追加していくみたいですね。定義ファイルに書いてから追加のようです。/usr/lib/firewalld/services/ 以下にXMLで作ります。ここでは rails-webrick.xml として 3000/tcp を定義するように作ってみました。
[root@guest1 ~]# cat /usr/lib/firewalld/services/rails-webrick.xml
Ruby on Rails (WEBrick)
Ruby on Rails (WEBrick)
[root@guest1 ~]#
定義ファイルを書いたら、reload すると一覧に出てきます。
[root@guest1 ~]# firewall-cmd --reload
success
[root@guest1 ~]# firewall-cmd --get-services
amanda-client bacula bacula-client dhcp dhcpv6 dhcpv6-client dns ftp high-availability http https imaps
ipp ipp-client ipsec kerberos kpasswd ldap ldaps libvirt libvirt-tls mdns mountd ms-wbt mysql nfs ntp
openvpn pmcd pmproxy pmwebapi pmwebapis pop3s postgresql proxy-dhcp radius rails-webrick rpc-bind samba
samba-client smtp ssh telnet tftp tftp-client transmission-client vnc-server wbem-https
[root@guest1 ~]#
有効にしてみます。
[root@guest1 ~]# firewall-cmd --add-service=rails-webrick --permanent
success
[root@guest1 ~]# firewall-cmd --reload
success
[root@guest1 ~]# firewall-cmd --list-service
dhcpv6-client rails-webrick ssh
[root@guest1 ~]#
iptables でも確認することができます。
[root@guest1 ~]# iptables -L -n
Chain INPUT (policy ACCEPT)
...
INPUT_ZONES all -- 0.0.0.0/0 0.0.0.0/0
...
Chain INPUT_ZONES (1 references)
target prot opt source destination
IN_public all -- 0.0.0.0/0 0.0.0.0/0 [goto]
IN_public all -- 0.0.0.0/0 0.0.0.0/0 [goto]
...
Chain IN_public (2 references)
target prot opt source destination
IN_public_log all -- 0.0.0.0/0 0.0.0.0/0
IN_public_deny all -- 0.0.0.0/0 0.0.0.0/0
IN_public_allow all -- 0.0.0.0/0 0.0.0.0/0
...
Chain IN_public_allow (1 references)
target prot opt source destination
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:22 ctstate NEW
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:3000 ctstate NEW
...
ここまで設定できれば、ブラウザからアクセスしてみるといつものWEBrickの画面になることが確認できるかと思います。
(参考文献)