友人の同僚がGaming Allianceのための自発的なプログラムを用意しました。ところが今の問題は、その人が不在で、実行中の仮想マシンにどのようにアクセスするのか分からないという点です。解決策を見つけるために数日間インターネットを検索しました。
これで、仮想マシンがqemuとkvmを使用してlibvirtで実行されていることがわかりました。 virshコマンドを使用すると、仮想マシンを起動または終了できます(これは私にとって新しいコマンドでもあります)。
ps ax | grep qemu
以下を見せてください:
16767 pts/0 S+ 0:00 grep --color=auto qemu
18250 ? Sl 388:50 /usr/bin/kvm -S -M pc-1.0 -enable-kvm -m 1000 -smp 4,sockets=4,cores=1,threads=1 -name Teamspeak1 -uuid a973dbb4-04e1-942b-1546-615f425b931b -nodefconfig -nodefaults -chardev socket,id=charmonitor,path=/var/lib/libvirt/qemu/Teamspeak1.monitor,server,nowait -mon chardev=charmonitor,id=monitor,mode=control -rtc base=utc -no-shutdown -device virtio-serial-pci,id=virtio-serial0,bus=pci.0,addr=0x6 -drive file=/var/lib/libvirt/images/Teamspeak1.img,if=none,id=drive-ide0-0-0,format=raw -device ide-drive,bus=ide.0,unit=0,drive=drive-ide0-0-0,id=ide0-0-0,bootindex=1 -drive if=none,media=cdrom,id=drive-ide0-1-0,readonly=on,format=raw -device ide-drive,bus=ide.1,unit=0,drive=drive-ide0-1-0,id=ide0-1-0 -netdev tap,fd=18,id=hostnet0 -device rtl8139,netdev=hostnet0,id=net0,mac=52:54:00:29:5f:61,bus=pci.0,addr=0x3 -chardev pty,id=charserial0 -device isa-serial,chardev=charserial0,id=serial0 -usb -vnc 127.0.0.1:0 -vga cirrus -device intel-hda,id=sound0,bus=pci.0,addr=0x4 -device hda-duplex,id=sound0-codec0,bus=sound0.0,cad=0 -device virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x5
18295 ? Sl 79:15 /usr/bin/kvm -S -M pc-1.0 -enable-kvm -m 1024 -smp 8,sockets=8,cores=1,threads=1 -name Webserver -uuid 14b56603-7323-2333-180c-227d02260acf -nodefconfig -nodefaults -chardev socket,id=charmonitor,path=/var/lib/libvirt/qemu/Webserver.monitor,server,nowait -mon chardev=charmonitor,id=monitor,mode=control -rtc base=utc -no-shutdown -drive file=/var/lib/libvirt/images/Webserver.img,if=none,id=drive-ide0-0-0,format=raw -device ide-drive,bus=ide.0,unit=0,drive=drive-ide0-0-0,id=ide0-0-0,bootindex=1 -drive if=none,media=cdrom,id=drive-ide0-1-0,readonly=on,format=raw -device ide-drive,bus=ide.1,unit=0,drive=drive-ide0-1-0,id=ide0-1-0 -netdev tap,fd=18,id=hostnet0 -device rtl8139,netdev=hostnet0,id=net0,mac=52:54:00:f6:a1:37,bus=pci.0,addr=0x3 -chardev pty,id=charserial0 -device isa-serial,chardev=charserial0,id=serial0 -usb -vnc 127.0.0.1:1 -vga cirrus -device intel-hda,id=sound0,bus=pci.0,addr=0x4 -device hda-duplex,id=sound0-codec0,bus=sound0.0,cad=0 -device virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x5
18380 ? Sl 19:32 /usr/bin/kvm -S -M pc-1.0 -enable-kvm -m 10000 -smp 8,sockets=8,cores=1,threads=1 -name Gameserver1 -uuid cb7b70e3-f049-7545-65d2-3adff36f34ff -nodefconfig -nodefaults -chardev socket,id=charmonitor,path=/var/lib/libvirt/qemu/Gameserver1.monitor,server,nowait -mon chardev=charmonitor,id=monitor,mode=control -rtc base=utc -no-shutdown -device ahci,id=ahci0,bus=pci.0,addr=0x6 -drive file=/var/lib/libvirt/images/Gameserver1.img,if=none,id=drive-ide0-0-0,format=raw -device ide-drive,bus=ide.0,unit=0,drive=drive-ide0-0-0,id=ide0-0-0,bootindex=1 -drive if=none,media=cdrom,id=drive-ide0-1-0,readonly=on,format=raw -device ide-drive,bus=ide.1,unit=0,drive=drive-ide0-1-0,id=ide0-1-0 -drive file=/var/lib/libvirt/images/Gameserver1-1.img,if=none,id=drive-sata0-0-0,format=raw -device ide-drive,bus=ahci0.0,drive=drive-sata0-0-0,id=sata0-0-0 -netdev tap,fd=18,id=hostnet0 -device rtl8139,netdev=hostnet0,id=net0,mac=52:54:00:62:7d:6e,bus=pci.0,addr=0x3 -chardev pty,id=charserial0 -device isa-serial,chardev=charserial0,id=serial0 -usb -vnc 127.0.0.1:2 -vga cirrus -device intel-hda,id=sound0,bus=pci.0,addr=0x4 -device hda-duplex,id=sound0-codec0,bus=sound0.0,cad=0 -device virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x5
彼はまた、私に次のような通知を残しました。
「ゲームサーバー1」の場合:
root: kecks
user : game
pass: ***
ip: 192.168.122.161
FTP connection : ftp://***:2121
IP-Tables:
//FTP: (Chrooted)
49152-49153 (FTP Passive)
2121 -> 21
2020 -> 20
//CS:GO
27015
たとえば、「ネットワークサーバー」は次のようになります。
##User
root -> ***
webserver -> ***
192.168.122.198
Mysql root -> ***
ACCEPT tcp -- anywhere 192.168.122.198 state NEW,RELATED,ESTABLISHED tcp dpt:12001 // FTP
ACCEPT tcp -- anywhere 192.168.122.198 state NEW,RELATED,ESTABLISHED tcp dpt:12000 //FTP
ACCEPT tcp -- anywhere 192.168.122.198 state NEW,RELATED,ESTABLISHED tcp dpt:ftp-data
ACCEPT tcp -- anywhere 192.168.122.198 state NEW,RELATED,ESTABLISHED tcp dpt:ftp
ACCEPT tcp -- anywhere 192.168.122.198 state NEW,RELATED,ESTABLISHED tcp dpt:http
すでにこのツールを使用しているシステム管理者にとって、これは役に立つかもしれませんが、私には役に立ちませんでした。
VMのXML構成ファイルのみが生成されます。だからここでは必要ないと思います。サーバーはUbuntu 12.04.3 LTSで実行されています。複雑なssh、vncコマンドで接続を試みましたが、仮想マシンではなくホストにのみ接続されます。もちろん、クラスCのローカルIPv4アドレスだけを見たので、ホストシステムはSSH接続を介してローカルで試しました。
編集:以下の2つの答えで修正されました。解決策は、ホストのSSHセッション内でクラスC IPアドレスへのSSH接続を確立することです。
答え1
comamndを使用したVMの起動
# virsh start Gameserver1
実行中のサーバーのリスト
# virsh list
コンソールからサーバーにアクセスする
# virt-viewer Gameserver1
これにより、サーバーのコンソールが開き、グラフィカルにアクセスできます。
仮想マシンの使用をオフにする
# virsh destroy Gameserver1
インストールパッケージ
centos ir fedora を使用している場合は、次のパッケージをインストールします。
# yum install qemu libvirt-client virt-manager \
virt-viewer guestfish libguestfs-tools virt-top
Debian または Ubuntu を使用している場合は、以下をインストールしてください。
# sudo apt-get install kvm libvirt-bin virt-manager virt-viewer virt-top virt-what
これにより問題が解決します。
答え2
-vnc 127.0.0.1:x
:VNC端末エミュレータを使用して、指定された資格情報を使用できるローカルホストポート5900 + xの仮想端末に接続します。