我需要 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