无法访问分配给 Rails 4.2 的端口,但 4.04 可以正常工作

无法访问分配给 Rails 4.2 的端口,但 4.04 可以正常工作

我安装了 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 从服务器运行,但是从另一台服务器 telnet 到端口和 IP 地址会导致连接被拒绝。

并且 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 报告连接被拒绝。

就像我说的,我认为这是一个防火墙问题,只是更改为端口 3001(我知道该端口在 Rails 4.04 上可以正常工作)在 4.2 上会失败。有人有什么建议吗?

答案1

WEBrick 绑定到 127.0.0.1 而不是 INADDR_ANY,因此您只能通过该地址访问它。如果您想设置它绑定到哪个地址,请使用该-b选项。例如:

rails s -b 0.0.0.0 -p 3004

相关内容