ที่อยู่ VMWare Fusion Linux โดยชื่อโฮสต์?


11

ฉันมีรูป Ubuntu Server 9.04 ตั้งค่าใน VMWare Fusion 3.0.0 โดยใช้ตัวเลือก NAT สำหรับการเชื่อมต่อเครือข่ายของแขก จากโฮสต์ Mac ฉันสามารถ ssh ไปยัง linux guest ได้ดีโดยใช้ที่อยู่ IP แต่ฉันต้องการอ้างถึงโดยใช้ชื่อโฮสต์เพื่อความสะดวก เช่น:

mac-host:~ ssh user@linux-guest.local

ฉันมีการตั้งค่าที่คล้ายกันโดยใช้ Parallels เมื่อสองสามปีก่อน แต่ฉันจำไม่ได้ว่าตั้งค่าอย่างไร อาจมี "เพิ่งทำงาน"

มีข้อเสนอแนะเกี่ยวกับวิธีการทำงานนี้หรือไม่?

คำตอบ:


14

แก้ไขคำแนะนำในเวอร์ชันแรกที่ฉันโพสต์ทำให้เกิดข้อขัดแย้งกับเนมเซิร์ฟเวอร์และเกตเวย์ที่ VMware ใส่ใน vmnet8 รุ่นนี้แก้ไขปัญหา

รุ่นของซอฟต์แวร์:

  • MAC OS X เวอร์ชัน 10.6.3
  • VMware Fusion เวอร์ชั่น 3.1.0 (261058)
  • Ubuntu 10.04 LTS

สิ่งที่ฉันได้ทำ:

  • ระหว่างการสร้าง VM ให้ตั้งค่าเครือข่ายเป็น NAT

  • บน Linux Guest:รัน ifconfig เพื่อรับที่อยู่ฮาร์ดแวร์HWaddr, ที่อยู่ออกอากาศBcast, ที่อยู่อินเทอร์เน็ต IPv4 inet addrและรูปแบบMaskการใช้งาน

    UbuntuGuest$ifconfig
    eth0      Link encap:Ethernet  HWaddr 00:0c:29:53:bf:e5  
              inet addr:192.168.213.129  Bcast:192.168.213.255  Mask:255.255.255.0
                     <snip>
    
  • บน Linux Guest:ค้นหาข้อมูล nameserver

    UbuntuGuest$cat /etc/resolv.conf
    nameserver 192.168.213.2
    domain localdomain
    search localdomain
    
  • บน Linux Guest:ค้นหาที่อยู่เกตเวย์: (แสดงรายการในคอลัมน์เกตเวย์ของบรรทัดที่มี 0.0.0.0 เป็นปลายทาง)

    UbuntuGuest$route -n
    Kernel IP routing table
    Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
    192.168.213.0   0.0.0.0         255.255.255.0   U     0      0        0 eth0
    0.0.0.0         192.168.213.2   0.0.0.0         UG    100    0        0 eth0
    
  • บน OS X Host:แก้ไขdhcpd.confไฟล์สำหรับvmnet8(สวิตช์เสมือน NAT) เพื่อกำหนดที่อยู่ IP คงที่ให้กับ Linux Guest (ใช้โปรแกรมแก้ไขที่คุณเลือกในบรรทัดที่สี่)

    OSXHost$cd /Library/Application\ Support/VMware\ Fusion/vmnet8/
    OSXHost$sudo chmod u+w dhcpd.conf
    OSXHost$sudo cp dhcpd.conf dhcpd.conf.bak.20100619
    OSXHost$sudo emacs dhcpd.conf
    
  • บน OS X Host:ไฟล์จะเริ่มปรากฏดังนี้:

    # Configuration file for ISC 2.0 vmnet-dhcpd operating on vmnet8.
    #
    # This file was automatically generated by the VMware configuration program.
    # See Instructions below if you want to modify it.
    #
    # We set domain-name-servers to make some DHCP clients happy
    # (dhclient as configured in SuSE, TurboLinux, etc.).
    # We also supply a domain name to make pump (Red Hat 6.x) happy.
    #
    
    
    ###### VMNET DHCP Configuration. Start of "DO NOT MODIFY SECTION" #####
    # Modification Instructions: This section of the configuration file contains
    # information generated by the configuration program. Do not modify this
    # section.
    # You are free to modify everything else. Also, this section must start
    # on a new line
    # This file will get backed up with a different name in the same directory
    # if this section is edited and you try to configure DHCP again.
    
    # Written at: 12/26/2009 10:35:10
    allow unknown-clients;
    default-lease-time 1800;                # default is 30 minutes
    max-lease-time 7200;                    # default is 2 hours
    
    subnet 192.168.213.0 netmask 255.255.255.0 {
          range 192.168.213.128 192.168.213.254;
          option broadcast-address 192.168.213.255;
          option domain-name-servers 192.168.213.2;
          option domain-name localdomain;
          default-lease-time 1800;         # default is 30 minutes
          max-lease-time 7200;             # default is 2 hours
      option routers 192.168.213.2;
    }
    host vmnet8 {
        hardware ethernet 00:50:56:C0:00:08;
        fixed-address 192.168.213.1;
        option domain-name-servers 0.0.0.0;
        option domain-name "";
        option routers 0.0.0.0;
    }
    ####### VMNET DHCP Configuration. End of "DO NOT MODIFY SECTION" #######
    

