Configuring Network between Host and Guest VM in VirtualBox

หลังจากพยายามลองใช้ทุกอย่างโดยไม่ใช้ VM เลย ใช้ WSL แล้วมีบางเคสที่เจอแล้ว ว่ามันควรใช้ VM มากกว่า ถ้าไปลง docker ใน WSL แล้วตัว docker desktop มันเอ๋อๆ วันนี้เลย แยก VM ดีกว่า โดยใน VM แยก 2 Network Card

  • Bridge
  • Host Only เป็นที่มาของ Blog นี้ เอาไว้ให้ SSH เอา //มีเวอร์ชันที่ทำแบบ NAT ด้วย แต่พอเวลาผ่านไปคุยกับหลายๆคนแล้วมันแปลกๆ ปกตินิยมท่า Host Only มากกว่าครับ

ต่อไปมาเริ่มลงมือทำกันเลยครับ

Virtual Box

  • ที่ Virtual Box เราต้องมากำหนด Network Adapter แบบ Host-Only ให้เป็น Fixed IP อย่างผมกำหนดช่วงเป็น 192.168.56.0/24 ครับ จะใช้ IP เข้าไป Manage VM ครับ
  • จากนั้นที่ VM เราก็กำหนด Network 2 อันครับ
    - Adapter1: Bride Adapter เอาไว้ต่อ Internet เวลา Update Package อะไร
    - Adapter2: Host-Only ให้เป็น Fixed IP เป็น Management IP ครับ

VM

จำได้ว่าเมื่อก่อนเวลา Config Network ต้องไปแก้ที่ไฟล์ Config ของ Network เอง (ประมาณพวก /etc/network/interfaces แต่ตอนนี้ทำเป็น YAML File ได้แล้ว ผ่านตัว Canonical Netplan เจ๋งดี แต่น่าจะได้กับ OS รุ่นใหม่ๆนิดนึง Blog นี้จะลองแบบ YAML นี่แหละครับ

  • ตรวจสอบว่าเรามี Network Card อะไรบ้าง ด้วยคำสั่ง
ip a
  • สร้างไฟล์ YAML ขึ้นมา โดยที่ตัว OS มันจะไปอ่านค่าจากที่นี่ก่อน
sudo nano /etc/netplan/01-netcfg.yaml
  • กำหนดรายละเอียดเข้าไป อย่างของผมจาก ip a พบว่ามี network card 2 ใบ enp0s3 / enp0s8 ผมสามารถลองมากำหนดค่าได้เลย
    - enp0s3 - ฝั่ง VirtualBox เป็น Bridge ผมจะให้มัน dhcp4 (IPv4) - Assign IP แบบ Auto และปิดตัว dhcp6 ของ IPv6
    - enp0s8 - ฝั่ง VirtualBox เป็น Host Only จะ Set IP เป็น Manual จาก Property addresses
network:
  version: 2
  renderer: networkd
  ethernets:
    enp0s3:
      dhcp4: yes
      dhcp6: no
    enp0s8:
      dhcp4: no
      dhcp6: no
      addresses: [192.168.56.10/24] #VM IP should in host only network 192.168.56.0/24 network) 
      #routes:
      #- to: default
      #  via: 192.168.56.1

Reference


Discover more from naiwaen@DebuggingSoft

Subscribe to get the latest posts to your email.