目前我正在部署一个虚拟化系统,在转发 UDP 端口时遇到问题。我尝试了很多教程,但一定出了问题,我不知道为什么连接总是被拒绝。所有使用的机器上的防火墙都已禁用。
我的设置如下:
我有一个带有 kvm 的 debian 服务器,可托管 2 个虚拟机。
VM1 192.168.122.215/24 位于 enp1s0(ubuntu 18.04)VM2 192.168.122.104/24 位于 ens2(ubuntu 16.04)
在 VM1 上,docker 部署正在运行:192.168.70.129/26 at docker-adp-1
目标是通过端口 2152 上的 UDP 从 VM2 连接到 docker 部署(从 192.168.122.104 到 192.168.70.129:2152)。
该docker部署由多个微服务组成,运行正常(VM2可以通过TCP与VM1 docker部署上的各种服务进行通信)。
在 VM2 上我使用以下路由:
sudo ip route add 192.168.70.128/26 via 192.168.122.215 dev ens2
在 VM1 上我使用以下规则:
sudo sysctl net.ipv4.conf.all.forwarding=1
sudo iptables -P FORWARD ACCEPT
从现在的教程中,我在 VM1 上尝试了几次 PRE-/POSTROUTING,例如(但没有成功):
sudo iptables -t nat -A PREROUTING -p udp -i enp1s0 -d 192.168.122.215 --dport 2152 -j DNAT --to-destination 192.168.70.129:2152
sudo iptables -A FORWARD -i enp1s0 -p udp -d 192.168.122.215 --dport 2152 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
sudo iptables -A FORWARD -i demo-oai -p udp -d 192.168.70.129 --dport 2152 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
希望有人能帮忙。谨致问候