使 IPython 笔记本仅接受来自给定 address/subnet 的连接

Make IPython Notebook accept connections only from given address/subnet

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

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

或者有其他方法可以实现我的目标?

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

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

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

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

用于阻止 IP:StackExchange cyberciti