为什么添加 iptables 规则后内容加载时间变长?

为什么添加 iptables 规则后内容加载时间变长?

我在我的 Ubuntu PC 中添加了 iptables 规则,并将一些网站列入白名单,其余网站均被阻止。当我尝试浏览白名单网站时,内容加载时间非常长,并且无法加载图像和视频。您能告诉我问题出在哪里吗?

#!/bin/sh
# Allow loopback

iptables -P INPUT DROP
iptables -P OUTPUT DROP

iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT

iptables -A OUTPUT -p udp --dport 53 -j ACCEPT
iptables -A OUTPUT -p tcp --dport 53 -j ACCEPT
iptables -A INPUT  -p udp --sport 53 -j ACCEPT
iptables -A INPUT  -p tcp --sport 53 -j ACCEPT

## client: ==
iptables -A OUTPUT -p udp --sport 53 -j ACCEPT
iptables -A OUTPUT -p tcp --sport 53 -j ACCEPT
iptables -A INPUT  -p udp --dport 53 -j ACCEPT
iptables -A INPUT  -p tcp --dport 53 -j ACCEPT

iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT

#facebook
iptables -A OUTPUT -d facebook.com -j ACCEPT
iptables -A INPUT -d facebook.com -j ACCEPT

#youtube 
iptables -A OUTPUT -d youtube.com -j ACCEPT
iptables -A INPUT -d youtube.com -j ACCEPT

#stackoverflow
iptables -A OUTPUT -d stackoverflow.com -j ACCEPT
iptables -A INPUT -d stackoverflow.com -j ACCEPT

答案1

这些网站的所有媒体内容并不托管在同一个顶级域名上,而是托管在许多子域名、二级域名和 CDN 上。例如,您需要加入白名单graph.facebook.com(与 不同facebook.com!)才能真正看到 Facebook 动态消息中的内容。Youtube 加载来自 的视频*.googlevideo.com、来自 的图片*.ytimg.com等等。还有更多内容,但简单地说,iptables 不是完成这项工作的合适工具。

简而言之,您实际上阻止的内容远比您想象的要多,并且通过 iptables 将网站列入白名单对于一般的网络使用来说过于简单 - 特别是在处理像 Youtube、Facebook 和许多其他大型网站时。

为了更好地了解后台发生的所有连接,我建议您尝试使用浏览器的 uMatrix 扩展:它可以让您很好地了解网站正在尝试建立的所有连接,甚至允许您控制允许哪些连接、阻止哪些连接等等。

或者,您可能想设置自己的Pi-Hole DNS 服务器然后从那里开始。这可能是您最好的方法。

相关内容