如何通过内部IP打开?

(免责声明:我自己并没有这样运行过 Rails——我使用的是基于 Docker 的开发环境(Install Discourse for development using Docker

你确定是这样吗?我之前就曾遇到过类似情况,因为我的浏览器缓存了 Discourse 应用,即使服务器进程没有运行,它仍然允许我在不同主题之间浏览。你不妨改用 curl 来测试一下:

curl http://localhost:3000

你也可以检查一下是否有 ruby 进程在运行:

ps -ef | grep ruby

netstat 工具可以告诉你哪些进程正在监听哪些端口。例如,如果我这样运行一个简单的 Python Web 服务器:

$ python3 -m http.server 8099
Serving HTTP on 0.0.0.0 port 8099 (http://0.0.0.0:8099/) ...

然后运行 netstat

$ netstat -tlp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address    Foreign Address   State    PID/Program name
tcp        0      0 0.0.0.0:8099     0.0.0.0:*         LISTEN   2511478/python3
...

这会告诉我 PID 为 2511478 的进程正在所有接口(0.0.0.0 表示“所有接口”)的 8099 端口上监听。要获取关于该进程的更多信息,可以运行:

$ ps -fp 2511478
UID          PID    PPID  C STIME TTY          TIME CMD
simon    2511478 1250783  0 09:53 pts/11   00:00:00 python3 -m http.server 8099