virt-manager에서 SSH를 포트 포워딩하는 방법은 무엇입니까?

virt-manager에서 SSH를 포트 포워딩하는 방법은 무엇입니까?

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라고 합니다.

  1. virsh를 통해 편집할 XML 구성을 엽니다.

    $ virsh -c qemu:///session edit ubuntu18.04
    
  2. "사용자" 유형 인터페이스에 대한 구성을 찾아서 삭제하면 다음과 같습니다.

    <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>
    
  3. (루트) 도메인 태그에 QEMU 네임스페이스를 추가합니다.

    <domain type='kvm' xmlns:qemu='http://libvirt.org/schemas/domain/qemu/1.0'>
    
  4. 현재 누락된 인터페이스 구성을 도메인 태그 내 어딘가에 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>
    
  5. 구성을 저장하고 가상 머신을 시작/다시 시작합니다.

  6. SSH 휴가:

    ssh myusername@localhost -p 22222
    

답변2

내 이해는 정반대입니다. libvirt VM의 네트워크 장치가 연결되도록 구성된 경우 virbr0호스트에서 액세스할 수 있어야 합니다.

libvirt는 이것을 "브리지" 네트워크라고 부릅니다. 네트워크 장치에 대한 또 다른 옵션(이 옵션은 작동하지 않음)을 "사용자" 네트워크라고 합니다. 이것이 귀하의 문제가 아닌 경우 추가 정보를 제공해야 합니다.

자세한 내용은 여기를 참조하세요:http://xkahn.zoned.net/blog/2013/11/26/networking-and-gnome-boxes

아치 리눅스 위키제안가상 스위치 ^Wbridge는 vibr0libvirt 데몬의 기본 구성의 일부이므로 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>

자세한 사용법과 예시는 다음을 참조하세요.업스트림 문서

관련 정보