主机有一个可用的外部IP,因此我使用NAT设置我的KVM来宾.
如何设置端口转发以将来自外部的一些请求转发给来宾?
我找不到任何关于此的文件.最接近的答案可能是this answer,但后来也提到在libvirt 0.8.3中有更简单的方法可以做到这一点.有谁知道更新的方法来做到这一点?
这是使用钩子脚本(
source)设置端口转发的更好方法.
在/ etc / libvirt / hooks / qemu中:
#!/bin/sh GUEST_NAME= HOST_PORT= GUEST_IPADDR= GUEST_PORT= if [ "$1" = "$GUEST_NAME" ]; then if [ "$2" = start ]; then iptables -t nat -A PREROUTING -p tcp --dport "$HOST_PORT" \ -j DNAT --to "$GUEST_IPADDR:$GUEST_PORT" iptables -I FORWARD -d "$GUEST_IPADDR/32" -p tcp -m state \ --state NEW -m tcp --dport "$GUEST_PORT" -j ACCEPT elif [ "$2" = stopped ]; then iptables -t nat -D PREROUTING -p tcp --dport "$HOST_PORT" \ -j DNAT --to "$GUEST_IPADDR:$GUEST_PORT" iptables -D FORWARD -d "$GUEST_IPADDR/32" -p tcp -m state \ --state NEW -m tcp --dport "$GUEST_PORT" -j ACCEPT fi fi
您应该在顶部设置四个变量以适合您的libvirt设置.
您将需要重新启动libvirt-bin,它在ubuntu上完成:
sudo sh -c 'service libvirt-bin stop; service libvirt-bin start'
那么你需要重启客人.在Ubuntu上,您需要调整/etc/apparmor.d/usr.sbin.libvirtd以允许钩子脚本执行:
旁边的
/usr/sbin/* PUx,
附加
/etc/libvirt/hooks/* PUx,
然后重新加载apparmor:
sudo service apparmor reload
可能有一种方法可以使用virsh / dumpxml / iface-dumpxml自动配置$GUEST_IPADDR,但我还没有找到它.或者,可以在网络xml:documentation中静态设置IP.
据我所知,网络过滤器只能用于限制虚拟网络上发生的事情,它们对端口转发没有用.
原文地址:https://www.jb51.cc/ubuntu/348760.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。