使用代理或 iptables 重定向流量的最简单方法是什么?

使用代理或 iptables 重定向流量的最简单方法是什么?

我需要将端口 7777 上的所有传入流量重定向到特定的 destination_ip:port。

我有大约 40 个莱特币 (scrypt) 采矿设备,每次我想切换硬币或矿池时,我都必须手动重新配置它们。相反,我希望能够修改代理盒上的目标地址来引导农场。

我目前正在使用 Dante 代理,它有一个看起来很完美的重定向模块。然而我没有 400 美元可以花在这个模块上。此外,Dante 似乎每次连接都会占用大量内存。

另外,我没有使用代理,而是尝试使用 iptables 作为解决方案,但收到错误:

root@xx:~# iptables -t nat -A PREROUTING -p tcp -d x.x.x.x --dport 7777 -j DNAT --to x.x.x.x:7777
root@xx:~# iptables -t nat -A POSTROUTING -d x.x.x.x -j MASQUERADE
iptables: No chain/target/match by that name.

我无法让它发挥作用,我也不确定这是否能成为我所追求的解决方案。

任何关于如何最好地实现我想要的结果的想法都会很棒!

答案1

尝试这个,

iptables -t nat -A PREROUTING -p tcp -d x.x.x.x --dport 7777 -j DNAT --to-destination y.y.y.y:port

您需要提供指定为参数的目的地和端口to-destination

答案2

编辑:如果您做了一些“脏”更改(您尝试了不起作用的事情),请重新启动 iptables 以清理它们。如果您保存了更改,即使它们不起作用,那么您应该-D在尝试添加更多规则之前清除这些规则(使用选项)。


首先,确保您接受传入的数据包:

iptables -A INPUT -p tcp --dport 7777 -j ACCEPT

然后重定向流量(考虑-I,在开头插入规则;有时比将规则附加到链中更好):

iptables -A PREROUTING -t nat -p tcp --dport 7777 -j DNAT --to-destination <destination_ip>:<destitation_port>

您可以检查刚刚添加的规则(您应该看到类似的内容DNAT [...] tcp dpt:7777 to:<destination_ip>:<destitation_port>,并且可能您不应该看到PREROUTING与该特定端口相关的链中的其他规则):

iptables -L -n -t nat

如果一切正常,请务必记住保存您的更改(否则,您将在重新启动后丢失规则):

service iptables save

相关内容