KVM VirtManager ile Host ve Sanal Makine Arasında Port Paylaşımı

KVM üzerinde çalıştırdığım, VirtManager ile yönettiğim bir Windows 10 sanal makinem var. Bridge network’u ayarladım, Host’dan VM’e, VM’den Host’a ping atabiliyorum. Fakat Host’da bir portta çalışan bir uygulamaya VM’den, VM’de bir portta çalışan bir uygulamaya Host’tan ulaşamıyorum. Buna dair bildiğiniz bir yöntem var mı?

Detay Bilgiler
> sudo cat /etc/netplan/01-kvmbridge.yaml 
network:
  version: 2
  renderer: NetworkManager
  ethernets:
    eno1:
      dhcp4: false
  bridges:
    bridge-eno1:
      interfaces: [eno1]
      dhcp4: false
      addresses: [192.168.0.2/24]
      gateway4: 192.168.0.1
      nameservers:
        addresses: [192.168.0.2, 8.8.8.8, 1.1.1.1]
> sudo chmod 600 /etc/netplan/01-kvmbridge.yaml
> sudo netplan apply

image1

Merhaba, ip yönlendirmen açıkmı, kontrol edebilirmisin ?

 sysctl net.ipv4.ip_forward
> sysctl net.ipv4.ip_forward
net.ipv4.ip_forward = 1

Açık.

1 Like

VM’de ağı NAT ile paylaşarak dene

bir de localhossta açtığın porta guestten erişebilmen için “localhost:433” yerine hostun lokal IP adresi:uygulama portu şeklinde yazman gerekiyor onu bi kontrol et

örneğin hostun yerel ipsi 192.168.1.14, ve 433 portunda nextcloud var diyelim, buna biz guestten adres çubuğuna 192.168.1.14:433 yazarak erişiyoruz

aynı şekilde guestte bir uygulama varsa hosttan da guestin lokal ipsi ve port numarasını girerek erişebiliyoruz başka bir bilgisayar olduğundan.

İlk o şekilde denedim, varsayılan olarak NAT ile başlıyor, fakat kendi networku oluşturulduğu için lokal ip’sine ping de atılmıyor, dediğin gibi lokal ip’si ve port üzerinden erişim de sağlayamıyorum.

Host’da güvenlik duvarı yok, VM’deki güvenlik duvarını da kapattım. Fakat erişilmedi bir türlü.

Aranızda deneyen var mı? Veya deneme imkanınız var mı?

vm network driverın ne? eğer virtio değilse network ayarlarından virtio NAT ı seçip virtio driverlarını kurduktan sonra tekrar dene, port forwarding açık ve firewall da kapalıysa olmaması için bir sebep göremedim. Dediğim gibi networkünü virtio ile ayarlamayı dene eğer halihazırda virtio driverlarını kullanmıyorsan.

1 Like

Ben iki farklı ayarla kullanıyorum. Biri iç NAT localde erişim için biri de out bridge makineyi internete açmak için.

FirewallD üzerinde harici bir ayar yapmadım. Gerekirse virbr0 arayüzünü açarsın.

Ayarlar bu şekilde:

İç NAT: 192.168.122.0/24 (Sanal makineye aktif RDP ve MSSQL vd. için kullanıyorum.)

<interface type="network">
  <mac address="52:54:00:05:f3:a0"/>
  <source network="default" portid="e3ba2663-b69a-4090-8c71-e0213e713fb0" bridge="virbr0"/>
  <target dev="vnet0"/>
  <model type="e1000e"/>
  <alias name="net0"/>
  <address type="pci" domain="0x0000" bus="0x01" slot="0x00" function="0x0"/>
</interface>

Dış Network (source: dev bilgisayarındaki internet bağlı olan arayüz bunu kendine göre değişmen gerek):

<interface type="direct">
  <mac address="52:54:00:00:52:b7"/>
  <source dev="enp6s0" mode="bridge"/>
  <target dev="macvtap0"/>
  <model type="e1000e"/>
  <alias name="net1"/>
  <address type="pci" domain="0x0000" bus="0x04" slot="0x00" function="0x0"/>
</interface>

Virtio driver’ları yüklü, NAT virtio da denemiştim, olmadı maalesef.

  • Yeni tekrardan Windows10 kurdum.

  • Virtio driver’ı kurdum.

  • Ağ olarak NAT-virtio seçili.

    <interface type="network">
      <mac address="52:54:00:a2:27:9c"/>
      <source network="default" portid="ee97109d-c651-4218-963c-62dcbaa46dbe" bridge="virbr0"/>
      <target dev="vnet4"/>
      <model type="virtio"/>
      <alias name="net0"/>
      <address type="pci" domain="0x0000" bus="0x01" slot="0x00" function="0x0"/>
    </interface>
    
    > ip link show virbr0
    3: virbr0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN mode DEFAULT group default qlen 1000
        link/ether 52:54:00:92:92:99 brd ff:ff:ff:ff:ff:ff
    
  • Firewall kapalı.

Şuan VM’de localhost:7165 adresinde çalışan bir uygulama var. Host’da VM’e atanan lokal ip, 192.168.122.89:7165 ile ulaşamıyorum. Yaptığınız ek bir ayar var mı?

hiç olmadı vm’i virtualbox ile oluşturup, yine network olarak NAT seçip, virtualbox guest addons driverlarını kurduğun zaman muhtemelen çalışacaktır. Virtualbox böyle konularda genelde daha stabil oluyor denemekte fayda var.

vm’ini oluşturduktan sonra şuradan all supported platforms paketini indir ve kur, daha sonra vm’in içindeyken devices > insert guest addons cd seçeneğine tıklayıp vm’in içine gelen cd’den driverları da kur, umarım bu sorunu kökten çözer.

Virtualbox Extension pack

1 Like

Virtualbox yükledim, sistem de qemu’ya göre oldukça hızlı çalışıyor. Virtualbox’da port yönlendirmesini ekledim, gerekenleri yaptım. Fakat yine de host’tan ulaşamıyorum portlara. Arch tarafında mı bir eksiklik var acaba?