我认为这不是通常的“主机名未解析”问题,并且我认为这与我下面讨论的服务无关:
- 我有一个安装了 Anaconda 的 jupyter notebook 的集群,该笔记本已启动,其端口也已启动。基本上,jupyter notebook 是在主机上运行的一项服务,用户可以从其工作站访问它。
- 要访问该服务,用户需要访问http://主机名:端口
- 在主机上,我可以使用http://本地主机:端口
- 在同一台主机上,当我尝试http://主机名:端口,我被拒绝并显示错误:无法连接到主机
我能够从我的工作站和同事的工作站 ping 主机。
那么这里到底出了什么问题?
非常感谢。任何提示都值得感激。
答案1
此类问题通常是因为该服务仅针对本地网络配置。
您可以通过在命令提示符中输入以下命令来检查这一点:
netstat -an
检查输出中具有 LISTENING 条目的带有您的端口号的条目。
如果它正在监听所有接口,它将有一个。或类似的,取决于它是在 IPv4 还是 IPv6 中监听,或者两种模式都监听。
如果是这种情况,则需要更改服务以使用所有接口。
答案2
首先,请验证服务器的端口开放情况。请从另一个工作站进行 telnet。
telnet 主机端口
如果这不起作用,请运行以下命令
sudo netstat -upant | grep <port>
应该有一个
tcp 0 0 0.0.0.0:<port> 0.0.0.0:* LISTEN
如果有 127.0.0.1 而不是 0.0.0.0,这就是出现此行为的原因
如果您可以看到 0.0.0.0 或主机的 IP 地址,请检查防火墙设置(Linux 中的 iptables)
因此,请更改服务的配置以监听任何接口或主机的特定接口。检查您的配置,可能只有一个适用于本地主机的配置。
我认为这个 URL 可以帮助您获取更多信息:-
http://jupyter-notebook.readthedocs.io/en/stable/public_server.html