Ana içeriğe geç

VNC konsolu açılamıyor

Belirti​

Sanal makine (VM) konsolu web arayüzünde açılmıyor ve bağlantı kurulmuyor.

Nasıl kontrol edilir​

Bu adımları sırayla izleyin: her adım yalnızca önceki kontrol başarılı olduğunda anlamlıdır.

  1. Makine durumu. Konsol yalnızca çalışan bir makine için açılır: VM listesindeki State sütununu kontrol edin. Durdurulmuş bir makinenin konsol düğmesi yoktur.
  2. İzinler. Access VM Console yetkisi (1102) konsolun açılmasına izin verir. Bu yetki olmadan çağrı -403 döndürür.
  3. Güvenlik günlüğü. Security Event Log bölümünde Category filtresini virtual machines olarak ayarlayın. Başarılı bir bağlantı vm.console_connected, başarısız bir bağlantı vm.console_connect_failed, konsol isteğinin kendisi ise vm.console_access kaydını oluşturur. Bunlar, isteğin WSS köprüsüne ulaşıp ulaşmadığını veya daha önce başarısız olup olmadığını gösterir. İlk iki olay türü 3.0.5'te eklendi.
  4. HTTPS uç noktasına giden ağ yolu. WebSocket bağlantısı tüm yolu geçebilmelidir: Upgrade başlığını iletmeyen proxy'ler ve yük dengeleyiciler konsol bağlantısını bozar, normal API çağrıları ise çalışmaya devam eder.

Neden​

Konsol, kümenin HTTPS uç noktasındaki WebSocket proxy'si üzerinden çalışır. Kullanılamama durumu genellikle süresi dolmuş bir oturumdan veya HTTPS uç noktasına giden yolda engellenen bir WebSocket bağlantısından kaynaklanır.

Daha az belirgin üçüncü bir neden de vardır: "konsol belirteci–makine" eşlemesi dağıtıcı belleğinde 300 saniye tutulur; bu aynı zamanda WSS köprüsünün varsayılan ömrüdür. Eşleme bilinçli olarak kalıcı değildir. Bunun iki sonucu vardır. Bir konsol bağlantısı daha sonra açılamaz: beş dakika sonra artık hiçbir şeyle ilişkili değildir. Dağıtıcının yeniden başlatılması eşlemeyi kaybettirir. Açık konsollar çalışmaya devam eder, çünkü köprüyü kümenin HTTPS uç noktası sürdürür. Günlük zenginleştirmesi kaybolur: bağlantı olayı kullanıcı veya makine bilgisi olmadan kaydedilir ve kayıtta yalnızca belirteç parmak izi ile istemci adresi kalır.

Konsol çağrısının kendi hatalarının ayrı kodları vardır: -3103, bu kimliğe sahip bir makinenin bulunmadığı veya makinenin görünürlük kapsamınızın dışında olduğu anlamına gelir; -3112, desteklenmeyen bir konsol türünün istendiği anlamına gelir; -403, yetkinin eksik olduğu anlamına gelir; -78 ise bir veritabanı hatası anlamına gelir.

Çözüm​

Oturumu yenileyin (yeniden oturum açın) ve kümenin HTTPS uç noktasına giden ağ yolunun WebSocket bağlantılarına izin verdiğini doğrulayın, ardından konsolu yeniden açın.

Günlükte vm.console_connect_failed görünüyorsa istek köprüye ulaşmıştır ve sorun ağda veya eşlemenin ömründedir: konsolu kaydedilmiş bir bağlantıdan değil, arayüzden yeniden açın. Günlükte bu üç olayın hiçbiri yoksa hata köprüden önce meydana gelmiştir: makine durumunu ve yetkiyi kontrol edin.

API yöntemleri​

Bu sayfada ele alınan API işlemleri vm-console, vm-get ve security-event-list yöntemleridir. Bkz. API başvurusu.

Ayrıca bkz.​