我有环回 IP127.0.a.b
和远程(非公共)IPx.x.x.x
我需要在我的 ubuntu 机器上实现流量“转发”,这样所有来/去的流量都x.x.x.x:9092
将被重定向到127.0.a.b:9092
.
根据我的理解,做nc -zv x.x.x.x 9092
应该是成功的(这就是我要测试转发的方式)
我正在尝试使用 iptables 来实现这一点。这是我尝试过的,但这不起作用
./fw_helper.sh xxxx 127.0.ab 9092
#!/bin/bash
src_ip=$1
dst_ip=$2
port=$3
sudo iptables -X
sudo iptables -F
sudo iptables -t nat -F
sudo bash -c 'echo 1 > /proc/sys/net/ipv4/ip_forward'
sudo iptables -A FORWARD -p tcp -s $src_ip --sport $port -d $dst_ip --dport $port -j ACCEPT
sudo iptables -A FORWARD -p tcp -s $dst_ip --sport $port -d $src_ip --dport $port -j ACCEPT
sudo iptables -t nat -A PREROUTING -p tcp -s $src_ip --sport $port --dport $port -j DNAT --to-destination $dst_ip
sudo iptables -t nat -A POSTROUTING -p tcp -d $dst_ip --sport $port --dport $port -j MASQUERADE
sudo iptables -A INPUT -p tcp --sport $port --dport $port -d $dst_ip -s $src_ip -j ACCEPT
我做错了什么?
您应该在 lo 接口上配置 127.0.ab,并在 127.0.ab:9092 上侦听一些软件。
你只需要一条规则
和
如果不起作用,请添加第二条规则
所以用 1 条 iptables 线解决了问题
sudo iptables -t nat -A OUTPUT -d 10.249.68.185 -j DNAT --to-destination 127.0.14.8