【问题标题】:Understanding iptables commands to limit outbound connection bandwidth [closed]了解 iptables 命令以限制出站连接带宽 [关闭]
【发布时间】:2015-10-30 14:09:13
【问题描述】:

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

【问题讨论】:

    标签: bash iptables bandwidth bitcoin


    【解决方案1】:

    让我们分解一下。

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

    这里的高级目标是在数据包上设置 0x2 标记。来自 GitHub 上的 cmets,该标记用于限制数据包。

    【讨论】:

    • 假设我有两个 bitcoind 实例在同一台机器上运行,但端口不同,例如 8333 和 8444,这样绑定到端口 8333 的 bitcoind 实例正在向端口 8444 发送一些数据,以上内容也会iptables 限制在这种情况下也有效?
    猜你喜欢
    • 2011-09-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-10-22
    • 1970-01-01
    • 1970-01-01
    • 2018-05-26
    相关资源
    最近更新 更多