Python jupyter笔记本的iptables规则

Python jupyter笔记本的iptables规则,python,jupyter-notebook,jupyter,firewall,iptables,Python,Jupyter Notebook,Jupyter,Firewall,Iptables,jupyter笔记本的iptables设置有问题。根据以下规则(假设笔记本端口8888),jupyter笔记本服务器将成功启动,但实际的笔记本内核将无法启动/建立 通过注释掉最后一条iptables规则“-A OUTPUT-j DROP”,一切正常 有什么想法吗 -A INPUT -p tcp -m state --state NEW,ESTABLISHED --dport 8888 -j ACCEPT -A INPUT -p tcp -m state --state ESTABLISHED -

jupyter笔记本的iptables设置有问题。根据以下规则(假设笔记本端口8888),jupyter笔记本服务器将成功启动,但实际的笔记本内核将无法启动/建立

通过注释掉最后一条iptables规则“-A OUTPUT-j DROP”,一切正常

有什么想法吗

-A INPUT -p tcp -m state --state NEW,ESTABLISHED --dport 8888 -j ACCEPT
-A INPUT -p tcp -m state --state ESTABLISHED --sport 8888 -j ACCEPT
-A OUTPUT -p tcp -m state --state ESTABLISHED --sport 8888 -j ACCEPT 
-A OUTPUT -p tcp -m state --state NEW,ESTABLISHED --dport 8888 -j ACCEPT
-A INPUT -j DROP
-A OUTPUT -j DROP

像jupyter这样的工具通常使用环回设备(localhost)来访问某些功能。例如,jupyter有一个通过HTTP与笔记本服务器通信的前端,笔记本服务器通过套接字将消息发送到IPython内核(请参阅:)

我想补充以下规则:

sudo iptables-A输入-i本地-j接受
sudo iptables-A输出-o本地-j接受

这些规则允许在环回设备(本地主机)之间输入和输出。

以上答案是正确的解决方案。尽管指向的文档已被破坏,但有关Jupyter客户端与IPython内核通信的当前文档在此更新:

此外,这是添加iptable规则的正确顺序,适用于任何遇到此问题的人:

iptables -A INPUT -p tcp -m state --state NEW,ESTABLISHED --dport 8888 -j ACCEPT
iptables -A INPUT -p tcp -m state --state ESTABLISHED --sport 8888 -j ACCEPT
iptables -A OUTPUT -p tcp -m state --state ESTABLISHED --sport 8888 -j ACCEPT
iptables -A OUTPUT -p tcp -m state --state NEW,ESTABLISHED --dport 8888 -j ACCEPT
iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT
iptables -A INPUT -j DROP
iptables -A OUTPUT -j DROP

iptable规则以链的形式存在。传入、传出和传递数据包在相应链中一次检查一条规则,并根据匹配的第一条规则进行处理。通过上述排序,具有环回地址的数据包可以自由通过,但所有其他流量都被阻止。这将阻止pip安装、apt更新、telnet、netcat等。我仍然遇到与OP相同的问题。它起作用了,我不得不重新订购规则链