สิ่งที่ควรทราบ:

  • subnetส่วนควรจะตรงกับข้อมูลทรัพย์สินทางปัญญารวมกันบนลินุกซ์ของผู้เข้าพัก inet addrจะได้รับภายในrange, netmaskจะตรงMask, option broadcast-addressจะตรงกับBcast, option domain-name-serversและoption domain-nameจะตรงกับข้อมูลที่รวบรวมด้วยcat /etc/resolv.confและoption routersจะตรงกับGatewayจากroute -nคำสั่ง

  • เราต้องการกำหนดที่อยู่ IP แบบคงที่เพื่อให้เราสามารถเพิ่มรายการลงในhostsไฟล์ของ OS X Host ที่อยู่จะต้องอยู่ภายในที่subnetกำหนด ที่อยู่ที่ไม่สามารถกำหนดให้เป็นที่อยู่rangeในส่วนเครือข่ายย่อย, ที่อยู่การออกอากาศ, fixed-addressสำหรับhost vmnet8, เซิร์ฟเวอร์ DNS และเกตเวย์ และฉันคิดว่าที่อยู่เท่ากับ subnet ไม่ได้รับอนุญาต ในตัวอย่างนี้ subnet คือ192.168.213.0ดังนั้นผู้รับที่มีอยู่จาก192.168.213.1 to 192.168.213.255น้อยกว่า192.168.213.128 to 192.168.213.245(ช่วง) น้อยกว่า192.168.213.255(ออกอากาศ) น้อยกว่า192.168.213.1(โฮสต์ vmnet8) น้อยกว่า192.168.213.2(เกตเวย์และเซิร์ฟเวอร์ DNS) สุทธิคือที่อยู่ที่192.168.213.3 to 192.168.213.127มีอยู่


  • บน OS X พิธีกร:สร้างใหม่hostรายการดังต่อไปนี้ มาตราไม่แก้ไข รายการนี้จะกำหนด IP แบบคงที่ให้กับ Linux Guest hardware ethernetต้องจับคู่HWaddrจากifconfigบน Linux Guest fixed-addressเลือกที่อยู่คงที่พร้อมใช้งานสำหรับ option broadcast-address, option domain-name-servers, option domain-nameและoption routersจำเป็นที่จะต้องตรงกับตัวเลือกที่กำหนดในส่วนของsubnet dhcpd.conf(ซึ่งเราได้จับคู่กับข้อมูลที่รวบรวมบน Linux Guest แล้ว) ในตัวอย่างนี้รายการโฮสต์คือ:

    ####### VMNET DHCP Configuration. End of "DO NOT MODIFY SECTION" #######
    host serpents-hold {
        hardware ethernet 00:0c:29:53:bf:e5;
        fixed-address 192.168.213.3;
        option broadcast-address 192.168.213.255;
        option domain-name-servers 192.168.213.2;
        option domain-name localdomain;
        option routers 192.168.213.2;
    }
    
  • ใน OS X Host ให้บันทึกdhcpd.confและปิดโปรแกรมแก้ไขของคุณ

  • บน OS X Host และแขกทั้งหมด:ปิด VMs และ VMware ทั้งหมด

  • บน OS X Host:เริ่มบริการ VMware ใหม่:

    OSXHost$cd /Library/Application\ Support/VMware\ Fusion/ 
    OSXHost$sudo ./boot.sh --restart 
    
  • บน OS X Host:ค้นหาActivity Monitorและตรวจสอบให้แน่ใจว่ากระบวนการสองกระบวนการแต่ละชื่อvmnet-dhcpdกำลังทำงาน (อันหนึ่งสำหรับvmnet8เครือข่าย NAT อีกอันสำหรับเครือข่ายโฮสต์เท่านั้น) หากคุณไม่เห็นทั้งคู่อาจมีปัญหากับvmnet8/dhcpd.confไฟล์ในโฮสต์ OS X แก้ไขและเริ่มบริการ VMware ซ้ำ

  • บน OS X Host:เริ่ม VMware และ Linux Guest VM

  • บน Linux Guestบน VM guest ตรวจสอบว่าการตั้งค่าเป็นไปตามที่คาดไว้:

    UbuntuGuest$ifconfig
    eth0      Link encap:Ethernet  HWaddr 00:0c:29:53:bf:e5  
              inet addr:192.168.213.3  Bcast:192.168.213.255  Mask:255.255.255.0
              inet6 addr: fe80::20c:29ff:fe53:bfe5/64 Scope:Link
              UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
              RX packets:103 errors:0 dropped:0 overruns:0 frame:0
              TX packets:71 errors:0 dropped:0 overruns:0 carrier:0
              collisions:0 txqueuelen:1000 
              RX bytes:10961 (10.9 KB)  TX bytes:9637 (9.6 KB)
    lo <snip>    
    UbuntuGuest$cat /etc/resolv.conf
    nameserver 192.168.213.2
    domain localdomain
    search localdomain
    UbuntuGuest$route -n
    Kernel IP routing table
    Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
    192.168.213.0   0.0.0.0         255.255.255.0   U     0      0        0 eth0
    0.0.0.0         192.168.213.2   0.0.0.0         UG    100    0        0 eth0
    UbuntuGuest$
    
  • บน Linux Guest:ตรวจสอบว่าโลกภายนอกสามารถเข้าถึงได้:

    UbuntuGuest$ping google.com
    PING google.com (72.14.213.104) 56(84) bytes of data.
    64 bytes from pv-in-f104.1e100.net (72.14.213.104): icmp_seq=1 ttl=128 time=47.6 ms
    64 bytes from 2.bp.blogspot.com (72.14.213.104): icmp_seq=2 ttl=128 time=48.7 ms
    64 bytes from 2.bp.blogspot.com (72.14.213.104): icmp_seq=3 ttl=128 time=48.2 ms
    ^C
    --- google.com ping statistics ---
    4 packets transmitted, 3 received, 25% packet loss, time 3093ms
    rtt min/avg/max/mdev = 47.687/48.223/48.714/0.491 ms
    UbuntuGuest$
    
  • บน OS X Host:เพิ่มการจับคู่ชื่อโฮสต์ไปยังhostsไฟล์:

    OSXHost$cd /etc
    OSXHost$sudo emacs hosts
    

    เพิ่มบรรทัดต่อท้ายไฟล์โฮสต์โดยใช้ชื่อโฮสต์ของ Linux Guest และที่อยู่ IP ที่กำหนดไว้ด้านบน

    192.168.213.2   serpents-hold
    
  • บน OS X Host:บันทึกไฟล์และออกจาก emacs

  • บน OS X Host:ทดสอบว่า Linux Guest สามารถเข้าถึงได้โดยชื่อโฮสต์:

    OSXHost$ping serpents-hold
    PING serpents-hold (192.168.213.3): 56 data bytes
    64 bytes from 192.168.213.3: icmp_seq=0 ttl=64 time=0.169 ms
    64 bytes from 192.168.213.3: icmp_seq=1 ttl=64 time=0.244 ms
    ^C
    --- serpents-hold ping statistics ---
    2 packets transmitted, 2 packets received, 0.0% packet loss
    round-trip min/avg/max/stddev = 0.169/0.207/0.244/0.037 ms
    OSXHost$
    

