Câu hỏi Kết nối với máy chủ từ hệ điều hành khách VirtualBox?


Về cơ bản tôi muốn truy cập máy tính chủ của mình từ khách trong VirtualBox. Có địa chỉ IP nào được cung cấp cho máy chủ lưu trữ của tôi mà tôi có thể sử dụng từ khách không? Có thêm các bước cần thiết để thiết lập điều này không? Tôi muốn truy cập các dịch vụ Apache, FTP và SSH của máy chủ lưu trữ của tôi.


186
2017-07-14 22:53


gốc


Khó giải quyết mà không có bất kỳ gợi ý nào về sự liên kết mạng mà khách của bạn thực sự có. Một số không cho phép truy cập vào máy chủ lưu trữ. Hãy thử địa chỉ cổng mặc định của khách. - Turbo J
Hóa ra tôi có thể tiếp cận nó thông qua cổng mặc định của tôi ở 10.0.2.2. - Naftuli Kay
Liên quan: stackoverflow.com/q/19933550/1157054  stackoverflow.com/q/16244601/1157054 - Ajedi32


Các câu trả lời:


Câu trả lời này là về khá nhiều thiết lập hệ điều hành khách trong VirtualBox; bạn chỉ cần sử dụng địa chỉ cổng mạng trên hệ điều hành khách để kết nối với hệ điều hành máy chủ từ hệ điều hành khách.

Trong thiết lập Vagrant mặc định, bạn sẽ có thể tiếp cận máy chủ của mình thông qua cổng mặc định.

Trên Windows dựa trên khách, bạn có thể dễ dàng xác định địa chỉ IP này bằng cách chạy lệnh:

ipconfig

Nó sẽ đổ ra một cái gì đó như thế này:

Windows IP Configuration

Ethernet adapter Local Area Connection:

        Connection-specific DNS Suffix  . :
        IP Address. . . . . . . . . . . . : 10.0.2.15
        Subnet Mask . . . . . . . . . . . : 255.255.255.0
        Default Gateway . . . . . . . . . : 10.0.2.2

Trong ví dụ này, khách có thể tiếp cận máy chủ 10.0.2.2.


Trên các máy khách dựa trên Unix / Linux, sử dụng lệnh:

netstat -rn

Nó sẽ đổ ra một cái gì đó như thế này:

Kernel IP routing table
Destination     Gateway         Genmask         Flags   MSS Window  irtt Iface
192.168.1.0     0.0.0.0         255.255.255.0   U         0 0          0 wlan0
169.254.0.0     0.0.0.0         255.255.0.0     U         0 0          0 wlan0
0.0.0.0         192.168.1.1     0.0.0.0         UG        0 0          0 wlan0

Trong ví dụ này, khách có thể tiếp cận máy chủ 192.168.1.1.


236
2017-07-15 01:49



Bất kỳ ý tưởng tại sao kết nối sẽ là chậm khủng khiếp khi kết nối bằng cách sử dụng cổng mặc định theo câu trả lời của bạn? - Ben Swinburne
Điều này dường như không làm việc cho tôi (Ubuntu 12.04, Vagrant 1.0). Cổng mặc định bên trong khách được hiển thị là 10.0.2.2và nmap của IP đó không thành công. 192.168.33.1 dường như là đúng IP. (Tôi đã có config.vm.network :hostonly, "192.168.33.52" trong cấu hình của tôi.) - Ajedi32
Thực ra, đừng bận tâm. Nó đã hoạt động. nmap không hoạt động vì một lý do nào đó; không chắc chắn lý do tại sao. Tôi vẫn có thể kết nối với các dịch vụ đang chạy trên máy chủ từ IP đó, mặc dù nmap không hiển thị chúng. - Ajedi32
netstat -rn trên CentOS 7.2, Docker 1.11 hiển thị 172.17 địa chỉ như cổng của tôi, nhưng IP đó không khớp với máy chủ của tôi. Nó chỉ ra rằng 10.0.2.2 đã làm. - Spencer Williams


Việc truy cập máy chủ web của máy chủ từ máy khách thật dễ dàng. Điều này có thể được thực hiện dễ dàng bằng hai phương pháp. Đầu tiên làm như sau

  • Đi đến Thiết bị và chọn Bộ điều hợp mạng ... 
  • Trong cài đặt bộ điều hợp, hãy kiểm tra Đính kèm với.
  • Nếu giá trị là NAT, làm theo

  • Cổng mặc định khi bạn thiết lập hộp ảo nói chung 10.0.2.2 làm giá trị mặc định. Nếu bạn đã không thay đổi bất cứ điều gì này sẽ làm việc. Nhưng nếu bạn đã thay đổi nó và máy khách bạn đang chạy là các cửa sổ chạy lệnh sau và tìm mặc định cổng vào

    ipconfig /all

    Nếu bạn đang ở trên Linux, Unix hoặc Mac OS, chạy lệnh sau để hiểu rồi

    netstat -rn | grep 'default' | awk '{print $2}'

  • Đi tới trình duyệt web và nhập vào cổng mặc định này và nhấn enter. Máy chủ web có thể được truy cập.

  • Nếu giá trị là Cầu nối cầu, làm theo
    • tìm địa chỉ ip của máy chủ và khách
      • nếu bạn đang ở trên cửa sổ, hãy chạy ipconfig và lấy địa chỉ ip
      • nếu bạn đang sử dụng Linux, Unix hoặc Mac OS, hãy chạy ifconfig | grep 'inet' và lấy địa chỉ ip
      • địa chỉ ip giống như 192.168.1.1
    • nếu bạn muốn truy cập máy chủ, hãy chạy trình duyệt trong máy khách và nhập địa chỉ ip của máy chủ
    • nếu bạn muốn truy cập khách, hãy chạy trình duyệt trong máy chủ và nhập địa chỉ ip của khách

