使IPython Notebook仅接受来自给定地址/子网的连接

时间:2015-06-04 07:15:54

标签: emacs ipython

我在远程计算机上运行Notebook服务器并希望以某种方式保护它。不幸的是我不能使用密码验证(因为如果我这样做,那么我就不能使用ein,一个用于ipython笔记本的emacs包。)

另一个明显的解决方案是让IPython Notebook只接受来自我本地机器的ip的连接,但似乎没有常规方法可以使用ipython配置。也许我错过了什么?

或许还有另一种方法来实现我的目标?

更新:这是关于它发布到EIN跟踪器的错误:https://github.com/millejoh/emacs-ipython-notebook/issues/57

UPDATE2:感谢millejoh(ein开发人员),现在ein应该使用受密码保护的笔记本电脑,所以问题不再是实际问题了。谢谢大家的回复!

2 个答案:

答案 0 :(得分:1)

You can set the port for iPython to a port that will only be used by iPython. And then restrict access to that port to only you local machine's IP.

To set the port:

Edit the ipython_notebook_config.py file and insert or edit the line:

c.NotebookApp.port = 7777

where you change 7777 to the port of your choice.

Assuming the remote machine in Linux. You can then use iptables to block access to that port except from your local machine:

iptables -I INPUT \! --src 1.2.3.4 -m tcp -p tcp --dport 7777 -j DROP  # if it's not 1.2.3.4, drop it

where you change 1.2.3.4 to your local ip and 7777 to the port you have iPython working on.

Sources:

For iPython configs: Docs

For blocking IPs : StackExchange cyberciti

答案 1 :(得分:0)

我在ipython网站上没有找到任何关于其他身份验证方式的信息,那么你就可以了。 这里http://ipython.org/ipython-doc/3/notebook/security.html是关于ipython信任的东西。也许这对你来说已经足够了。