นี่เป็นสิ่งที่ยอดเยี่ยม ... หากคุณใช้โฮสต์ของ OSX หวังว่าฉันจะได้พบหน้าต่างที่เทียบเท่าที่ไหนสักแห่ง
TJ L

1
ข้อมูลที่ดี ขอบคุณ 2 อัปเดตสำหรับ v4.x 1. ตำแหน่งของ dhcpd.conf อยู่ในขณะนี้: "/ Library / Preferences / VMware Fusion /" 2. ใน Fusion 4 บริการเครือข่ายจะไม่ทำงานเมื่อ Fusion ถูกปิด หากต้องการเริ่มบริการระบบเครือข่ายให้เริ่มต้น Fusion
sym3tri

8

คำตอบขั้นตอนเดียวสำหรับคำถามต้นฉบับคือการเรียกใช้คำสั่งนี้:

$ sudo apt-get install libnss-mdns

การติดตั้งแพคเกจนี้ควรเปิดใช้งานคุณสมบัติได้ทันที แล้วคุณจะสามารถที่จะได้รับ VM your-vm-hostname.localของคุณได้ที่ สิ่งนี้จะทำงานภายในเครือข่ายท้องถิ่นของ VM ซึ่งขึ้นอยู่กับวิธีที่คุณกำหนดค่าในซอฟต์แวร์การจำลองเสมือนของคุณ

