首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用IPTABLES的MAC地址的字节计数器

使用IPTABLES的MAC地址的字节计数器
EN

Stack Overflow用户
提问于 2013-04-01 00:01:52
回答 3查看 3.7K关注 0票数 2

假设我是服务器,我想查看特定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地址的字节计数。所以请帮帮我!

EN

回答 3

Stack Overflow用户

发布于 2013-07-25 02:43:08

没有--mac-destination这回事。你必须使用move to ebtables for that

票数 1
EN

Stack Overflow用户

发布于 2017-07-11 04:43:29

对于缺少的--mac-destination,诀窍是将iptables --mac-sourceCONNMARK结合使用

  • 首先使用--mac-source来匹配来自您感兴趣的mac地址的数据包。
  • 使用CONNMARK来标记整个连接,即双向(!)现在,
  • 使用连接标记检查另一个方向的数据包。

代码语言:javascript
运行
复制
# 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是这个答案的灵感来源。

票数 1
EN

Stack Overflow用户

发布于 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

票数 -2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15731364

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档