国产成人欧美一区二区三区vr_久久国产精品人人爽人人爽_国产精品永久免费播放_肉欲啪啪a∨无码精品一区二区_国产超短裙jk丝袜在线_亚洲AV片高清资源在线观看_国模无码一区二区三区久久_国产成年人未进视频_中文字幕无码精品夜_一区二区三区在线视频免费看_亚洲成AV人片在线观看网址_日本激情视频高清综合久久_亚洲午夜视频福利_国内大量揄拍人妻精品視_久久国产精品福利二区三区

ARTICLE DETAIL

資訊詳情

深耕商務(wù)建站與企業(yè)官網(wǎng)運營的一線實戰(zhàn)洞察。

基于Qt與libvirt構(gòu)建跨平臺虛擬機管理器:從連接到顯示

基于Qt與libvirt構(gòu)建跨平臺虛擬機管理器:從連接到顯示 簡介qt-virt-manager 是基于 Qt/C 開發(fā)的圖形化虛擬機管理工具面向系統(tǒng)管理員與運維開發(fā)人員解決異構(gòu)虛擬化平臺之間管理分散、操作門檻高的問題。它通過統(tǒng)一界面覆蓋 VMware、LXC、BHYVE、Libvirt、Hyper-V、OpenVZ、QEMU-KVM 與 VirtualBox 等主流技術(shù)用戶無需在不同客戶端之間來回切換即可集中創(chuàng)建、刪除、啟動、停止和監(jiān)控虛擬機并進行資源分配、網(wǎng)絡(luò)配置、克隆、備份與遷移等操作。壓縮包大小約 3.08MB便于快速獲取目前已有 353 人學(xué)習(xí)瀏覽。針對各底層虛擬化技術(shù)Qt 界面下的操作思路對理解 LXC 容器與 BHYVE 原生虛擬化的差異、Libvirt 抽象層的作用、QEMU-KVM 硬件虛擬化加速原理以及 Hyper-V/OpenVZ 的適用場景都有幫助。借助 Qt 跨平臺特性工具在 Linux、Windows 等桌面環(huán)境下提供一致體驗適合需要整合多種虛擬化技術(shù)、簡化日常管理流程的系統(tǒng)工程師也適合作為虛擬化入門學(xué)習(xí)與教學(xué)演示的配套資源。1. Qt虛擬機經(jīng)理不用再羨慕virt-manager的圖形化體驗我最初拿到 qt-virt-manager 這套資源時第一反應(yīng)是“它到底解決了什么”。畢竟桌面端早已有 virt-manager可它在技術(shù)棧上綁死了 GTK我想把它嵌進自己的 Qt 主程序、想換一套 QSS 皮膚、想跨平臺復(fù)用同一套界面邏輯都等于從頭再造輪子。這份用 Qt/C 重寫的虛擬機經(jīng)理底層依然走 libvirt把 QEMU/KVM、VirtualBox、LXC、bhyve、Hyper-V 這些后端統(tǒng)一收進來界面則換成完全可控的 Qt 控件。它解決的不只是“能看見虛擬機”而是讓桌面開發(fā)者和運維能拿到一套可編譯、可二次修改的虛擬化管理源碼。適合誰適合正在做桌面虛擬化管理工具、或需要在自定義界面里操作虛擬機的朋友新手也能照著源碼把連接鏈路跑通。2. 連接后端URI、驅(qū)動樹和安全認(rèn)證的拆解真正上手這套 Qt 虛擬機經(jīng)理之前建議先把連接層拆明白。因為所有功能——列表、啟動、快照、顯示——都建立在那一條連接 URI 上。URI 寫錯一個斜杠后面全白搭。2.1 先弄清 libvirt 驅(qū)動樹系統(tǒng)連接與用戶會話連接libvirt 不是虛擬化軟件本身它是一個統(tǒng)一管理接口。你用virConnectOpenAuth傳進去的 URI決定它選擇哪個驅(qū)動。驅(qū)動名來自編譯進 libvirt 的那一組后端模塊常見的有qemu、vbox、lxc、bhyve、hyperv、openvz、phyp等。注意URI 里的:///system和:///session兩個路徑代表完全不同的權(quán)限邊界system走系統(tǒng)的 libvirtd 守護進程需要 root 或加入libvirt組session走當(dāng)前用戶自己的進程不需要 root但它只能管理用戶自己名下的虛擬機。我用一個表把這組 URI 記下來排查的時候?qū)χ春芸旌蠖薝RI 示例說明QEMU/KVMqemu:///system最常用連接系統(tǒng)級 libvirtdVirtualBoxvbox:///system通過 vbox 驅(qū)動管理 VirtualBox 實例LXC 容器lxc:///system管理本機 LXC 容器bhyvebhyve:///systemFreeBSD 上的 bhyve 虛擬機Hyper-Vhyperv:///system通過 WSMan 協(xié)議連 Windows Hyper-VOpenVZopenvz:///session管理 OpenVZ 容器IBM PowerVMphyp:///system連接 PowerVM 管理分區(qū)這套資源里默認(rèn)走的是qemu:///system。你要把它改成 vbox 或 lxc不需要改界面代碼只需要改連接配置項。我在 qt-virt-manager 的源碼里看到它把 URI 作為配置字符串放到首選項頁這個設(shè)計很實用——不要把一個后端寫死在構(gòu)造函數(shù)里運行時切換能省去重新編譯。2.2 遠(yuǎn)程連接與認(rèn)證ssh 和 tcp 兩條路的參數(shù)差異跨機器管理虛擬機時URI 會帶上認(rèn)證方式。常見的有兩種寫法qemussh://userhost/system和qemutcp://host:16509/system。先說 ssh 這條。它依賴本機 ssh 客戶端第一次連接時 libvirt 會通過 sshd 跳轉(zhuǎn)到遠(yuǎn)端再用遠(yuǎn)端 libvirtd 的權(quán)限模型驗證。好處是傳輸加密、認(rèn)證簡單因為你本機已經(jīng)生成過 ssh key坑點是如果你用密鑰而非密碼登錄libvirt 的認(rèn)證回調(diào)會被跳過它直接走 ssh 層這時如果遠(yuǎn)端沒有把本地公鑰加進authorized_keys就會收到一個讓人摸不著頭腦的連接錯誤。再說 tcp 這條。它走 16509 端口通常要開啟 SASL 認(rèn)證。打開/etc/libvirt/libvirtd.conf把listen_tls 0、listen_tcp 1打開然后配置auth_tcp sasl。注意如果 libvirtd 是以 systemd 方式啟動還得修改/etc/libvirt/libvirtd.socket的監(jiān)聽開關(guān)。我在實際配置時踩過一次明明設(shè)置了listen_tcp 1服務(wù)卻不監(jiān)聽 16509 端口后來發(fā)現(xiàn)是新版本 libvirt 默認(rèn)走 socket 激活需要在/etc/libvirt/libvirtd.conf里把listen_tcp相關(guān)注釋放開并且重啟服務(wù)。tcp 連接如果不開 SASL測試時勉強能連上但生產(chǎn)環(huán)境絕對不要這么干——libvirt 的 tcp 不加認(rèn)證等于把主機的域管理接口裸奔在局域網(wǎng)里。2.3 C 側(cè)封裝連接virConnectOpenAuth 與 URI 校驗qt-virt-manager 的連接層直接用 libvirt 的 C API用 Qt 的QString轉(zhuǎn)成const char*傳進去。最關(guān)鍵的是認(rèn)證回調(diào)它決定你用什么方式完成 SASL/SSH 后的身份驗證。我一般會這樣封裝// hypervisor_connection.cpp #include libvirt/libvirt.h #include libvirt/virterror.h #include QDebug // 認(rèn)證回調(diào)把用戶名和密碼交給 libvirt static int authCallback(virConnectCredentialPtr cred, unsigned int ncred, void* userdata) { auto* pair static_castQPairQString, QString*(userdata); for (unsigned int i 0; i ncred; i) { if (cred[i].type VIR_CRED_AUTHNAME) { // 把 Qt 字符串拷貝到 libvirt 的緩沖里 QByteArray name pair-first.toUtf8(); cred[i].result strdup(name.constData()); cred[i].resultlen name.size(); } else if (cred[i].type VIR_CRED_PASSPHRASE) { QByteArray pass pair-second.toUtf8(); cred[i].result strdup(pass.constData()); cred[i].resultlen pass.size(); } else { return -1; // 不認(rèn)識的憑據(jù)類型直接失敗 } } return 0; } virConnectPtr openHypervisor(const QString uri, const QString user, const QString pass) { QPairQString, QString authPair(user, pass); virConnectAuth auth; auth.credtype nullptr; auth.ncredtype 0; auth.cb authCallback; auth.cbdata authPair; // 這里先嘗試讀寫連接失敗再退化為只讀 virConnectPtr conn virConnectOpenAuth(uri.toUtf8().constData(), auth, 0); if (conn nullptr) { const virError* err virGetLastError(); qWarning() 連接失敗: err-message; } return conn; }這段代碼里有幾個參數(shù)值得解釋。VIR_CRED_AUTHNAME表示讓 libvirt 回調(diào)來填寫用戶名VIR_CRED_PASSPHRASE是密碼。cred[i].result必須用strdup分配內(nèi)存libvirt 會自己釋放。我一般不用QString::toLocal8Bit而是toUtf8因為 libvirt 對證書里的非 ASCII 用戶名處理有歷史包袱UTF-8 出錯概率最低。打開連接之后不要順手把virConnectClose寫進析構(gòu)里就完事。如果界面里有多個窗口共享同一條連接你要自己維護引用計數(shù)。libvirt 的virConnectPtr不是線程安全的多個線程同時使用同一個指針時必須加鎖或保證串行訪問。我的做法是連接對象放在一個單獨的管理類里所有 libvirt 調(diào)用都經(jīng)過這個類的同步方法避免在多個線程里直接操作同一個virConnectPtr。2.4 連接層參數(shù)速查flags、超時與日志virConnectOpenAuth的 flags 參數(shù)有三個常用值0表示讀寫連接VIR_CONNECT_RO表示只讀VIR_CONNECT_NO_ALIASES表示不做 URI 別名解析。如果你只是做一個只讀監(jiān)控面板用VIR_CONNECT_RO就夠了這樣即便口令泄露也只能看不能改。超時參數(shù)不在這個函數(shù)里它由 libvirt 內(nèi)部的網(wǎng)絡(luò)超時和 SASL 協(xié)商超時決定默認(rèn)比較久。我一般會在連接前設(shè)置環(huán)境變量LIBVIRT_DEFAULT_URI同時把域名解析和連接放到 Qt 的QRunnable里執(zhí)行界面等 8 秒還沒返回就提示用戶檢查網(wǎng)絡(luò)。日志方面libvirt 默認(rèn)只打印virError到 stderr你可以設(shè)置LIBVIRT_LOG_FILTERS來控制export LIBVIRT_LOG_FILTERS3.libvirt 4.libvirt.qemu export LIBVIRT_LOG_OUTPUTS1:file:/tmp/libvirt_qt.log3表示只記錄 warning 級別的 libvirt 全局日志4.libvirt.qemu表示 qemu 驅(qū)動單獨記 debug。這個區(qū)分很重要全局日志寫太多會把文件撐爆qemu 驅(qū)動的 debug 才是排查 XML 生成問題的地方。3. 域?qū)ο蟛僮鲝?XML 定義到生命周期封裝連接建立之后下一個要處理的是域domain的增刪改查。libvirt 把所有虛擬機定義抽象成 XMLqt-virt-manager 也需要按照這個思路設(shè)計數(shù)據(jù)模型——不要自己發(fā)明結(jié)構(gòu)體存虛擬機配置直接把 XML 當(dāng)作源數(shù)據(jù)界面只是它的視圖。3.1 用 XML 定義一個最小可運行的 KVM 域一個最小域定義長這樣domain typekvm nameqt-demo/name memory unitKiB2097152/memory currentMemory unitKiB2097152/currentMemory vcpu placementstatic2/vcpu os type archx86_64 machinepc-q35-6.2hvm/type boot devhd/ /os features acpi/ apic/ /features clock offsetlocaltime/ on_poweroffdestroy/on_poweroff on_rebootrestart/on_reboot on_crashrestart/on_crash devices disk typefile devicedisk driver nameqemu typeqcow2/ source file/var/lib/libvirt/images/qt-demo.qcow2/ target devvda busvirtio/ /disk interface typebridge source bridgebr0/ model typevirtio/ /interface graphics typespice port5900 autoportyes listen127.0.0.1/ /devices /domain注意幾個參數(shù)的細(xì)節(jié)。內(nèi)存單位是 KiB2097152是 2 GiB如果你寫2會被解析成 2 KiB啟動時直接內(nèi)存不足。currentMemory表示當(dāng)前分配量可以小于memory用來做內(nèi)存熱插拔預(yù)留。vcpu的placementstatic表示固定 vCPU 數(shù)量如果改成placementauto會讓宿主機自動決定。虛擬機名稱我建議只用字母、數(shù)字、連字符和下劃線不要用中文。libvirt 對名稱中的非 ASCII 字符支持不徹底尤其在使用virDomainLookupByName時某些版本會返回domain not found但用virConnectListAllDomains又能看到它這就是名稱編碼問題導(dǎo)致的索引不一致。3.2 生命周期方法封裝創(chuàng)建、關(guān)閉、重啟與強制結(jié)束qt-virt-manager 的生命周期操作都封裝在一個DomainController類里對外暴露的是 Qt 風(fēng)格的方法內(nèi)部再轉(zhuǎn)成 libvirt 調(diào)用// domain_controller.cpp #include libvirt/libvirt.h #include QDebug class DomainController { public: virDomainPtr domain nullptr; virDomainPtr defineFromXML(virConnectPtr conn, const QByteArray xml) { // 從 XML 定義但先不啟動 virDomainPtr dom virDomainDefineXML(conn, xml.constData()); if (dom nullptr) { const virError* err virGetLastError(); qCritical() 定義失敗: err-message; } return dom; } int start() { // 對已定義的域做啟動 int ret virDomainCreate(domain); if (ret ! 0) { const virError* err virGetLastError(); qWarning() 啟動失敗: err-message; } return ret; } int shutdownByACPI() { // 模擬按電源鍵讓 guest 內(nèi)系統(tǒng)正常關(guān)機 int ret virDomainShutdownFlags(domain, VIR_DOMAIN_SHUTDOWN_ACPI_POWER_BTN); return ret; } int forceDestroy() { // 相當(dāng)于拔電源危險操作需要二次確認(rèn) return virDomainDestroy(domain); } };virDomainDefineXML只定義不啟動適合做配置校驗virDomainCreateXML是定義加啟動一步到位但前提是你的 XML 里沒有引用尚未創(chuàng)建的存儲卷。VIR_DOMAIN_SHUTDOWN_ACPI_POWER_BTN是模擬物理電源鍵Windows guest 看到的是“關(guān)機”事件比網(wǎng)絡(luò)發(fā) RPC 更通用如果你裝了 qemu-guest-agent可以改用VIR_DOMAIN_SHUTDOWN_GUEST_AGENT這樣能走 guest 內(nèi)部的干凈關(guān)機流程但前提是 agent 已運行。3.3 狀態(tài)輪詢與 Qt 事件循環(huán)不要在 GUI 線程里做阻塞調(diào)用這是我在讀這套資源源碼時最看重的一點。libvirt 的virDomainGetInfo和virDomainGetState都會阻塞如果直接在 QML 槽函數(shù)或 QWidget 按鈕事件里調(diào)用虛擬機數(shù)量一多界面就卡。正確做法是放到工作線程里。比如這樣// domain_worker.cpp #include QRunnable #include QThreadPool class RefreshDomainWorker : public QRunnable { public: virDomainPtr dom; void run() override { virDomainInfo info; if (virDomainGetInfo(dom, info) 0) { // 通過信號發(fā)回主線程更新界面 emit resultReady(info.state, info.nrVirtCpu); } } };這里的關(guān)鍵是QRunnable在QThreadPool里執(zhí)行得到結(jié)果后用信號槽傳回主線程。因為virDomainPtr來自同一個連接工作線程之間如果同時調(diào)用需要保證它們操作的是不同域?qū)ο蠡蛘邔φ麄€連接加互斥鎖。我采取的方案是連接層有一個QMutex每次調(diào)用前l(fā)ock調(diào)完再unlock性能損失不大但能避免同一連接下的未知崩潰。3.4 定義與啟動的邊界持久域和臨時域用virDomainDefineXML創(chuàng)建的域是持久的重啟宿主機后依然存在用virDomainCreateXML創(chuàng)建的域是臨時的關(guān)閉虛擬化服務(wù)后自動消失。qt-virt-manager 的“新建虛擬機”頁面里有兩個選項很多新手會把“定義”和“創(chuàng)建”混淆導(dǎo)致每次重啟宿主機后虛擬機列表變成空的。我在資源代碼里看到它把兩個操作分別做成了按鈕如果用戶選擇了“臨時域”界面會顯示一個顯眼的警告條這個交互值得借鑒。4. 顯示輸出接入SPICE 與 VNC 參數(shù)以及 Qt 窗口內(nèi)嵌的幾種做法管理虛擬機繞不開顯示輸出。qt-virt-manager 要承擔(dān)的不只是“列表管理器”它還得把訪客畫面交給用戶看。這一章我拆解顯示協(xié)議選擇和 Qt 集成方式。4.1 先選協(xié)議SPICE 與 VNC 的差異表在配參數(shù)前先做技術(shù)選型。VNC 和 SPICE 在虛擬化場景里的地位不一樣對比項SPICEVNC圖形傳輸支持多顯示器、動態(tài)分辨率調(diào)整固定分辨率分辨率變更需要重建會話音頻原生支持音頻轉(zhuǎn)發(fā)需要額外走 PulseAudio 端口剪貼板支持雙向剪貼板依賴 viewer 實現(xiàn)通常不支持視頻編碼自動降級編碼局域網(wǎng)表現(xiàn)好簡單編碼弱網(wǎng)表現(xiàn)一般客戶端支持spice-gtk / remote-viewer幾乎所有平臺都有 VNC client如果你管理的虛擬機以 Linux 桌面為主而且宿主機與訪客在同一局域網(wǎng)SPICE 是明顯更好的選擇。但如果訪客是 Windows 且沒裝 SPICE guest toolsSPICE 會退化成 VNC這時不如直接配 VNC少一層折損。4.2 從域配置里取圖形端口和密碼解析 XML 而不是調(diào)用隱藏 API很多剛開始寫 Qt 虛擬化管理的人會去找virDomainGetGraphics這樣的函數(shù)我提醒一句libvirt 沒有這個公開 API。正確做法是用virDomainGetXMLDesc把整個 XML 拉回來再解析graphics節(jié)點// graphics_parser.cpp #include libvirt/libvirt.h #include QDomDocument QString getGraphicsPort(virDomainPtr domain) { // 取帶安全字段的完整 XML密碼會被解出來 char* xml virDomainGetXMLDesc(domain, VIR_DOMAIN_XML_SECURE); if (xml nullptr) return QString(); QDomDocument doc; doc.setContent(QString::fromUtf8(xml)); free(xml); const QDomNodeList graphicsList doc.elementsByTagName(QStringLiteral(graphics)); for (int i 0; i graphicsList.size(); i) { QDomElement g graphicsList.item(i).toElement(); if (g.attribute(type) spice || g.attribute(type) vnc) { QString port g.attribute(port); QString pass g.attribute(passwd); // 這里可以發(fā)給顯示頁面去連 return port; } } return QString(); }VIR_DOMAIN_XML_SECURE這個 flag 必須帶否則graphics節(jié)點里的passwd屬性會被省略成空。解析時用 DOM 而不是正則是因為 XML 屬性順序可能變正則容易漏掉多graphics節(jié)點的情況。多顯示器虛擬機通常有多個graphics標(biāo)簽?zāi)阈枰A羧慷皇侵蝗〉谝粋€。4.3 在 Qt 窗口內(nèi)呈現(xiàn)訪客畫面三種方案第一種方案是調(diào)用remote-viewer外部進程把它的窗口嵌入到 Qt 主界面。做法是用 Linux 窗口系統(tǒng)提供的嵌入接口把子進程的winId塞進QWidget::createWindowContainer。好處是實現(xiàn)簡單不用管 SPICE 協(xié)議的細(xì)節(jié)壞處是跨平臺性差macOS 或 Windows 上表現(xiàn)不一致而且remote-viewer必須預(yù)先安裝。第二種方案是使用 spice-gtk 的 Qt 適配層核心類是SpiceSession和SpiceDisplay。它可以在 Qt 里直接渲染 SPICE 畫面支持鼠標(biāo)、鍵盤、剪貼板轉(zhuǎn)發(fā)。代價是你得把整個 spice-gtk 庫鏈進項目對資源要求較高。第三種方案是 VNC 的幀緩沖開源庫比如 libvncclient你在 Qt 里用一個QWidget的子類接收幀緩沖數(shù)據(jù)然后轉(zhuǎn)成QImage渲染。這個方案不依賴外部程序但視頻編碼和解碼全得自己處理性能瓶頸明顯。我的評價是如果只是做管理工具第一種最省事如果要做完整桌面體驗第二種子碼流最穩(wěn)第三種只適合臨時測試。4.4 圖形參數(shù)調(diào)整autoport 與端口沖突autoportyes的意思是讓 libvirt 自動分配一個可用端口但自動分配意味著你不知道具體端口必須在域啟動后再去讀 XML才能拿到真實端口號。這在拼接spice://127.0.0.1:5900連接地址時是必須的。如果你指定固定端口port5900那么多個虛擬機不能同時設(shè)置相同端口否則后啟動的域會失敗。我在資源里看到它封裝了一個“等待端口就緒”的狀態(tài)機域啟動后每 500 毫秒輪詢一次 XML 里的graphics端口最多等 30 秒超過就報錯。這個設(shè)計很實用因為 QEMU 從創(chuàng)建到監(jiān)聽 socket 有延遲立即讀端口會拿到空值。5. 避坑排查連接、權(quán)限、顯示三類問題的根因清單這一章是我把常見問題整理成清單的部分。所有條目都遵循“現(xiàn)象 → 原因 → 解決”的順序直接對應(yīng) qt-virt-manager 里最容易踩的五個坑。5.1 連接報錯“認(rèn)證失敗”但用戶名密碼明明是對的現(xiàn)象使用qemussh://userhost/system連接遠(yuǎn)程宿主機程序提示authentication failed但在終端里用同樣的賬號執(zhí)行virsh list --all卻正常。原因SSH 密鑰與 libvirt 認(rèn)證回調(diào)的沖突。libvirt 通過 ssh 管道連接遠(yuǎn)端后如果遠(yuǎn)端 libvirtd 要求 SASL它會繼續(xù)走virConnectAuth回調(diào)但本機 SSH 層已經(jīng)用了密鑰登錄沒有可交互輸入的 TTYSASL 拿不到額外憑據(jù)。解決改用已經(jīng)配置好的 SSH 密鑰組合讓整個鏈路不需要交互。在本地執(zhí)行ssh-keygen并把公鑰加到遠(yuǎn)端然后確認(rèn)遠(yuǎn)端/etc/libvirtd/libvirtd.conf里auth_tcp設(shè)為none或者與 ssh 認(rèn)證不沖突。如果你堅持要 SASL就要確保本機有可用的 keychain 代理而不是依賴回調(diào)輸密碼。5.2 啟動域提示權(quán)限不足但用戶已經(jīng)加入了 libvirt 組現(xiàn)象普通用戶在 qt-virt-manager 里能列出域但啟動時報internal error: process exited或者cannot access /var/lib/libvirt/images/xxx.qcow2。原因用戶雖然加入了libvirt組但磁盤鏡像文件的權(quán)限是 600屬于 root。libvirtd 啟動 QEMU 進程時以 root 身份運行所以 root 自己能讀寫但用戶會話對文件的訪問仍然被系統(tǒng)權(quán)限攔截。libvirt組的權(quán)限只管 libvirt 的守護進程控制不管是宿主機文件系統(tǒng)權(quán)限。解決給鏡像文件設(shè)置合理的 ACL例如把/var/lib/libvirt/images下所有 qcow2 文件的組改成libvirt并給組讀寫權(quán)限。另外一個隱蔽點AppArmor 對 QEMU 的訪問控制可能未放行特定路徑在 Ubuntu 上需要在/etc/apparmor.d/usr.sbin.libvirtd里添加路徑規(guī)則并 reload否則啟動會直接被拒絕。5.3 SPICE 黑屏或連接后一直轉(zhuǎn)圈現(xiàn)象虛擬機域啟動正常remote-viewer 連接 SPICE 地址看到黑屏或無限轉(zhuǎn)圈但 VNC 連接同一個域卻正常。原因SPICE 協(xié)議在 TLS 與非 TLS 端口之間切換時客戶端用了錯誤的連接前綴。如果你在 libvirt 里沒有配置 TLS只監(jiān)聽了普通端口客戶端卻用spice://默認(rèn)走 TLS就會一直握手失敗。另一個原因是 spice-guest-tools 沒裝guest 內(nèi)沒有 SPICE 的顯卡驅(qū)動導(dǎo)致顯示輸出沒有推送到 SPICE 通道。解決在 Qt 代碼里拼接地址時顯式使用spice://127.0.0.1:端口同時確認(rèn) libvirt 的graphics節(jié)點里沒有開啟tlsPort。如果 guest 是 Windows先安裝 spice-guest-tools如果是 Linux確認(rèn) spice-vdagent 服務(wù)運行中。我還會用virsh domdisplay去對照實際生成的地址排除端口讀錯的可能。5.4 列表里能看到域但雙擊啟動無響應(yīng)現(xiàn)象qt-virt-manager 的域列表能正確顯示所有虛擬機狀態(tài)顏色也正常但雙擊啟動一個 shutdown 狀態(tài)的域時UI 沒有任何反饋后臺日志也沒有 libvirt 錯誤。原因極可能是同時連接了多個 libvirt 驅(qū)動列表展示的數(shù)據(jù)來自qemu:///system而雙擊后的啟動操作卻因為代碼內(nèi)部 URI 寫死或變量未更新被發(fā)送到另一個連接會話。更隱蔽的是界面上顯示的域是持久域但啟動操作調(diào)用的是virDomainCreate而不是virDomainCreateXML而當(dāng)前域?qū)ο笫菑牧斜砭彺胬锬玫膶ο筮^期。解決在程序初始化時只維護一個全局的連接狀態(tài)值。域列表的每個條目都必須保存它所屬的virConnectPtr指針雙擊時直接使用同一條連接。還要在啟動前調(diào)用virDomainGetState刷新一次狀態(tài)避免操作一個大緩存里已經(jīng)失效的域?qū)ο?。這個坑在虛擬化面板里非常常見尤其是實現(xiàn)了跨后端列表合并之后。5.5 狀態(tài)輪詢把界面卡死甚至是假死現(xiàn)象虛擬機數(shù)量超過 5 個時界面開始出現(xiàn)明顯卡頓數(shù)量達到 20 個時按鈕點擊后要等好幾秒才有反應(yīng)。原因在住線程里做了同步輪詢。virDomainGetInfo對每個域都要發(fā)一次 libvirt 調(diào)用如果虛擬機處于暫?;蜣D(zhuǎn)換狀態(tài)這個調(diào)用可能阻塞幾百毫秒。Qt 主線程一旦阻塞整個事件循環(huán)停擺表現(xiàn)為窗口無響應(yīng)。解決把所有輪詢邏輯移進QThreadPool界面里只接收信號更新。輪詢間隔至少保持 2 秒不要低于 1 秒否則 QEMU 和 libvirt 內(nèi)部的鎖競爭會拖慢原本正常的操作。我在資源里看到它還實現(xiàn)了“輪詢暫停機制”當(dāng)用戶正在執(zhí)行快照或遷移操作時自動拉長輪詢間隔減少干擾。6. 進階技巧把域列表接進 Qt 模型層讓界面自己刷新做到這一步你已經(jīng)能把連接、域操作、顯示輸出跑通。最后一個值得長期沿用的技巧是用QAbstractListModel管理域列表而不是在 QWidget 里直接 push 數(shù)據(jù)。這套模式的收益要等虛擬機數(shù)量變大、狀態(tài)頻繁變化時才能體會到模型驅(qū)動視圖數(shù)據(jù)變化自動通知界面代碼不用到處手動 update。一個簡易的模型頭文件長這樣// domain_list_model.h #include QAbstractListModel #include QVector struct DomainItem { virDomainPtr dom; QString name; int state; // libvirt 的狀態(tài)碼 }; class DomainListModel : public QAbstractListModel { Q_OBJECT public: enum Role { DomainNameRole Qt::UserRole 1, StateRole, DomainPtrRole }; int rowCount(const QModelIndex parent QModelIndex()) const override; QVariant data(const QModelIndex index, int role) const override; QHashint, QByteArray roleNames() const override; private: QVectorDomainItem m_items; };核心思想是重寫data()方法讓角色返回對應(yīng)字段。當(dāng)輪詢線程拿到新狀態(tài)時不要整個模型重置只更新對應(yīng)行并發(fā)送dataChanged信號。這樣列表視圖只重繪變化的行刷新成本大幅降低。我在實現(xiàn)時會額外加一個state到顏色的映射比如 1running用綠色5shutdown用灰色讓用戶一眼看出運行狀態(tài)。從那以后我每次把 qt-virt-manager 部署到新環(huán)境都強制走一遍流程先驗證virsh -c qemu:///system list --all能看到正常列表再啟動一個測試域再用 qt-virt-manager 連接并執(zhí)行一次啟動和關(guān)閉最后用virsh domstate反向校驗界面顯示和實際狀態(tài)一致。這套流程給過我很多次后悔藥也讓我少背了很多個“面板顯示正常但虛擬機起不來”的黑鍋。希望幫到你。本文還有配套的精品資源點擊獲取
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
404操逼福利视频| 国产情侣自拍在线播放| 五月天激情视频| 亚洲久热| 人人妻人人爽| 97干在线| 91插B网站| 成人免费看吃奶视频网站| 成人性爱电影网| 精品一区二区三区四区外站| 国产偷拍网站| 天无日色综合| 97免费在线观看视频| 国产精品久久久久久久毛片1| 亚洲日韩美国人妻| 伊人991| 啊啊啊啊在线观看网址| 狠狠久久手机视频精品| 久久人妻丝袜一区二区三| 久久精品噜噜噜成人看免欧美大片| 粉嫩av久久一区二区三区| 中文字幕日韩国产传媒欧美精品| 亚洲小说视频| 色婷婷电影网| 日日操夜夜操天天操免费观看麻豆| 伊人色综合网电影| 久久久久久久| 熟女丝袜视频| .精品人妻一区二区三| 欧美夜夜狠| 嗯嗯嗯啊啊啊操的我好爽 | 精品.99999| 亚洲国产精品久久AV| 国产大学生高潮在线播放| 伊人久久亚洲色欲综合网站| 国产AV无码AV| 人妻在线臀日韩| a级免费在线观看| 丁香五月天啪啪| 亚洲成成熟女人综合一区二区| 午夜天堂啪啪| 白丝av| 日本熟人妻中文字幕在线|...久久国产精品-国产精品_日本一区二区三区中文字幕 | 啪啪视频mP4| 99久久国产精品免费高潮| 亚洲欧美经典一区二区| www.高清无码诱惑一区.com| 偷拍 欧美 日韩| 夜夜综合| 九九热免费视频| 后入综合久久| 天天干2019| 欧美在线永久天堂| 青青久久久| 丁香六月天| 色综合一本| 欧美人妻精品| 老熟妇一区二区三区…| 内射中国少妇高清视频免费视频| 黄色av网站在线播放| 亚洲欧美日产国产91毛片| 99精品视频在线观看免费| 91亚洲黄色网| 日韩/97| 强奸乱伦AV一天堂网| 亚洲欧洲视频小说在线观看| 免费精品国偷自产在线在线 | 熟妇xxxxx性春色| 精品成人女人久久| 国产精品亚洲免费| 曰韩人妻中文字幕在线 | 怡红院亚洲怡春院av| 九九色色| 欧美成人四级在线播放| 78久久| 日韩资源网| 九九综合| 久久精品国产96精品亚洲拳交| 色97干| 久插综合| 美女黄色一级A视频| 国产成人99久久亚洲综合| 人妻少妇色综合| 高清无码一区二区三区| 欧美91精品国产自产| 日韩性爱免费观看视频| 久久一区二区三区四区五区| 蜜臀久久99精品久久久久久成人小说 | yazhousetuoumei| a天堂视频| 老司机午夜精品视频| 人妻性爱一区二区| 热99这里有精品综合久久| 一二三四区操操Av| 中文字幕在在线观看网站| 欧美日韩91| 国产高清无码一区三区二区| 人人操人人摸超碰| 亚洲性少妇| 中文字幕天天天天天| 亚洲丁香花色| 日本色色色视频| 98久久超碰| 97爱啪| 久久久蜜桃一区二区三区| 国产成年精品高清在线观看91| 久热热| 色欲天香天天综合网-成年人三级片网站-欧美乱妇狂野-日韩国产专区-久久久久久 | 亚州操逼图| av毛片aaaaa免费看| 色偷偷综合91久久噜噜| 亚洲怡春院| 91欧美丝袜| 91久热这里只有精品| 丝袜大香蕉| 久久久久国产一区二| 国产精品探花色| 国内亚洲高清无码| 亚洲精品乱码线路中文字幕| 亚洲熟女av中文字幕| 96精品在线| 在线可观看的黄色网址| 成年人一级黄色毛片大全在线观看| 日韩精品中文字幕一| 一区二区三区探花在线观看| 亚洲精品视频在线播放| 人人天天干干| 国产美女销魂在线观看不卡| 日本十八禁免费看污网站| 人人操人人摸人人看人人插| 巨爆乳一区二区爆乳区| 人妻激情在线视频| 青青草国产一区二区三区| 91男女| 婷婷人妻激情| 日日不卡av| 欧美高清16| 欧美日本不卡| 精品国产乱码久久| 日本视频在线观看污污污| 亚洲一级特黄大片在线播放91| 韩国午夜理伦三级好看| 国产操逼视频在线观看| 亚洲欧综合另类无码一区| 手机在线免费看的av| 中国人高清www色视频免费| 中文字幕二区| 日本国产亚洲一区在线观看| 操逼操网| 精品女人999| 蜜臀av一区二区三区免费观看| 秋霞视频一区二区 | 日本加靬比网站发布页| 久久这里只精品| 欧美日韩在线小说 | 亚洲综合一区二区| 日韩一区二区熟女| 亚洲熟妇综合久久久久久| 久草老司机| 午夜啊啊| 中文字幕乱亚洲美女精品一区| 精品99999| 99这里只有精品国产| 999国产精品999| 最新欧洲欧美日本激情网站| 久久精品国产精品| 日韩综合无码一区久久92| 国产捆绑一区| 久久精品亚洲成a人天堂| 亚洲色堂免费视频| 天天摸天天操视频| 啪啪啪精品| 亚洲成人免费电影| 大香蕉在线SuP| 人妻一区二区三区四区视频| 色五月丁香五月| 亚洲91少妇| 精品二999| 亚州91| 91av一区二区在线观看| 人妻22p| 吻戏激情性巴克| 久久久久久91香蕉国产| 国产精品嫩草影院午夜两性 | 日韩中文字幕宗合在线| 草草影院最新网址| 99自拍B亚洲| 老司机福利社视频在线观看| 91人妻最真实刺激绿帽| 九一综合精品视品av| 国产97av| 户外裸露刺激视频第一区| 国产老熟女| 亚洲同性aV综合| 操逼操逼逼操操逼91 | 色天堂在线观看| 少妇熟女1区2区3区| 99综合网| 久久 精品| 欧美久久伊人| av草草在线电影| 91伊人久| 成人日本精品九区| 欧美一区二区男人天堂| 久jiu久神马影院| 精品一区二区三区麻豆| 狠狠色色| 欧美写真视频一区| 黄站在线免费观看| 天天爽天天操啊啊啊| 欧差乱伦二三| 十八禁啪啦拍视频无遮挡| 日韩久久三区| 校园春色综合香蕉| 欧美三四五区| 伊人精品久久网站| 99超级碰免费视频| 殴美性天天| 91成人久久| 91色图片| 欧美大波激情xxxx| 奸色色 男人天堂 天天射| 精品美女人人干| 天天躁日日躁成人字幕aⅴ| 99rre在线精品99re8| 丰满岳乱妇一区二区三区| 亚洲棕合电彰| 久久久精品中文字幕爱豆| 久久精品中文字幕观看| 蜜桃色色网站视频三区| 97欧美综合网| 国产一区二区欧美日本| 成人精品欧洲亚洲| 不卡一区二区日本视频| 蜜桃臀AV在线| 国产亚洲99久久精品| 国产精品69久久久久久久| 蜜乳中文字幕a在线| 五月丁香综合激情| 伦理第一页| 五月丁香| 欧美大波激情xxxx| 亚洲日本大香蕉1| 1区2区3区在线视频| 97欧美| 婷婷五月天丁香| 撸无码不卡免费视频| 日本人体九九九九九九| 免费又黄又裸乳的视频| 另类图片亚洲加勒比另类图片亚洲加勒比另类图片亚洲加勒比 | 一级性爱视频免费在线| 色青青久久影视| 九色黄站| 拍拍拍拍大尺度黄色三级片拍拍拍拍拍照| 青青草国产一区二区三区| 91狠狠| 久久久久久久久久久久久女过产乱-少妇高潮一区二区三区喷水-成人AV | 综合另类| 国产久9| av操操不卡| 99久视频| 日韩av影片在线观看| 加勒比99999| www.色五月| 日韩av在线免费网站| 人人爱人人乐人人操| 国产欧美成人精品| 农村妇女一级二级三级视频| 亚洲图片91| 操婷婷逼| 九九热超碰97亚洲最新香蕉| 婷婷五月成人| 综合自拍| 国产高清吃奶免费视频网站| 日韩免费在线观看不卡| 久偷拍欧美日韩三区| 色色激情五月天| 狠狠中文字幕| 91香蕉视频在线观看免费| 欧美A√综合网| 精品免费一区二区三区在线亚洲人成| 亚 欧 美 综合| 亚洲欧美精品福利在线| 国产三级中文有码在线视频| 成年人三级黄色片视频| 欧洲欧美视频一区二区| 色黄污美女啪啪啪免费网站| 91精片| 2020中文字幕在线观看| 久久风骚城市| 91超碰在线播放| 蜜臀th| 蜜臀99久久精品久久久久久| 欧美色老汉| 亚洲素人综合| 久久m| 蜜臀AV成人精品蜜臀| 青草影院内射高潮| BBBBB97COM| 日本在线观看网址| 黄色在线网站| 日本道久久综合色色| 男人的天堂啪啪啪啪啪蜜桃不卡| 欧美国产日韩清纯唯美| 麻豆区99999| 亚洲自拍另类丝袜综合| 精品久久久久成人码免| 72av视频| 四虎国产精品永久在线囯在线 | 黄色av一区二区在线| 丝袜熟女2P| 色偷偷综合91久久噜噜| 风间由美日韩欧美久久| 搡老熟女免费视频 | 日韩干B| 亚洲第一页第二页激情| 先锋色眉乱伦资源| 青青国产精品在线| 蜜臀一区二区三区亚洲最新章节在线观看 - 高清蜜臀一区二区三区亚洲全集播放 | 观看免费区二区三区二| 色网1| 伊人网免费视频| 久草大| 天堂综合| 欧美强奸乱| 久久久久亚洲精品| 老熟女网站| 3P乱轮视频| 日韩美女高潮喷水视频| 天天躁日日躁xxxxx| 天天综合亚在线| 无码粉嫩白虎一线天b区| 精品亚洲国产成人av网站| 韩国轻伦国内自拍一区| 色亚洲欧美| 国产一区二区啪啪视频| 清纯唯美综合亚洲| 成人午夜视频免费播放| 日韩BBN| 国产99久久99热这里只有精品15| 91制服丝袜| 欧洲色色| 欧美综合1性辶| 色色激情五月天| 97综合激情| 四虎AV在线观看| 欧美偷拍| www.四虎在线| 精品国产一区探花在线观看| 亚洲欧洲视频小说在线观看| 亚洲一区二区三区不卡国产欧美| 青青操视频在线| 亚洲最新中文字幕免费| 91综合网在线| 天天看特黄的免费网站| 国产在线视视频有精品| 日韩大香蕉| 人妻在线大香蕉| 久久婷五月| 九九九久久久| 蜜区区视频79| 神马久久啊啊| 激情一区二区三区在线观看| 老司机射| 亚洲成人福利电影免费| 欧亚无码视频| se..亚洲欧美| 啪啪啪男女亚洲中文字幕99| 蜜臀久久在线视频| 日产国产精品中文久久婷婷| 人人干黄色| 日本一卡二区在线| 欧美91丝袜| xxx亚洲午夜天堂| 久久婷婷国产一区二区色| 色牛牛AV| 亚洲天堂 视频你懂的| 欧美成熟性爱精品| 乱性AV| 福利视频网站| 啊啊啊操死我| 天天综合网网欲色| 亚洲图片小说欧洲| 91亚洲网| 国产一区二区在线播放| 在线 欧美 亚洲| 国产九九九九九九| 91精品国产91久久久久久久久久久久| 操曰本熟女| 国产第二页| 中文字幕综合人妻| 人妻91少妇| 国产精品人妻无码久久久老鸭窝| 97久久超碰| 日韩啊V| 亚洲欧洲精品视频发布| 久99久视频| 狠狠操狠狠爱| SS久久| 中文字幕免费看| 熟女精品日韩一区二区三区| 国产精品九九九| 青青草好吊色| 日韩精品免费高清视频在线| 1024日韩| 久久亚洲熟妇在线视频| 97伦乱| 色臀av| 久久夜夜| 欧美日韩性爱操大逼| JULIA一区二区三区在线播放| 操逼网免费无码视频| 天综合网| 后入福利| 人妻少妇被猛烈进入中| 日韩色| h在线看免费版在线看| 欧美不卡在线美女| 亚州,欧美在线| 搞中出久久| 天天插天天干| 欧美BT 亚洲色图| AV不卡在线| ,国产乱人伦精品一区二区三区| 久久成人精品| 久久久久久久伊人精品| 超碰资源亚洲97| 97精品一区| 熟女字幕| 亚洲影视高清第一页| 精品国产一区二区三区四区在线看 | 亚洲春色一区二区三区| 大香蕉丝袜一级片| 国产白丝网站| 99热精品在线播放| 久久99干一本高清| 2024人人操人人摸| 国产一区在线看| 无码99| 老司机午夜精品视频| 99热一区二区三区四区| 欧美1727免费观看视频| 日本大香蕉综合网红本杳社区| 日韩黄色成人性爱| 91精品网站| 欧美久久婷| 成人无码电影在线观看网| 日噜夜夜夜夜夜夜夜夜夜夜爽爽爽爽爽爽爽爽爽爽爽爽 | 熟女在线视频| 日韩无码a片| 超碰国产精品无码| 天天综合网国产| 99日精品欧美国产| 精品一级| 一区二区视频你懂的| 欧美日韩国产高清在线一二三区 | 蜜乳AV一区| 奶水 人妻 哺乳 在线| 婷婷五月天在线观看| 久久久久九九九| 国产久久日| 96精品久久久| 日韩专区数据列表-第3230页-精品国产一区二区三区香蕉 久久99熟女人妻中文字 | 97Ai亚洲| 9999亚洲精品| 青青国产精品在线| 精品久久久高清无码| 午夜久久久| 人妻激情偷乱视频一区二区三区 | 99精品网| 新版天堂中文资源8在线| 国产日韩精品suv| 美女诱惑在线一区| 久操99| 在线只有精品| 成人性爱电影一区二区| 伊人网免费视频| 欧美日韩电影一区二区| 天天影视网综合少妇| 五月天黄色激情视频| 乱性AV| 日韩特一级久久| 婷婷亚洲中文字幕在线| 精品久久久亚洲AV成人网站| av毛片aaaaa免费看| 欧美日韩国产人人| 国产有码一区| 亚洲精品蜜桃久久久一区二区三区| 99精品网| 日本熟妇一区二区三区| 99在线精品观看99| 天天爽天天爽| 免费农村成人少妇人妻Aa一区二区视频 | 国产精品久久久久久久久久久久久久久久 | 麻花豆传媒剧国产MV出差| 午夜性生活av免费在线看| 国产一国产一级毛片古装| 久久超碰97| 午夜视频黄| 在线播放免费av福利片| 岛国片国产成人亚洲播放| 日本成人A片网站| 色就色综合| 狠操91,com| 99后入| 天天综合青苹果| 另类图片天天影视| 亚洲精品第一| 丁香激情五月| 天天夜夜久久| 亚洲色图 91| 久久人| 强奸乱伦AV一天堂网| 亚洲精品三区在线观看| 大香蕉乱伦视频网| 欧美超碰96| 中文字幕无码不卡啪啪| 欧美97爱| 亚洲欧综合另类无码一区| 色婷五月天| 国产日韩人人| 久草在线| 色五月婷婷在线| 性色av一区二区| 久久精品国产亚洲粉嫩| 一起草日韩| 天堂av2019| 久久久久深夜无码| 岛国大片国产| 一区二区精品更新提醒| 久久久四区| 熟女精品va中文字幕| 99999精品成人| 美欧色综合| 久久超碰av在线| 丝袜视频网国产90| 日本性爱不卡视频| 国产精品亚洲日韩骚欢乐谷最新地址发布页huanieguty性屋娱乐妖精视频 | 91新在线欧美| 成人精品在线免费视频| 亚洲色鬼| 一本大道久| 亚洲一区二区三区四区视频| 国产日韩人人| 精品人妻中文字幕4399| 久久97资源 网| 韩国一级做a久久久久| 污啪啪啪视频| 蜜臀99久久国产| 久久人妻视频| 加勒比综合| 人妻出轨一区二区三区| 日韩欧洲操屄视频| 五月天久久婷婷亚洲 | 日韩三级伊人| 最新AVzaixian| 嗯嗯啊好爽| 99国产天美| 久久透逼视频| 亚洲污污网站| 黑操B| 国内精品不卡无毒99999| 久9精品| 天天日日日射| 爱做久久久久久| 亚洲色图91| 久久一二三级一一一| 日韩不卡a级视频专区| 日韩大香蕉| 色综合中文字幕不卡| 成人无遮挡毛片免费看| 亚洲宗合网| 99视频自拍| 免费观看网黄| 国产99热| 五月天久久人妻| 色哟哟-国产专区| 99久久久无码国产精品性男| 97伦乱| 色婷婷五月天| ?亚洲伊人伊成久久人综合网| 激情欧美97| 后入式999| 极品粉嫩少妇视频| 中美日韩毛片| 亚洲情色一区三区| 亚洲欧洲小说图片视频| 自拍亚洲综合| 91狠狠综合久久久久久| 太久视频| 人妻一区视频| 欧美性爱免费短视频| 国产精品久久久久无码Av网曝门| 国产福利合集| 国产一区二区二区按摩精品啪视频| 欧美性色欧美| 亚洲毛片基地专区| 黄骗免费网站| 国产家庭乱伦表演| 亚洲欧洲av影音| 久久久久久国产成人| 亚洲高清视频在线免费观看| 亲子敌伦对白在线播放| 91啦人妻| 欧洲亚洲国产综合在线| 日韩无码精品综合久久| 免费久久一级毛片大黄| 欧美性爱日韩高清| 乱伦AVxx| 五月天激情国产综合婷婷婷| 亚洲影视综合网| 美女淫穴| 男女啊啊啊| 99热这里只有精品18| 蜜乳AV免费观看| 日韩精品在线观看网站| 校园春色综合香蕉| 久久久专区| 一本大道久| 久久久久97| 亚洲熟女性高潮久久久| 久久久精品国产亚洲AV无码| 美女黄页| 白嫩91在线亚洲| 98久久| 人摸人人操人| 青青11操操操操操操操操| 激情终合网| 麻豆一区二区AV天美| 东北少妇高潮zzzz| 妺妺跟我一起洗澡没忍住| 夜夜嗨av午夜成人| 视频不卡中文字幕| 99人人干| 亚洲素人综合| 欧美亚洲一级在线观看| 午夜激情床戏激情| 亚洲区 欧美区| 思思热久久成人| 午夜精品一区二区三区三上悠亚| 中文熟女五十乱码在线| 欧美Ⅴ性爱| 韩日精品四区| 蜜臀99精品国产高清在线观看| 国产福利影视| 色女免费在线观看视频网址| 亚洲城人男人的天堂| 亚洲无码一区成人免费午夜| 91free福利| 天天激色| a级成人毛片免费视频高清| 国产视频大全| 特级毛片特黄久久免费看| 97在线观看免费视频l| 被窝影院午夜看片无码| 丝袜天堂| 强奸乱伦大香蕉| 天堂在线一区二区| 欧美亚洲色图另类国产| 日韩av情韩国爱禁区av一区二区| 欧美精品久久久久久久久88| 少妇高潮喷水无套久久久久久| 欧美精品日韩久久久九| 99re在线视频这里只有精品| 粉嫩绯色AV一区二区在线| 一区二区影视| 日本九九久久99播| 婷婷干黄色| 国产情色第一第二页在线观看| 亚洲av无线观看| 啊啊啊啊好爽好舒服一区二区易域| 蜜臀久久99精品久久久老,,| 一起草在线视频| 夜草欧美| 国产精品三级视频网站 | 久久六六| 久久久久久裸体| 亚洲五月天激情| 亚洲性爱电影| 亚洲国产97| 嫩草 我啊~嗯~在线| 五月开心网| 襙一襙| 夜夜骑操视频| 久久久久久久免费A片国产成a人亚洲精∨品无码 | 亚洲系列第一页| 69av一区二区三区| 9Ⅰ超碰| 老鸭窝日丰县女人| 亚洲日本韩国极品一区二区| 欧美疯狂做爰xxxx| 伊人精品久久网站| 国产在线观看一区二区三区| 国产夫妻性生活视频| 偷拍综合亚洲| 色婷婷蜜臀av| 欧美日本一区二区a人| 国产v片在线免费观看| 97伊人超碰| 蜜臀av网址| 超碰久久网| 五毛骚逼极品美女怕怕| 日本东京热大香蕉a片| 78p欧美| 亚洲高清视频在线观看| 久艹伊人精品综合在线| 久9久| 日本三级韩三级99久久| 日本亚洲熟女视频| 婷婷伊人綜合中文字幕| 久久超碰爱| 理论久久婷婷网 8| 亚州人妻| 加勒比AV天堂| 综合天天。| 国产伦乱91| 日韩乱伦视频| 婷婷九月色| 五月久久HDAV| www被窝色com| 91五十路| 萌白酱自拍视频| 亚洲第一黄色av网站| 婷婷丁香久久| 欧美老妇综合网| 日韩有码回春沙龙第一页| 国产区在线| 韩国一级做a久久久久| 草莓精品视频在线免费观看| 91三级理论片播放器| 大香蕉五月天| 超碰性爱97| 性爱欧美五月| 美女久久久久久久久久久| 国产成人自拍视频视频| 嗯啊不要在线观看嗯啊| 日夜久久久九九九久| 久久人人爽av亚洲精品天堂桃色| 麻豆天美在线| 黄色AAAAAAAAAAA大片| 99亚洲天堂| 欧美成人亚洲精品| 国产9熟妇视频网站| 中文字幕丝袜国产第一页不卡| 亚洲欧洲另类| 97欧美色综合| 国产粉嫩蜜臀av一区二区三区| 粉嫩av在线一区二区| 青草成人免费视频一COm| 狠狠躁天天躁日日躁| 91殴美| 草莓精品视频| 久久国语| 吖在线不卡一区二区国产剧情| 激情五月综合| 精品国产乱码久久久久久日本公司| 2018天天日天天日| 亚洲美女精品| 农村女一级毛卡片| 男人兔费天堂| 97热视频在线观看| 久久欧美1卡2卡3| 97超碰碰碰| 曰韩少妇无码| 精品人成视频在线观看| 欧美大香蕉专区网| 精品91摸| 高清无码91| 亚洲国产婷婷在线播放| 被体育老师抱着c到高潮| 九热大香蕉| 亚洲91色| 色五月激情综合网| 久草精品一区| 欧美偷拍区| 色女女女导航| 久久日韩肥臀| 国产一区二区a毛片| 久久久久久大| 高清不卡 中文 人妻| www.久久制服糖| 麻豆天美电影一区二区| 肥臀熟女一区二区三区视频| 人人摸人人摸人人干| 欧美在线啊啊啊| 伊人操| 超碰人人草| 五十路成人在线视频二区三区| 日韩中文字幕精品一区在线| 综合网欧美在线| 男人的天堂Va| 丁香五月性| 国产精品午夜精品| 黄色视频特级毛片| 中文字幕在线2| 美女尤物人人操| 91AV天堂| 日va操| 久久动漫精品视频这里只有精品| 欧美色欧美| 日韩乱码Av| 精品综合久久久久久五月天| 日本在线视频导航| 中出91视频| 欧美一区二区亚洲天堂| 九九九九精品在线| 欧美色视频在线| 台湾一区国产高清在线| 人人操人人精品影片| 日韩av不卡在线观看| 日欧毛片久久| 18禁无码永久免费无限制| 色月天AV导航| 性色av大全| 内射中出日韩在线观看视频| 岛国黄片网站| 人人手机欧洲亚洲国产人妻| 久久久久亚洲熟妇熟女| 97久久免费| 思思热国产在线视频| 天天操天天7| 日韩国产乱子伦App| 亚洲日本大香蕉1| 婷婷五月综合在线| 久久久精品网| 国产人伦精品一区二区三区| 国内精品a| 上床不卡网站| 在线观看中文av字幕| 台湾佬大香蕉| 男人天堂2019亚洲| 午夜成人爽爽爽爽A片李冰冰| 欧美激情欧美精品| AAAAAAAAA黄片| 中文字幕久久亚州无码| 激情五月丁香五月| 国产内射爽爽大片| 亚洲欧美日韩国产丝袜自拍中文| 国产成人无码a| 中文精品少妇天堂| 美女露胸露尿口| 色狠狠 - 百度| 91N综合网| 美腿丝袜偷拍亚洲欧美| 不卡啪啪视频| 日韩av在线精品观看| 亚av顶级裸体一区二区三区四区五区| 无码抄逼网| 男女啪啪网站免费视频| 夫妻AV网站| 台欧久久精品视频| 久久无码电影| 国产无码精品成人| 蜜臀一二三区| 亚洲男人天堂网久久| 亚洲第一无码播放立川理惠| 加勒比综合网| 久久精品操| 欧美情色贴图| 超碰在线人妻不卡| 美女黄页| 人妻熟女午夜精品在线| 国产无套粉嫩白浆在| 亚洲囯产精品女人久久久| 日本精品五区| 2020中文字幕在线观看| 欧美日韩精品久久久久东北老熟妇| 国产女同性恋视频| 日韩 人妻 精品| 亚洲不卡AV在线| 爱射综合| 9l视频自拍9l九色成人| 青青草啪啪网| 欧洲精品一级二级精品综合视频综合| 人妻色情天天操| 色情婷婷久久五月天| 色天堂综合| 最新精品久久蜜桃| 91国产大片| 欧美亚洲一区二区久久久婷精品大包诱| 精品四五区| 亚洲综合春色| 亚洲免费精品一区| 91丝袜在线观看视频在线观看| 久久久蜜桃一区二区三区| 免费精品99| 国产av尤物| 91熟女熟妇视频网站| 国产11页| 精品91摸| 双插在线| 啊啊啊啊啊好舒服视频| 男人天堂网手机版婷婷| 久久精品女同亚洲女同13| 久草电影网| 老司机香蕉久久久久| 久久人妻熟女一区二区| 国产精品乱码久久久久| 97视频在线| 91一区二区三区蜜桃| 亚洲国产91精品一区二区久久| 国内偷自视频区视频综合| 福利社区午夜一区二区| 国产高清在线观看欧美| 久久性爱大全| 色噜噜狠狠色综无码久久合欧美| 亚洲 图片 综合91| 99爱久久视频频| 九九九久久久久| 啊啊啊啊啊好舒服视频| 新怡红院| 婷婷色综合欧美日韩| 亚洲无码超碰免费| 久久精品中文字幕无码l| 欧美精品999| 旡码电影特区| 97超碰总站| 男人天堂新| 26uuu成人影片| 日韩成人大片一区二区| 黑操B| 日韩欧美丝袜诱惑| 亚洲天堂一区二区| 国产色图乱伦| 夜间福利片1000无码| 色色亚洲| 欧美少妇性乱| 97碰碰色| 成 人片 黄色大片| www色色色com| 久草新免费| 人妻熟女一区二区三区视频| 人人人摸人人| 亚洲欧洲国产综合av| 久久国产精品91| 99999这里都精品| 青草精品视频-日本久久久久网站| 无码一区二区精品视频久久久春药 | 五月婷丁香| 国产一级久久久| 久久国产精品视频| 亚州91| 国产传媒操逼视频| 日韩亚洲美女一区久久| 2003天天干夜夜操| 欧美天天射| 亚洲一区二区中文字幕| 国产夫妻一区二区| 91女优在线观看| 尤物网站91| 中日高清无码操逼视频| 91丝袜美女| 少妇天堂| 日韩欧美午夜视频在线| 射 色综合| 欧美96交| 亚洲欧美日韩制服另类| 久久久中文| 超碰久久网| 日韩成年人性爱视频| 亚洲精品三| 日影院久久婷婷夜夜网| 一二三区精品视频| 在线精品福利免费播放| 精品999日本| 亚州性9| 国产亚州日韩欧美看片| 日韩无码AB| 欧美色人| 人妻久久久久久久久久久久久久久 | 日本日皮视频逼| 老汉网| 91肉丝| 欧美国产日韩清纯唯美| 欧亚日本情色| 欧美日韩色综合网| 欧美亚洲丝袜美女电影| 99人妻| 妺妺跟我一起洗澡没忍住| 98超碰日本| 国产高清免费不卡av| 中文字幕一区二区三区人妻少妇在线| 狠狠爱夜夜| 这里只有精品视频在线观看麻豆| 97色冈| 人妻丝袜美腿中文字幕| 亚洲欧美日韩夜夜| 91劲爆| 首页中文字幕中文字幕免费| 午夜天堂精品久久| 欧美色www亚洲国产阿娇要播| 青青网三级视频| 久久熟女嫩草成人片免费| 69精品久久久久中文字幕| 色五月激情AV在线| 亚洲精品一区二区精品| 中文在线久久字幕| 国产三级在线现体验区| 九久久九精品视频| 男女啪啪啪18禁网站| 厕所偷拍在线| 综合网91| 精品久久在线区一区| 思思久热在线精品66| 亚洲国产欧美日韩人妻日中文| 97超碰中文在线| 大香蕉伊人一区在线观看| 性色A∨91| 综精品久久久aaaa| AV一起草在线| 成人久久无码www| 天天干天天燥| 综合天天。| 18禁网站在线播放| 96久久久精品| 日韩一级片在线看| 大香蕉日韩| 中文字幕在线观看丝袜| 亚洲?V高清一区二区三区尤物| 美女啊啊啊啊pc| 国产一区二区三区高清视频| 人妻大相焦在线| 久久久久久国产精品免费网站| 欧美人人天天网| 亚洲AV成人无码一区二区三区在线观看 | 国产三级多多影院2022国产AA一级毛片无码 | 国产精品一区二区黄片| 成年在线视频日本亚洲在线视频区精品江靖宇公司 | 在线毛片片免费观看| 天天舔九色婷婷| 亚洲无码?第一页| 大香蕉视频啪啪啪啪| 亚洲伊人久久精品狠狠在线| 国产黄色视频久久| 天美传媒av在线| 91丝袜美女国产| 九九九热| 天天综合麻豆视频| 国产精品一二三免费网站| 天天综合网日韩| 日韩精品大香蕉伊人在线| 婷婷午夜| 一级乱伦网站| 黑人干亚洲| 日韩情色视频| a男人的天堂久久一级A毛片| 人妻在线大香蕉| 精品久热| 国产精品女生av| 久久婷婷一区| a人欧美综合天堂麻豆| 女人高潮大叫一级毛片| 91综合站| 蜜桃视频啊啊啊啊| 中文字幕视频一区视频二区| 欧美日韩国产黄色片| 97天天操| 91伊人久久在线| 亚洲精品一二三四区| 久久毛卡| 亚洲风情在线观看| 国产中文福利| 久久极品一区二区| 中文字幕成人理论在线| 伊人操| 日韩BBN| 今日头条成人一区二区三区四虎精品| 久久精品色欧美aⅴ一区二区| 免费看黄片现成| 超碰97 线线 在现| 天操天操夜操夜月操月年年操操| 狠狠干狠狠干| 午夜欧美女人操逼| 亚洲成aⅴ人片不卡无码| 久久久久久久久久久精| 91挑色欧美| 国产精品肉丝自拍| 污污汅18禁网站在线永久免费观看| 日韩少妇无码| 麻豆一区二区三区在线看 | 大香蕉欧美| 职场同事知名国产国产精品久久欧美日韩 | 九色精品视频导航1| 日韩兔费看黄片| 亚洲综合69| 安徽熟妇视频| 超碰 97国产熟女| 五月婷婷大香蕉| 国产精品极品美女视频| 日韩精品一区二区高清| 色牛aV| 人妻丝袜二区| 天堂亚洲精品| 男人天堂无码| 美女骚尻视频| 99热精品国产| 成人日本精品九区| 夜夜高潮夜夜爽高清视频一| 日韩丝袜二区| 三级三级三级a级全黄三| 强奸乱伦AV网站| 一区二区三区黄色片a| 白丝av| 91精品国产91综合久久蜜臀| 91无遮挡| 热99这里有精品综合久久 | 91精品婷婷国产综合久久| 九九热这里只有在线精品视 伊人草 成人菠萝蜜视频在线观看 | 天天操天天射天天日| A一区片| 国产精品露脸在线观看| 欧州91高潮| 亚洲黑人在线| 乱欲视频| 伊人五月天婷婷| 婷婷超| 无码久久国产 | 精品无码一二三四区| 亚洲av热热色| 欧美 日韩 婷婷 五月| 一二三四视频在线社区中文字幕| 亚州色站 日韩电影| 操操操操网黑人| 色网1| 天堂av最新电影网| 国产精品一区二区麻豆| 992视频一区| 色激情综合网站| 超碰97人妻免费在线| 久久久久久99AV无码免费网站| 日韩高清黄片| 国产极品美女高潮无套在线观看| 免费无码婬片AAAA片直播色戒| 性爱网站一区二区| 黄色一区二区秘书性感| 97bbn| 花野真衣| 2019天天操天天爽天天拍| 成人精品视频一区二区| 欧美日韩青操| 男人的天堂VA| 97超碰9| 亚洲无线观看久久| 亚洲精品毛片在线观看| 探花激情视频| 欧美视频中文字幕区| 91啪啪视频| 精品一区二区三区蜜桃臀赵总 | 深夜国产一区二区三区在线看| 影音先锋中文字幕日本好一区二区| 午夜福利免费精品视频| 婷婷五月天小说| 在线黄色污污网站| 老熟女天天操| 亚洲AV无码乱码| 亚洲欧美综合区自拍另类| 五月婷丁香| 欧美在线55555| 91激情国产| 日本性爱视频一级|