IPTABLES - 通过不同网络上的另一个 IP 路由所有传入的 IP 请求

IPTABLES - 通过不同网络上的另一个 IP 路由所有传入的 IP 请求

我需要 iptables 的帮助来允许所有请求来自一个 IP。

服务器1 IP : 1.1.1.1 [专用服务器]

服务器2 IP : 2.2.2.2. [VPS 服务器]

两台服务器都运行 Ubuntu,并且不在同一网络上。

我在 Server1 的 1234 端口上运行服务。我希望所有流量仅从 server2 进入 server1。并且,如果 Server1 直接收到请求,而不是终止/丢弃请求,是否可以由 server1 将请求转发给 Server2,然后由 server2 将其发送给 server1。

在 Server2 上我有:

echo 1 | sudo tee /proc/sys/net/ipv4/ip_forward 
iptables -t nat -A PREROUTING -p tcp --dport 1234 -j DNAT --to-destination 1.1.1.1:1234
iptables -t nat -A POSTROUTING -j MASQUERADE

在运行该服务的 Server1 上,我有:

echo 1 | sudo tee /proc/sys/net/ipv4/ip_forward 
iptables -I INPUT -p tcp -s 2.2.2.2 --dport 1234 -j ACCEPT

Server2 正在将请求成功重定向到 Server1。您能帮助我使用 Server1 的 iptables 命令,将所有其他传入 IP 请求路由到 server2 吗?

谢谢。

答案1

你的问题不清楚?

我不明白你到底想要什么

但我得到的信息是你有两台服务器,并且在服务器 1 上有一个正在运行的服务

您只需要从 server2 访问此服务,而不需要直接访问 server1,如下所示:

request --> 1.1.1.1:1234 (drop)
request --> 2.2.2.2:1234 --> 1.1.1.1:1234 (accept)

为此,您需要遵循以下规则:

服务器1:

接受来自 2.2.2.2 到端口 1234 的传入流量

丢弃到端口 1234 的其他传入流量

iptables -I INPUT -p tcp -s 2.2.2.2 --dport 1234 -j ACCEPT
iptables -I INPUT -p udp -s 2.2.2.2 --dport 1234 -j ACCEPT

iptables -I INPUT -p tcp -s 0.0.0.0/0 --dport 1234 -j DROP
iptables -I INPUT -p udp -s 0.0.0.0/0 --dport 1234 -j DROP

服务器2:

重定向规则:

echo 1 | sudo tee /proc/sys/net/ipv4/ip_forward 
iptables -t nat -A PREROUTING -p tcp --dport 1234 -j DNAT --to-destination 1.1.1.1:1234
iptables -t nat -A POSTROUTING -j MASQUERADE

相关内容