Rails 4.2に割り当てられたポートにはアクセスできませんが、4.04は正常に動作します


8

Ruby 2.1.2とRails 4.2がインストールされています。

バンドルインストールはエラーなしで実行されます。

Rails Cはエラーなしで実行できます。

Rails s -p3004がwebrickまたはthinでエラーなしで起動する

mytestsite:3004 safari、firefox、およびchromeを参照すると、すべて「サーバーに接続できません」と報告されます。

システムログにエラーは表示されません。syslog、lfd.log、auth.log、または任意のApacheログ。

4.04サイトを起動すると、ポート3001、3002は正常に動作します。4.04を停止し、ポート3001または3002で4.2を起動すると、「サーバーに接続できません」エラーが発生します。これは、ポートをブロックしているファイアウォールの問題ではないことを意味しているようです。それにもかかわらず、iptables -Lはポート3004が開いていると報告します。

ACCEPT     tcp  --  anywhere             anywhere             ctstate NEW tcp dpt:3004

Railsレポート:

=> Booting WEBrick  
=> Rails 4.2.0.beta1 application starting in development on http://localhost:3004   
=> Run `rails server -h` for more startup options  
=> Ctrl-C to shutdown server  
[2014-09-02 21:31:06] INFO WEBrick 1.3.1  
[2014-09-02 21:31:06] INFO ruby 2.1.1 (2014-02-24) [x86_64-linux]  
[2014-09-02 21:31:06] INFO WEBrick::HTTPServer#start: pid=4599 port=3004  

(薄いと同じ結果)。

Telnet localhost 3004はサーバーから機能しますが、別のサーバーからポートおよびIPアドレスにtelnetすると接続が拒否されます。

そしてpsはプログラムがロードされたことを報告します:

ps aux|grep 3004  
user 1062 0.0 0.5 578600 183996 pts/2 Sl+ 20:15 0:03 /home/user/.rvm/rubies/ruby-    2.1.1/bin/ruby bin/rails s -p3004

これもnetstatによって確認されます。

netstat -tpln | grep 3004  
tcp 0 0 127.0.0.1:3004 0.0.0.0:* LISTEN 1062/ruby  

しかし、mmapはポートが閉じていると報告します:

Starting Nmap 6.40 ( http://nmap.org ) at 2014-09-02 21:33 UTC  
Nmap scan report for localhost (127.0.0.1)  
Host is up (0.000059s latency).  
rDNS record for 127.0.x.1: local_host.local_domain  
PORT STATE SERVICE  
3004/udp closed unknown  

そして、サーバー3004へのTelnetは、接続が拒否されたことを報告します。

言ったように、Rails 4.04で動作することがわかっているポート3001への変更が4.2で失敗することを除いて、ファイアウォールの問題だと思います。誰か提案はありますか?

回答:


16

WEBrickはINADDR_ANYではなく127.0.0.1にバインドされているため、そのアドレス経由でのみアクセスできます。バインド先のアドレスを設定する場合は、-bオプションを使用します。例えば:

rails s -b 0.0.0.0 -p 3004
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.