virt-manager에서 Gentoo 게스트를 설정했지만 호스트에서 SSH로 연결할 수 없습니다. 나는 qemu를 사용하여 게스트 컴퓨터의 포트에 액세스하려면 일부 포트 전달을 수행해야 한다는 것을 읽었습니다. virt-manager에서 어떤 옵션도 찾을 수 없습니다. 이것이 어떻게 가능한지?
Ubuntu 16.10에서 Virt Manager 1.3.2를 사용하고 있습니다.
답변1
웹 어딘가에 이것을 문서화하려면 다음을 수행하십시오.
약 2년 후, 관련 QEMU 매개변수를 KVM XML 파일(모든 멋진 가상화 foo 구성이 이면에 저장되어 있음)에 수동으로 추가하여 이 작업을 수행할 수 있었습니다.
다음은 사용자 네트워크에 포트 전달 권한을 부여하기 위해 수행한 단계입니다. 제 경우에는 호스트의 포트 22222를 게스트의 포트 22로 전달합니다.
여기서는 시뮬레이션된 머신을 ubuntu18.04라고 합니다.
virsh를 통해 편집할 XML 구성을 엽니다.
$ virsh -c qemu:///session edit ubuntu18.04
"사용자" 유형 인터페이스에 대한 구성을 찾아서 삭제하면 다음과 같습니다.
<interface type='user'> <mac address='52:54:00:52:35:ff'/> <model type='rtl8139'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/> </interface>
(루트) 도메인 태그에 QEMU 네임스페이스를 추가합니다.
<domain type='kvm' xmlns:qemu='http://libvirt.org/schemas/domain/qemu/1.0'>
현재 누락된 인터페이스 구성을 도메인 태그 내 어딘가에 QEMU 매개변수로 수동으로 추가합니다(예: 의 마지막 하위 요소로
<domain>
).<qemu:commandline> <qemu:arg value='-netdev'/> <qemu:arg value='user,id=mynet.0,net=10.0.10.0/24,hostfwd=tcp::22222-:22'/> <qemu:arg value='-device'/> <qemu:arg value='rtl8139,netdev=mynet.0'/> </qemu:commandline>
구성을 저장하고 가상 머신을 시작/다시 시작합니다.
SSH 휴가:
ssh myusername@localhost -p 22222
답변2
내 이해는 정반대입니다. libvirt VM의 네트워크 장치가 연결되도록 구성된 경우 virbr0
호스트에서 액세스할 수 있어야 합니다.
libvirt는 이것을 "브리지" 네트워크라고 부릅니다. 네트워크 장치에 대한 또 다른 옵션(이 옵션은 작동하지 않음)을 "사용자" 네트워크라고 합니다. 이것이 귀하의 문제가 아닌 경우 추가 정보를 제공해야 합니다.
자세한 내용은 여기를 참조하세요:http://xkahn.zoned.net/blog/2013/11/26/networking-and-gnome-boxes
아치 리눅스 위키제안가상 스위치 ^Wbridge는 vibr0
libvirt 데몬의 기본 구성의 일부이므로 VM이 이를 사용하도록 구성되어 있는지 확인하기만 하면 됩니다. 그들은 또한 다음으로 연결됩니다.상세안내. 에 대해서는 virbr0
"를 참조하세요.NAT 기반 네트워크"
답변3
libvirt 사용자 네트워크는 사용할 수 있습니다통과하다기본 SLIRP 대신 전송 백엔드.
이 백엔드를 사용할 때 이 요소를 사용하여 VM 도메인 XML 파일에서 직접 포트 전달을 구성할 수 있습니다.
가상 머신의 XML을 편집하려면 virsh edit name_of_your_vm
이를 사용하여 편집기에서 파일을 엽니다.
예를 들어 호스트 TCP 포트 4022를 클라이언트 포트 22로 전달하려면 다음 구문을 사용할 수 있습니다.
...
<devices>
...
<interface type='user'>
<backend type='passt'/>
<mac address='00:11:22:33:44:55'/>
<portForward proto='tcp'>
<range start='4022' to='22'/>
</portForward>
</interface>
...
</device>
...
또한 여러 개의 연속 포트 전달을 지원합니다.
<portForward proto='tcp'>
<range start='31200' end='31300' to='6000' />
</portForward>
앞으로 UDP 포트
<portForward proto='udp'>
<range start='15055' to='5055' />
</portForward>
자세한 사용법과 예시는 다음을 참조하세요.업스트림 문서