Emacs 使IPython笔记本仅接受来自给定地址/子网的连接

Emacs 使IPython笔记本仅接受来自给定地址/子网的连接,emacs,ipython,Emacs,Ipython,我正在远程机器上运行笔记本服务器,希望以某种方式保护它。不幸的是,我不能使用密码验证(因为如果我这样做,那么我就不能使用ein,一个用于ipython笔记本电脑的emacs软件包) 另一个显而易见的解决方案是让IPython笔记本只接受来自本地机器ip的连接,但似乎没有常规的方法使用IPython配置来实现这一点。也许我错过了什么 或者也许有其他方法来实现我的目标 更新:这里有一个关于它的错误发布到EIN跟踪器: 更新2:多亏了millejoh(eindeveloper),现在ein应该可以使用

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

另一个显而易见的解决方案是让IPython笔记本只接受来自本地机器ip的连接,但似乎没有常规的方法使用IPython配置来实现这一点。也许我错过了什么

或者也许有其他方法来实现我的目标

更新:这里有一个关于它的错误发布到EIN跟踪器:


更新2:多亏了millejoh(
ein
developer),现在
ein
应该可以使用密码保护的笔记本电脑,所以这个问题不再是实际问题。谢谢大家的回复

我在ipython网站上没有找到任何关于其他身份验证方式的信息,那么你就可以有权利了。
这里有一些关于ipython trust的信息。也许这对您来说就足够了。

您可以将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配置:


对于阻止IP:

在远程机器端执行如何?使笔记本服务器在给定端口上运行,并设置该端口的设置,以便该端口仅接受来自本地计算机IP的连接。那么你甚至不需要玩ipython配置。这是个好主意,谢谢!这部分解决了我的问题。部分原因——除了主桌面之外,有时我通过动态分配IP的vpn从笔记本电脑连接到IPython计算机(我没有配置vpn的权限)。vpn与IPython服务器是同一网络的一部分吗?它们位于不同的子网中,但是这两者都在公司内部网络中。那么,也许有一种方法可以允许除了主桌面之外的整个公司内部网络。这在某种程度上取决于你想保护它不受谁的伤害。