Làm cách nào tôi có thể nhận được địa chỉ IP Bridged của VirtualBox VM chạy ở chế độ không đầu?


26

Tôi có VirtualBox được thiết lập trên một máy chủ. Nó được thiết lập dưới dạng VM Bridged và có địa chỉ IP. Bây giờ nó đang chạy ở chế độ không đầu, bắt đầu với "VBoxHeadless -s PuppetMaster".

Làm cách nào tôi có thể tìm ra IP mà VM đang sử dụng VBoxManage?

Câu trả lời:


20

Tôi có thể tìm thấy VB không đầu của mình với sự kết hợp của các lệnh sau:

# Update arp table
for i in {1..254}; do ping -c 1 192.168.178.$i & done

# Find vm name
VBoxManage list runningvms

# Find MAC: subsitute vmname with your vm's name
VBoxManage showvminfo vmname

# Find IP: substitute vname-mac-addr with your vm's mac address in ':' notation
arp -a | grep vmname-mac-addr

Nhưng thậm chí còn dễ dàng hơn: trong linux, bạn có thể kết nối với VB:

# Default VirtualBox Listening Port: 3389
rdesktop -N hostingserver:3389

Lệnh này sẽ mở một cửa sổ shell và bạn sẽ có quyền truy cập trực tiếp vào VB không đầu, nơi bạn có thể truy xuất IP VB không đầu: ip addr của mình


6

Cài đặt bổ sung khách và (giả sử linux là khách), bạn có thể chạy như sau:

VBoxManage --nologo guestcontrol yourVirtualMachineName execute --image "/sbin/ifconfig"  --username yourUser --password yourPassword --wait-exit --wait-stdout -- -a

1
Định dạng đã thay đổi một chút bây giờ, bạn sẽ cầnVBoxManage --nologo guestcontrol yourVirtualMachineName --username yourUser --password yourPassword run -- /sbin/ifconfig -a
mike.dld

4
VBoxManage guestproperty enumerate {`VBoxManage list runningvms | awk -F"{" '{print $2}'` | grep IP | awk -F"," '{print $2}' | awk '{print $2}'

Lệnh hoạt động cho một VM. - Với nhiều bộ lọc VM theo tên VM, ví dụ:VBoxManage list runningvms | grep vmname | awk ...
mschuett

Hoặc chúng ta có thể hỏi về một VM cụ thể. ví dụVBoxManage guestproperty get <vm-name> "/VirtualBox/GuestInfo/Net/0/V4/IP" | cut -f2 -d " "
Mohnish

3

Không chắc chắn nếu VBoxManage có thể cung cấp cho bạn thông tin đó trực tiếp. Những gì bạn có thể làm là chạy lệnh sau để xem cấu hình card mạng.

VBoxManage showvminfo PuppetMaster | egrep ^NIC

Điều đó sẽ nếu không có gì khác sẽ cung cấp cho bạn địa chỉ MAC, cho phép bạn tìm ra địa chỉ IP thực tế bằng các phương tiện khác.


2
Bạn có ý tưởng nào về cách lấy IP bằng địa chỉ MAC từ dòng lệnh không?
Jon Haddad

2

Bạn có thể lấy nó trực tiếp bằng lệnh này:

VBoxManage list bridgedifs

1

Từ diễn đàn virtualbox.org -

VBoxManage guestproperty get <vm-name> "/VirtualBox/GuestInfo/Net/0/V4/IP" | cut -f2 -d " "

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.