有没有人能回答我下面的问题:
我在路由器后面有一台ubuntu服务器,ubuntu服务器ip是静态分配给我的192.168.1.100。Docker运行在ubuntu服务器上。
我已经设置了路由的端口转发,这样我就可以远程ssh访问ubuntu服务器。我在路由器后面的另一台计算机上进行了测试,可以通过192.168.1.100:8888成功访问坞站上的jupyter笔记本。
但是,当我尝试从路由器外部的计算机访问时,我无法访问jupyter笔记本。我可以问一下我应该使用什么IP,或者我如何从外部访问?
谢谢。

发布于 2017-03-28 14:37:12
最简单和最安全的方法可能是创建一个SSH隧道-这样你就不必将你的Jupyter服务器暴露在公共互联网上。
在Putty中的Connection -> SSH -> Tunnels选项卡下,输入以下内容:
source-port: 8888
destination-port: 192.168.1.100:8888单击add,然后像正常一样启动会话。现在,您的客户机的端口8888将被隧道传输到服务器的端口8888。您可以通过在服务器上运行nc -l -p 8888并在客户端浏览器中输入http://localhost:8888来检查这是否有效。然后,请求应该显示在服务器上。
为了让它与Jupyter而不是netcat一起工作,你可能需要设置一些options,因为当涉及到非本地连接时,Jupyter是非常挑剔的:
# Allow connections to come from anywhere
c.NotebookApp.allow_origin = '*'
# Allow connections to refer to the server however they want to
c.NotebookApp.ip = '*'您还应该确保在Jupyter中启用了某种访问控制,否则任何能够访问客户端端口8888的人都将能够访问Jupyter。
https://stackoverflow.com/questions/43058962
复制相似问题