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

Bash 了解iptables命令以限制出站连接带宽,bash,iptables,bandwidth,bitcoin,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

我在比特币源代码树中找到了以下代码片段,它被定义为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
源文件:

我们来分析一下

  • -t mangle
    :正在更改的表
  • -输出
    :将此规则附加到输出链
  • -p tcp
    :协议是tcp
  • -m tcp
    :加载tcp模块(这会随着-p自动发生,因此这是多余的)
  • -(d|s)端口8333
    :目标|源端口是8333-d${LOCALNET}:目标不在本地网络中
  • -j标记
    :跳转到标记表(需要--set标记)
  • --设置标记0x2
    :在数据包上设置一个标记,由其他对象处理

这里的高层目标是在数据包上设置0x2标记。从GitHub上的评论来看,该标记用于限制数据包。

假设我有两个比特币实例在同一台机器上运行,但端口不同,例如8333和8444,绑定到端口8333的比特币实例正在向端口8444发送一些数据,那么上述iptables限制在这种情况下也会起作用吗?