我有一台远程机器,它实际上只是本地网络中的一台机器。我在这台机器上运行 Jupyter Notebook,我总是能够通过 URL 访问它,例如http://192.168.111.242/?token=asdfghjkl
但是,最近这对我来说不起作用,我必须做的是用户端口转发才能使其工作:
ssh -f username@name -L PORT:localhost:PORT -N
否则,访问http://192.168.111.242/?token=asdfghjkl会在我的浏览器中给我一个ERR_CONNECTION_REFUSED
。
我不太明白为什么必须在这里转发端口。
可能是什么原因?
答案1
默认情况下,jupyter 仅绑定到 localhost 接口,因此只能通过连接到 来从本地计算机使用它127.0.0.1
。如果要使其在网络上可用,则必须告诉它监听计算机的外部 IP 地址,或者简单地监听所有可用的 IP 地址:
jupyter notebook --ip='*' --no-browser
这样,您就不需要创建端口转发来访问您的 jupyter 笔记本。
但是,请记住,使用 ssh 隧道可能比让 jupyter 监听您的网络更安全。此外,通过 ssh 隧道的连接将被加密,而与 jupyter 的直接连接很可能不会被加密。这很大程度上取决于您对网络的信任程度。如果不是 100% 可信,请考虑使用 ssh 隧道解决方案。