如何从远程访问在 KVM-guest(虚拟网络)中运行的服务

如何从远程访问在 KVM-guest(虚拟网络)中运行的服务

背景:我正在 KVM-VM 内运行 Openshift 安装,我可以从 KVM-Host 访问 VM。我需要从另一台机器访问 Openshift。KVM 是通过使用 NAT 的虚拟网络设置的。

  • KVM主机:192.168.33.26(eth0)
  • KVM-Guest:192.168.100.246(virbr0 和 vnet0)
  • 访问自:192.168.33.50

我的第一个想法是在 KVM 主机上使用 iptables 进行端口转发。

# taken from https://aboullaite.me/kvm-qemo-forward-ports-with-iptables/

# connections from outside
iptables -I FORWARD -o virbr0 -d  192.168.100.246 -j ACCEPT
iptables -t nat -I PREROUTING -p tcp --dport 8443 -j DNAT --to 192.168.100.246:8443
iptables -t nat -A POSTROUTING -p tcp -d 192.168.100.246 --dport 8443 -j SNAT --to-source 192.168.33.26

# Masquerade local subnet
iptables -I FORWARD -o virbr0 -d  192.168.100.246 -j ACCEPT
iptables -t nat -A POSTROUTING -s 192.168.100.0/24 -j MASQUERADE
iptables -A FORWARD -o virbr0 -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A FORWARD -i virbr0 -o eth0 -j ACCEPT
iptables -A FORWARD -i virbr0 -o lo -j ACCEPT

这些规则似乎有效(Openshift 正在回答),但重定向到登录页面不受 iptables 的影响

https://192.168.33.26:8443/控制台-> 重定向至https://192.168.100.246:8443/oauth/授权而它应该是https://192.168.33.26:8443/oauth/授权

正如@week 指出的那样,重定向在应用程序层进行管理,我需要一个反向代理或一些路由。

有人可以提供 nginx 的配置吗 (我读到过它可以用作反向代理)?或者还有什么其他方法可以访问虚拟网络?

相关内容