29
2017-07-14 12:27





Một cách khác để làm điều này là sử dụng loại "Máy chủ" của mạng ảo. Điều đó cung cấp cho bạn một giao diện trong hệ điều hành khách với một địa chỉ trên mạng con cục bộ khác nhau từ mạng con "ngoài thế giới" mà máy chủ của bạn đang bật. Để thực hiện công việc này, bạn phải đảm bảo một số điều sau:

  • Máy ảo của bạn có cấu hình bộ điều hợp "chỉ lưu trữ";
  • Dịch vụ lưu trữ của bạn cần phải lắng nghe trên tất cả các bộ điều hợp cục bộ, hoặc ít nhất là những dịch vụ bạn muốn có thể liên lạc;
  • Máy chủ của bạn sẽ nhận được adapter ảo của riêng nó và bạn sẽ muốn tìm ra địa chỉ IP của nó và thêm nó vào tệp "hosts" trong hệ điều hành khách của bạn (tuy nhiên nó hoạt động với hệ điều hành khách; trên Windows XP, nó chỉ là " lưu trữ "tệp được chôn trong C: / WINDOWS / system32 / drivers / etc). Đặt tên cho tên mà bạn muốn sử dụng cho tên máy chủ của máy chủ lưu trữ.

Một khi bạn đã làm điều này, bạn sẽ có thể "nhìn thấy" các máy chủ từ máy ảo thông qua tên bạn mã hóa vào tập tin máy chủ.

Ví dụ, trên máy chủ Ubuntu 11.04 của tôi, tôi nhận được giao diện ảo "vboxnet0" trên 192.168.56.1. Các bộ điều hợp trong các máy móc có những thứ như 192.168.56.101. Tôi không cần phải đi trong với máy ảo của tôi, nhưng tôi cho rằng có thể thực hiện được thông qua thay đổi đối xứng với tệp lưu trữ của máy chủ lưu trữ. Tôi thêm

192.168.56.1 mymachine

cho các tệp máy chủ lưu trữ của hệ điều hành khách và chúng có thể (ví dụ) xem máy chủ web của máy chủ lưu trữ của tôi tại

http://mymachine/whatever

Tất nhiên bạn có thể cài đặt cả bộ điều hợp cầu nối và máy chủ lưu trữ.


8
2017-07-17 18:37





Bạn có thể tạo các thư mục được chia sẻ trong VirtualBox. Thao tác này sẽ tự động tạo 'chia sẻ mạng' trong Hộp ảo để truy cập các thư mục trong Hệ điều hành chủ của bạn.

Dưới đây là một bước phong nha trong một hệ điều hành khách Windows XP:

http://www.giannistsakiris.com/index.php/2007/09/28/virtualbox-access-shared-folders-from-windows-xp-guest-os/


0
2017-07-14 23:08



Vì vậy, tôi có thể truy cập máy chủ của tôi tại / vboxsvr / ShareName? - Naftuli Kay
Có, bạn sẽ thiết lập một thư mục như C: \ STUFF để được chia sẻ với VirtualBox. Trong VirtualBox Guest OS, bạn có thể vào vboxserver đó và truy cập các thư mục chia sẻ. - kobaltz
Tôi thực sự không muốn thư mục được chia sẻ. Tôi muốn có một địa chỉ IP cho máy chủ của tôi. Khi tôi nhận được nó, tôi muốn sử dụng nó để sử dụng dịch vụ trên máy chủ của tôi, tức là: echo "GET /\r\n\r\n" | nc 192.168.100.100 80 (gửi yêu cầu HTTP GET tới máy chủ của tôi từ khách.) - Naftuli Kay
Trong trường hợp đó, bạn có thể cần phải đặt bộ điều hợp mạng cho hệ điều hành khách của bạn thành một Bridge. Thao tác này sẽ lấy địa chỉ IP từ DHCP hoặc Bộ định tuyến của bạn. Sau đó, bạn có thể truy cập máy chủ lưu trữ của bạn thông qua địa chỉ IP thay vì thư mục chia sẻ VBox. - kobaltz


Đây là một giải pháp khác cho vấn đề này bằng cách sử dụng giao diện mạng bổ sung và đặt lưu lượng truy cập được đặt cho máy chủ lưu trữ để định tuyến qua giao diện bổ sung.


0
2018-03-28 15:12



Chào mừng bạn đến với Super User! Nó sẽ rất tuyệt bao gồm các phần thiết yếu của câu trả lời ở đây và chỉ cung cấp liên kết để tham khảo trong tương lai. - slhck