virt-managerでSSHをポート転送する方法は?

virt-managerでSSHをポート転送する方法は?

virt-managerでGentooゲストを設定しましたが、ホストからSSHに接続できませんでした.私はqemuを使用してゲストコンピュータのポートにアクセスするためにいくつかのポート転送を実行する必要があることを読んでいます。 virt-manager にはオプションがありません。これがどのように可能ですか?

Ubuntu 16.10でVirt Manager 1.3.2を使用しています。

答え1

Web のどこかにこれを文書化するには:

約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

Arch Linux Wiki提案仮想スイッチ^ 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>

詳細な使用方法と例については、以下を参照してください。アップストリーム文書

関連情報