คุณลักษณะนี้เรียกว่า Bonjour โดย Apple และ Zeroconf โดยคนอื่น ๆ มันสร้างไว้ใน OS X และ iOS วิธีที่ง่ายที่สุดในการติดตั้งบน Windows คือการติดตั้ง iTunes สำหรับ Windows


เมื่อใช้สิ่งนี้ฉันต้องผนวก '.local' เข้ากับชื่อของเครื่องแขกเช่นubuntu-guest.localเมื่อฉันอ้างถึงจากฝั่งโฮสต์ นอกจากนี้มันใช้งานได้อย่างยอดเยี่ยม!
นาธาเนียล Waisbrot

@NathanielWaisbrot นั่นเป็นเรื่องจริง นั่นคือสิ่งที่ต้องการโปสเตอร์ต้นฉบับ
hashemi

3

คุณสามารถกำหนดค่า zeroconf โดยใช้ Avahi ซึ่งควรอนุญาตให้ไคลเอ็นต์ระบุตัวเองบนเครือข่ายโดยไม่ต้องลงทะเบียน DNS


2

สมมติว่าคุณต้องการเข้าสู่ระบบผ่านบรรทัดคำสั่งทำไมไม่สร้างไฟล์config ssh ฉันทำอะไรแบบนี้เพื่อ vm ของฉัน

# ~/.ssh/config
Host linux-box    
Hostname localhost
Port 8822

จากนั้นฉันสามารถ

mac-box:~ ssh linux-box

1

หากคุณใช้ NAT อาจพยายามลงทะเบียนกับเซิร์ฟเวอร์ DNS อย่างไรก็ตามสำหรับคอมพิวเตอร์อื่น ๆ ที่ไม่ใช่โฮสต์โฮสต์นั้น IP จะเหมือนกับคอมพิวเตอร์ของคุณและอาจทำให้เกิดปัญหาเล็กน้อย

ฉันขอแนะนำให้คุณเปลี่ยนไปใช้บริดจ์เชื่อมต่อเครือข่ายเพราะจะให้ที่อยู่ IP ของตัวเองและกับเครื่องใด ๆ มันจะมีลักษณะและความรู้สึกเหมือนเครื่องอื่น ๆ ในเครือข่าย หากคุณตั้งค่าการตั้งค่า IP ทั้งหมดอย่างถูกต้อง (หรือใช้ DHCP) ควรลงทะเบียนโดยอัตโนมัติและคุณไม่ควรมีปัญหาในการทำสิ่งใด ๆ บนพอร์ตใด ๆ ผ่าน IP หรือชื่อโฮสต์


1
ใช่ฉันคิดว่ามันจะใช้งานได้ แต่ฉันต้องการเครือข่ายส่วนตัวที่มั่นคง VM อยู่บนแล็ปท็อปที่เคลื่อนที่ไปมาและบางครั้งไม่มีการเชื่อมต่ออินเทอร์เน็ต หากฉันใช้โหมด bridged ฉันจะไม่สามารถติดต่อได้เมื่อโฮสต์ออฟไลน์
amrox
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.