Как настроить переадресацию портов в KVM изначально?
Я использовал Virsh для управления виртуальными машинами, используя KVM. Иметь главный хост и виртуальную машину со службой http (порт 80). Как настроить переадресацию порта для предоставления услуги http в Интернет без использования брандмауэров, таких как iptables, firewalld или route?
На самом деле я использую iptables, очень сложно управлять всеми типами соединений.
Я могу настроить правила в KVM для перенаправления трафика http между основным хостом и виртуальной машиной?, например, в VirtualBox есть опция переадресации порта в конфигурации сети, например, IP-адрес хоста, порт хоста, виртуальный IP-адрес, виртуальный порт и порт прослушивания в главном хосте как localhost (0.0.0.0).
Как это сделать в KVM?
Я пытаюсь отредактировать XML, используя собственный переадресацию портов с помощью артементов qemu, но не работает
# virsh edit demo
> <domain type='kvm' xmlns:qemu='http://libvirt.org/schemas/domain/qemu/1.0'>
> <name>...
> ...
> <qemu:commandline>
> <qemu:arg value='-redir'/>
> <qemu:arg value='tcp:80::80'/>
> </qemu:commandline>
> </domain>
# virsh start demo
# ps -aux | grep qemu
root 30119 58.8 2.9 3421616 330084 ? Sl 15:38 0:07 qemu-system-x86_64 -enable-kvm -name demo -S -machine pc-i440fx-xenial,accel=kvm,usb=off -cpu Haswell -m 2048 -realtime mlock=off -smp 2,sockets=2,cores=1,threads=1 -uuid c996f3b2-5e16-470f-9ad6-e591fc9a2537 -nographic -no-user-config -nodefaults -chardev socket,id=charmonitor,path=/var/lib/libvirt/qemu/domain-demo/monitor.sock,server,nowait -mon chardev=charmonitor,id=monitor,mode=control -rtc base=utc,driftfix=slew -global kvm-pit.lost_tick_policy=discard -no-hpet -no-shutdown -global PIIX4_PM.disable_s3=1 -global PIIX4_PM.disable_s4=1 -boot strict=on -device ich9-usb-ehci1,id=usb,bus=pci.0,addr=0x4.0x7 -device ich9-usb-uhci1,masterbus=usb.0,firstport=0,bus=pci.0,multifunction=on,addr=0x4 -device ich9-usb-uhci2,masterbus=usb.0,firstport=2,bus=pci.0,addr=0x4.0x1 -device ich9-usb-uhci3,masterbus=usb.0,firstport=4,bus=pci.0,addr=0x4.0x2 -device virtio-serial-pci,id=virtio-serial0,bus=pci.0,addr=0x3 -drive file=/var/kvm/images/demo.img,format=qcow2,if=none,id=drive-virtio-disk0 -device virtio-blk-pci,scsi=off,bus=pci.0,addr=0x5,drive=drive-virtio-disk0,id=virtio-disk0,bootindex=1 -netdev tap,fd=26,id=hostnet0,vhost=on,vhostfd=28 -device virtio-net-pci,netdev=hostnet0,id=net0,mac=52:54:00:43:ed:8d,bus=pci.0,addr=0x2 -chardev pty,id=charserial0 -device isa-serial,chardev=charserial0,id=serial0 -chardev socket,id=charchannel0,path=/var/lib/libvirt/qemu/channel/target/domain-demo/org.qemu.guest_agent.0,server,nowait -device virtserialport,bus=virtio-serial0.0,nr=1,chardev=charchannel0,id=channel0,name=org.qemu.guest_agent.0 -device usb-tablet,id=input0 -device virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x6 -redir tcp:80::80 -msg timestamp=on
Теперь открытый с хоста http://192.168.123.91/ работает нормально, но http://127.0.0.1/ не подключается, но команда qemu говорит -redir tcp:80::80
,
Что я сделал не так?
1 ответ
Какой у вас тип интерфейса? для переадресации портов для работы в соответствии с типом интерфейса man-страницы qemu должен быть пользовательский. лайк <interface type="user">