Bash 了解iptables命令以限制出站连接带宽
我在比特币源代码树中找到了以下代码片段,它被定义为bash脚本的一部分,用于控制端口8333上的出站连接。有人能给我解释一下命令的具体工作原理吗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
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
:将此规则附加到输出链-输出
:协议是tcp-p tcp
:加载tcp模块(这会随着-p自动发生,因此这是多余的)-m tcp
:目标|源端口是8333-d${LOCALNET}:目标不在本地网络中-(d|s)端口8333
:跳转到标记表(需要--set标记)-j标记
:在数据包上设置一个标记,由其他对象处理--设置标记0x2
这里的高层目标是在数据包上设置0x2标记。从GitHub上的评论来看,该标记用于限制数据包。假设我有两个比特币实例在同一台机器上运行,但端口不同,例如8333和8444,绑定到端口8333的比特币实例正在向端口8444发送一些数据,那么上述iptables限制在这种情况下也会起作用吗?