我在 VPS 和住宅网络连接上有 2 个公共 IP:
VPS =55.55.55.55
住宅 =66.66.66.66
所有这些操作都在 VPS 上完成Debian 11系统只需最少的改变。
我希望与外部公共部门建立联系55.55.55.55超过端口 8888注定66.66.66.66并让会话流量从 66.66.66.66 到55.55.55.55。
基本上我想在55.55.55.55但我不想让人们知道我的真实 IP,因为我打算使用66.66.66.66作为 IPS 安全性(尚未设置/安装)。
[VPS]
66.66.66.66
| |
| |
| |
----------------------- -----------------------
| |
55.55.55.55 Ex. 234.123.166.123
[Residential ISP Connection] [Internet]
据我所知,我运行了以下命令,它们应该可以工作,但似乎只接收了流量,没有转发。
## Clear all entries and add ssh
sudo iptables -P INPUT ACCEPT && \
sudo iptables -P FORWARD DROP && \
sudo iptables -P OUTPUT ACCEPT && \
sudo iptables -t nat -F && \
sudo iptables -t mangle -F && \
sudo iptables -F && \
sudo iptables -X && \
sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT && \
sleep 1 && \
sudo iptables-save
## Allow Traffic
sudo iptables -A INPUT -p tcp --dport 8888 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT
## Setup NAT
sudo iptables -t nat -A PREROUTING -i ens3 -p tcp --dport 20071 -j DNAT --to-destination 55.55.55.55:8888
sudo iptables -t nat -A POSTROUTING -p tcp -m tcp --dport 20071 -j SNAT --to-source 66.66.66.66
## Save
sudo iptables-save
再次,我可以看到端口进入的流量8888来自外部互联网,但没有留下任何东西,55.55.55.55防火墙没有收到任何来自66.66.66.66(当然除了 ssh)。
非常感谢。
答案1
iptables 的工作级别与反向代理不同 - 您的设置不会导致 VPS 本身接受 TCP 连接;它会在 IP 级别重定向各个数据包。(基本上,保存 NAT 规则的链被命名为“预路由”是有原因的......)
换句话说,应用 DNAT 的流量不再输入交通——它变成了转发流量。这意味着你的“输入”规则在这里无关紧要,你需要的是一条“转发”规则,允许数据包发送到新的 DNAT 目的地,以及另一条允许回复也从该主机发送。
目前,FORWARD
iptables 规则集中的整个表包括:
iptables -P FORWARD DROP
所以数据包无法转发。
一般来说,我不建议这样做;通常最好隧道数据包未经修改,这样您的主服务器就能够看到原始客户端 IP 地址(而不是认为所有连接都来自 VPS)。您可以使用纯文本隧道(例如 GRE)或加密隧道(例如 WireGuard 或 OpenVPN)。