Địa chỉ VMWare Fusion Linux khách theo tên máy chủ?


11

Tôi có một hình ảnh Ubuntu Server 9.04 được thiết lập trong VMWare Fusion 3.0.0, sử dụng tùy chọn NAT cho kết nối mạng của khách. Từ máy chủ Mac, tôi có thể ssh đến máy khách linux chỉ sử dụng địa chỉ IP của nó, nhưng tôi muốn có thể gọi nó bằng tên máy chủ để thuận tiện. I E:

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

Tôi đã có một thiết lập tương tự bằng Parallels vài năm trước, nhưng tôi không nhớ nó đã được thiết lập như thế nào. Nó có thể "chỉ hoạt động".

Bất kỳ đề nghị về làm thế nào để làm việc này?

Câu trả lời:


14

EDIT Phiên bản hướng dẫn đầu tiên tôi đã đăng đã gây ra xung đột với máy chủ tên và cổng mà VMware đưa vào vmnet8. Phiên bản này khắc phục vấn đề.

Phiên bản phần mềm:

  • MAC OS X Phiên bản 10.6.3
  • Phiên bản VMware Fusion 3.1.0 (261058)
  • Ubuntu 10.04 LTS

Những gì tôi đã làm xong:

  • Trong quá trình tạo VM, đặt mạng thành NAT.

  • Trên Linux Guest: Chạy ifconfig để lấy địa chỉ phần cứng HWaddr, địa chỉ quảng bá Bcast, địa chỉ internet IPv4 inet addrvà mặt nạ Maskđang được sử dụng.

    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>
    
  • Trên Linux Guest: Tra cứu thông tin máy chủ tên

    UbuntuGuest$cat /etc/resolv.conf
    nameserver 192.168.213.2
    domain localdomain
    search localdomain
    
  • Trên Linux Guest: Tra cứu địa chỉ cổng: (Được liệt kê trong cột Cổng của dòng với 0,0.0.0 là Đích.)

    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
    
  • Trên máy chủ OS X: Chỉnh sửa dhcpd.conftệp cho vmnet8(Công tắc ảo NAT) để gán địa chỉ IP tĩnh cho Linux Guest. (Sử dụng trình soạn thảo bạn chọn trên dòng thứ tư)

    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
    
  • Trên máy chủ OS X: Tệp sẽ bắt đầu trông giống như:

    # 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" #######
    

Những điều cần lưu ý:

  • Phần subnetnày phải khớp với thông tin IP được thu thập trên Linux Guest. Các inet addrsẽ trong range, netmasksẽ phù hợp Mask, option broadcast-addresssẽ phù hợp Bcast, option domain-name-serversoption domain-namesẽ phù hợp với thông tin thu thập với cat /etc/resolv.confoption routerssẽ phù hợp với Gatewaytừ route -nlệnh.

  • Chúng tôi muốn chỉ định một địa chỉ IP tĩnh để chúng tôi có thể thêm một mục vào hoststệp của Máy chủ OS X. Địa chỉ phải nằm trong phạm vi subnetđược xác định. Các địa chỉ không có sẵn để gán là các địa chỉ rangetrong phần mạng con, địa chỉ quảng bá, fixed-addressfor host vmnet8, máy chủ DNS và cổng. Và tôi nghĩ rằng địa chỉ bằng mạng con không được phép. Trong ví dụ này, mạng con là 192.168.213.0Vì vậy, các địa chỉ có sẵn là từ 192.168.213.1 to 192.168.213.255ít 192.168.213.128 to 192.168.213.245(phạm vi) ít hơn 192.168.213.255(phát sóng) ít hơn 192.168.213.1(máy chủ vmnet8) ít hơn 192.168.213.2(máy chủ cổng và máy chủ DNS). Mạng là địa chỉ 192.168.213.3 to 192.168.213.127có sẵn.


  • TRÊN Máy chủ OS X: Tạo một hostmục mới bên dưới PHẦN KHÔNG SỬA ĐỔI . Mục này sẽ gán IP tĩnh cho Linux Guest. hardware ethernetcần phải khớp HWaddrtừ ifconfigtrên Linux Guest. Chọn một địa chỉ tĩnh có sẵn cho fixed-address. option broadcast-address, option domain-name-servers, option domain-nameoption routerscần phải phù hợp với các tùy chọn được đưa ra trong subnetđoạn dhcpd.conf. (Mà chúng tôi đã khớp với thông tin được thu thập trên Linux Guest.) Trong ví dụ này, mục nhập máy chủ là:

    ####### 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;
    }
    
  • Trên máy chủ OS X Lưu dhcpd.confvà đóng trình chỉnh sửa của bạn.

  • Trên OS X Host và tất cả khách: Tắt tất cả VM và VMware.

  • Trên máy chủ OS X: Khởi động lại dịch vụ VMware:

    OSXHost$cd /Library/Application\ Support/VMware\ Fusion/ 
    OSXHost$sudo ./boot.sh --restart 
    
  • Trên máy chủ OS X: Hãy xem Activity Monitorvà đảm bảo rằng hai quy trình được đặt tên vmnet-dhcpdđang chạy. (Một là cho vmnet8mạng NAT, mạng kia chỉ dành cho mạng máy chủ.) Nếu bạn không thấy cả hai, có thể có vấn đề với vmnet8/dhcpd.conftệp trên Máy chủ OS X. Khắc phục điều đó và lặp lại việc khởi động lại dịch vụ VMware.

  • Trên máy chủ OS X: Khởi động VMware và Linux Guest VM.

  • Trên Linux Guest Trên máy khách VM kiểm tra các cài đặt như mong đợi:

    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$
    
  • Trên Linux Guest: Kiểm tra xem thế giới bên ngoài có thể truy cập được không:

    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$
    
  • Trên máy chủ OS X: Thêm ánh xạ cho tên máy chủ vào hoststệp:

    OSXHost$cd /etc
    OSXHost$sudo emacs hosts
    

    Thêm một dòng vào cuối tệp máy chủ bằng tên máy chủ của Linux Guest và địa chỉ IP được chỉ định ở trên.

    192.168.213.2   serpents-hold
    
  • Trên máy chủ OS X: Lưu tệp và thoát emacs.

  • Trên máy chủ OS X: Kiểm tra xem Linux Guest có thể truy cập bằng tên máy chủ:

    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$
    

