假设我是服务器,我想查看特定MAC地址的下载和上传带宽。上传监控链。我使用的是:
iptables -N clientA_upload
,然后是iptables -A FORWARD -m mac --mac-source 00:11:22:33:44:55:66
,它工作得很好。
iptables -A FORWARD -m mac --mac-destination 00:11:22:33:44:55:66
,iptables不支持mac-destination。请帮帮我P/s:我只想通过MAC地址进行监控。不是ip地址。因为在android操作系统中。它不支持使用IP地址的字节计数。所以请帮帮我!
发布于 2013-07-25 02:43:08
没有--mac-destination
这回事。你必须使用move to ebtables for that。
发布于 2017-07-11 04:43:29
对于缺少的--mac-destination
,诀窍是将iptables --mac-source
与CONNMARK
结合使用
--mac-source
来匹配来自您感兴趣的mac地址的数据包。CONNMARK
来标记整个连接,即双向(!)现在,# lan interface
if_lan=eth0
# packets going to mac address will pass through this:
iptables -t mangle -N clientA_download
# mark connections involving mac address:
iptables -t mangle -A PREROUTING -i $if_lan -m state --state NEW -m mac --mac-source 00:11:22:33:44:55 -j CONNMARK --set-mark 1234
# match packets going to mac address:
iptables -t mangle -A POSTROUTING -o $if_lan -m connmark --mark 1234 -j clientA_download
最初我认为这只适用于源自局域网的tcp连接,但根据--state NEW
的定义,它应该在tcp和udp (!)两个方向上都有效。
有关计数器的信息,请参阅ipset
,它对此非常有用。
Policy Routing on Linux based on Sender MAC Address是这个答案的灵感来源。
发布于 2013-06-04 21:47:38
您混淆了下载和上传规则。
规则1: iptables -A FORWARD -m mac --mac-source 00:11:22:33:44:55:66
被附加到ipchain并检查转发链中的给定mac。
现在你需要在输入链中检查你的mac,所以不要在FORWARD
链中应用第二个规则,而是在INPUT
链中应用它:
规则2: iptables -I INPUT -m mac --mac-destination 00:11:22:33:44:55:66
https://stackoverflow.com/questions/15731364
复制相似问题