現在、QEMUはゲストの特定の要求を傍受またはブロックしようとしています。
これによると質問、最も簡単な方法は、QEMUを別のユーザーとして実行して、iptablesがホストトラフィックとゲストトラフィックを区別できるようにすることです。
ただし、他のユーザーでQEMUを起動すると、常に失敗します。
❯ sudo -u qemu-user qemu-system-x86_64 -enable-kvm ...
Authorization required, but no authorization protocol specified
gtk initialization failed
この問題を解決する方法、またはゲストトラフィック(特定のポートなど)をブロックするために使用できる他の方法についてご存知ですか?
答え1
ローカルX11サーバーに接続しようとしましたが、アクセス権がありません。以下を使用してこれを変更できますxhost
。
❯ xhost +
access control disabled, clients can connect from any host
❯ export DISPLAY=:0
sudo -E -u root qemu-system-x86_64 -enable-kvm -serial mon:stdio -m 8g -smp 4 -hda ~/Downloads/debian-12-generic-amd64.qcow2 -nic user,model=virtio-net-pci
私に役立つエラーはXサーバーに接続しようとしましたが、ユーザーを許可し、場所を環境変数(デフォルト)GTK initialization failed
として指定する必要があるため、接続できません。DISPLAY=:0
xhost
コマンドのマニュアルページとxhost +
ユーザー名を指定しない場合は、何が起こるかを確認してください(すべてのユーザー名を許可)。一般的にこれは大丈夫ですが、私はあなたがこれを理解したことを確認したいと思います。
OPTIONS
Xhost accepts the following command line options described below. For security, the options that af‐
fect access control may only be run from the "controlling host". For workstations, this is the same
machine as the server. For X terminals, it is the login host.
-help Prints a usage message.
[+]name The given name (the plus sign is optional) is added to the list allowed to connect to the X
server. The name can be a host name or a complete name (See NAMES for more details).
-name The given name is removed from the list of allowed to connect to the server. The name can be
a host name or a complete name (See NAMES for more details). Existing connections are not
broken, but new connection attempts will be denied. Note that the current machine is allowed
to be removed; however, further connections (including attempts to add it back) will not be
permitted. Resetting the server (thereby breaking all connections) is the only way to allow
local connections again.
+ Access is granted to everyone, even if they aren't on the list (i.e., access control is
turned off).
- Access is restricted to only those on the list (i.e., access control is turned on).
nothing If no command line arguments are given, a message indicating whether or not access control is
currently enabled is printed, followed by the list of those allowed to connect. This is the
only option that may be used from machines other than the controlling host.
編集する**
ゲストトラフィックが特定のポートに到達しないようにブロックします。たとえば、ユーザーモードネットワーキングを使用すると、ゲスト分離ネットワークが提供され、qemuモニタを介して-nic user,model=virtio-net-pci
ポート転送を制御できます(有効になっている場合は-serial mon:stdio
シリアルモードとqemuモニタモードを切り替えることができますcontrol-a-c
)hostfwd_add
。
追加情報:https://wiki.qemu.org/Documentation/Networking#User_Networking_(SLIRP)
https://github.com/paigeadelethompson/docker-solaris#networking