使用 iptables 时上传速度极慢

使用 iptables 时上传速度极慢

我正在配置网络,并且需要仅允许某些 MAC 地址访问。

假设 eth0 和 eth1 是物理接口,eth1 连接外部网络,eth0 及其 vlan 位于内部网络中。

为了这个目的,我使用 Linux iptables,并且有以下默认配置代码。

# Allowing ip forwarding and loopback

echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -A INPUT -i lo -j ACCEPT

# Setting up nat and default chains settings

iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE
iptables -N FILTER
iptables -P FORWARD DROP

# Setting up default configuration

iptables -A FORWARD -p tcp -m conntrack --ctstate NEW -i eth0+ -o eth1 -j FILTER
iptables -A FORWARD -p tcp -m conntrack \
--ctstate RELATED,ESTABLISHED,DNAT,SNAT,INVALID -i eth0+ -o eth1 -j ACCEPT
iptables -A FORWARD ! -p tcp -i eth0+ -o eth1 -j ACCEPT
iptables -A FORWARD -i eth1 -o eth0+ -m state \
--state RELATED,ESTABLISHED -j ACCEPT

通过这样做,我将过滤所有状态为 NEW 的传入 tcp 流量,并允许其他状态的任何其他协议或 tcp 的所有流量。我使用以下规则处理这些过滤后的 tcp 请求

# Allowing tcp traffic with ctstate NEW for certain mac

iptables -A FILTER -p tcp -m conntrack --ctstate NEW -i eth0+ -o eth1 \ 
-m mac --mac-source <mac> -j ACCEPT

在测试环境下,使用此配置,允许的 MAC 可以以正常下载速度访问互联网,但上传速度几乎为零。我是不是忘记了什么?

答案1

解决此类问题的最佳方法是捕获流量并使用 进行分析wireshark

大多数情况下,速度问题都是由 MTU 问题引起的。MTU 问题可能是由ICMP所需的数据包被阻止引起的Path MTU discovery

粘贴完整的防火墙规则集。使用iptables-save -c命令列出所有规则,而不仅仅是从filter表中列出。

检查规则计数器。记住防火墙规则的顺序非常重要。

相关内容