了解iptables命令以限制出站连接带宽

时间:2015-10-30 05:54:37

标签: bash iptables bandwidth bitcoin

我在比特币源代码树中找到了以下代码片段,该代码片段被定义为bash脚本的一部分,用于控制端口8333上的出站连接。有人可以解释一下命令的确切工作情况。

iptables -t mangle -A OUTPUT -p tcp -m tcp --dport 8333 ! -d ${LOCALNET} -j MARK --set-mark 0x2
iptables -t mangle -A OUTPUT -p tcp -m tcp --sport 8333 ! -d ${LOCALNET} -j MARK --set-mark 0x2

源文件:https://github.com/bitcoin/bitcoin/blob/ad57b310bac44a7e470cf66276421f2bbc61b1f0/contrib/qos/tc.sh

1 个答案:

答案 0 :(得分:0)

让我们打破这一点。

  • -t mangle:正在更改的表格
  • -A OUTPUT:将此规则附加到OUTPUT链
  • -p tcp:protocol is tcp
  • -m tcp:加载TCP模块(这会自动发生-p,因此这是多余的)
  • --(d|s)port 8333:目的地|源端口是8333! -d $ {LOCALNET}:目标不在本地网络中
  • -j MARK:跳转到MARK表(--set-mark所需)
  • --set-mark 0x2:在数据包上设置一个标记,由其他内容处理

此处的高级目标是在数据包上设置0x2标记。根据对GitHub的评论,该标记用于限制数据包。