Điều này thật tuyệt ... nếu bạn trên máy chủ OSX. Ước gì tôi có thể tìm thấy các cửa sổ tương đương ở đâu đó.
TJ L

1
Thông tin tuyệt vời. Cảm ơn. 2 bản cập nhật cho v4.x 1. Vị trí của dhcpd.conf hiện là: "/ Library / Preferences / VMware Fusion /" 2. Trong Fusion 4, dịch vụ mạng không chạy khi tắt Fusion. Để khởi động lại dịch vụ mạng, khởi động lại Fusion.
sym3tri

8

Câu trả lời một bước cho câu hỏi ban đầu là chạy lệnh này:

$ sudo apt-get cài đặt libnss-mdns

Cài đặt gói này sẽ kích hoạt tính năng ngay lập tức. Sau đó, bạn sẽ có thể truy cập VM của mình tại your-vm-hostname.local. Điều này sẽ chỉ hoạt động trong mạng cục bộ của VM, điều này phụ thuộc vào cách bạn định cấu hình nó trong phần mềm ảo hóa của bạn.

Tính năng này được gọi là Bonjour bởi Apple và Zeroconf bởi những người khác. Nó được tích hợp vào OS X và iOS. Cách dễ nhất để tải nó trên Windows là cài đặt iTunes cho Windows.


Sử dụng cái này, tôi cần thêm '.local' vào tên của máy khách, ví dụ: ubuntu-guest.localkhi tôi đề cập đến nó từ phía máy chủ. Điều đó sang một bên, điều này làm việc tuyệt vời!
Nathaniel Waisbrot

@NathanielWaisbrot Điều đó đúng. Đó là những gì người đăng ban đầu muốn.
hashemi

3

Bạn có thể định cấu hình zeroconf bằng Avahi, điều này sẽ cho phép khách hàng tự nhận dạng trên mạng mà không cần đăng ký DNS.


2

giả sử bạn chỉ muốn đăng nhập qua một dòng lệnh, tại sao không tạo tệp cấu hình ssh ? tôi làm một cái gì đó như thế này cho vm của tôi.

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

sau đó tôi có thể

mac-box:~ ssh linux-box

1

Nếu bạn đang sử dụng NAT, nó có thể cố gắng đăng ký với máy chủ DNS, tuy nhiên với các máy tính không phải máy chủ lưu trữ, IP đó sẽ giống như máy của bạn và có thể gây ra một số vấn đề.

Tôi khuyên bạn nên chuyển sang kết nối mạng vì điều này sẽ cung cấp cho nó địa chỉ IP của chính nó và cho bất kỳ máy nào, nó sẽ trông giống như bất kỳ máy nào khác trên mạng. Nếu bạn thiết lập chính xác tất cả các cài đặt IP (hoặc sử dụng DHCP), nó sẽ tự động đăng ký và bạn sẽ không gặp vấn đề gì khi làm bất cứ điều gì trên bất kỳ cổng nào thông qua IP hoặc tên máy chủ.


1
Có tôi nghĩ rằng nó sẽ hoạt động nhưng tôi thích một mạng riêng ổn định. VM nằm trên máy tính xách tay di chuyển và đôi khi không có kết nối internet. Nếu tôi sử dụng chế độ bắc cầu, tôi sẽ không thể liên lạc với nó khi máy chủ ngoại tuyến.
amrox
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.