2015-06-04 32 views
1

我在远程计算机上运行Notebook服务器,并想以某种方式保护它。不幸的是,我不能使用密码认证(因为如果我这样做,那么我不能使用ein,ipython笔记本的emacs包)。使IPython Notebook只接受来自给定地址/子网的连接

另一个显而易见的解决方案是让IPython Notebook只接受来自本地机器ip的连接,但似乎没有通过ipython configs来执行此操作的常规方法。也许我错过了什么?

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

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

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

+1

什么做它在远程机器上的一面呢? 使Notebook服务器在给定端口上运行,并设置该端口的设置,以便该端口只接受来自本地计算机IP的连接。那么你甚至不需要玩ipython配置。 –

回答

1

您可以将iPython的端口设置为仅由iPython使用的端口。 然后将对该端口的访问限制为只有本地计算机的IP。

设置端口:

编辑ipython_notebook_config.py文件,插入或编辑该行:

c.NotebookApp.port = 7777 

,你改变7777到您选择的端口。

假设Linux中的远程机器。然后,您可以使用iptables来阻止访问端口,除了从本地机器:

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 

,你改变1.2.3.4到本地ip和7777至你的IPython工作的端口。

来源:

对于IPython的CONFIGS:Docs

阻止IP地址:StackExchangecyberciti

+0

这是一个好主意,谢谢!它部分解决了我的问题。部分 - 因为除了主桌面之外,有时我会通过带有动态分配IP的vpn从笔记本电脑连接到IPython机器(并且我没有配置vpn的权限)。 – krvkir

+0

与iPython服务器是同一网络的VPN部分吗? –

+0

它们位于不同的子网中,但都位于企业内部网络内部。 – krvkir