簡體   English   中英

無法從主機連接到Vagrant專用網絡

[英]Unable to connect to Vagrant private network from host

我有一個無用的虛擬盒子並且正在運行。 到目前為止,我一直無法連接到Web服務器。 這是啟動:

[jesse@Athens VVV-1.1]$ vagrant up
Bringing machine 'default' up with 'virtualbox' provider...
==> default: Clearing any previously set forwarded ports...
==> default: Clearing any previously set network interfaces...
==> default: Preparing network interfaces based on configuration...
    default: Adapter 1: nat
    default: Adapter 2: hostonly
==> default: Forwarding ports...
    default: 22 => 2222 (adapter 1)
==> default: Running 'pre-boot' VM customizations...
==> default: Booting VM...
==> default: Waiting for machine to boot. This may take a few minutes...
    default: SSH address: 127.0.0.1:2222
    default: SSH username: vagrant
    default: SSH auth method: private key
    default: Warning: Connection timeout. Retrying...
==> default: Machine booted and ready!
==> default: Checking for guest additions in VM...
    default: The guest additions on this VM do not match the installed version of
    default: VirtualBox! In most cases this is fine, but in rare cases it can
    default: prevent things such as shared folders from working properly. If you see
    default: shared folder errors, please make sure the guest additions within the
    default: virtual machine match the version of VirtualBox you have installed on
    default: your host and reload your VM.
    default: 
    default: Guest Additions Version: 4.2.0
    default: VirtualBox Version: 4.3
==> default: Setting hostname...
==> default: Configuring and enabling network interfaces...
==> default: Mounting shared folders...
    default: /vagrant => /home/jesse/vagrant/vvvStable/VVV-1.1
    default: /srv/www => /home/jesse/vagrant/vvvStable/VVV-1.1/www
    default: /srv/config => /home/jesse/vagrant/vvvStable/VVV-1.1/config
    default: /srv/database => /home/jesse/vagrant/vvvStable/VVV-1.1/database
    default: /var/lib/mysql => /home/jesse/vagrant/vvvStable/VVV-1.1/database/data
==> default: VM already provisioned. Run `vagrant provision` or use `--provision` to force it
==> default: Checking for host entries

在我的主機控制台上,ip addr show yields:

4: vboxnet0: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default qlen 1000                                       
    link/ether 0a:00:27:00:00:00 brd ff:ff:ff:ff:ff:ff                                                                         
5: vboxnet1: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default qlen 1000                                      
    link/ether 0a:00:27:00:00:01 brd ff:ff:ff:ff:ff:ff

在來賓上它產生:

vagrant@vvv:~$ ip addr show
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN 
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 08:00:27:12:96:98 brd ff:ff:ff:ff:ff:ff
    inet 10.0.2.15/24 brd 10.0.2.255 scope global eth0
    inet6 fe80::a00:27ff:fe12:9698/64 scope link 
       valid_lft forever preferred_lft forever
3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 08:00:27:2c:d4:3e brd ff:ff:ff:ff:ff:ff
    inet 192.168.50.4/24 brd 192.168.50.255 scope global eth1

現在,我想做的就是以任何可行的方式訪問虛擬機上的Web服務器。 我嘗試了各種各樣的事情,只是在黑暗中拍攝。 我很樂意提供任何具體信息。 任何幫助或建議,將不勝感激

根據提供的輸出,該框具有2個網絡接口,其中1個是默認NAT,另一個是專用-請問您說。

您無法通過私有接口訪問VM中托管的網站的原因:可能是主機eth0wlan0 IP地址與私有接口不在同一網絡中-> 192.168.50.4/24那里不是路線。

要訪問來賓中Web服務器托管的站點,您可以使用以下選項:

1. NAT端口轉發

將Web端口(例如80)轉發到主機的8080(您不能使用80,因為它是* NIX上的特權端口)。 添加以下內容

Vagrant.configure("2") do |config|
  config.vm.network "forwarded_port", guest: 80, host: 8080,
    auto_correct: true
end

注意:如果主機上的端口已在使用中,則auto_correct將解決端口沖突。

進行vagrant reload ,您就可以通過http://localhost:8080/訪問該網站

2.公共網絡(VirtualBox橋接網絡)

添加公共網絡接口

Vagrant.configure("2") do |config|
  config.vm.network "public_network"
end

在啟動並運行虛擬機后獲取其IP,端口轉發不適用於橋接網絡。 因此,您將使用http://IP_ADDR訪問該站點,如果它在VM中綁定到80,否則請指定端口。

另一種可能性僅供將來參考。

通常,當您使用專用網絡創建VM時,Vagrant(不確定Virtualbox?)會在主機的路由表中創建相應的條目。 您可以使用查看這些

netstat -rn

不知何故,我的主機進入了一種狀態,即創建VM並不會導致新的路由出現在路由表中,並且相應地無法連接。 同樣,您可以使用上述命令查看出現的路由。

手動創建路由使我可以訪問虛擬機。 例如:

sudo route -nv add -net 10.0.4 -interface vboxnet

(替換適當的網絡和接口。)但是我不想這樣做。

基於這個問題 ,我嘗試重新啟動主機,Vagrant重新開始自動創建路由表條目。

不確定到底是什么問題,但希望這可以對某人有所幫助。

您的界面已關閉

我遇到過同樣的問題。 是我的vboxnet0接口出現故障。 在上市的ip addr ,你有<BROADCAST,MULTICAST>為您的界面,但它應該是<BROADCAST,MULTICAST,UP,LOWER_UP>

這意味着您的界面已關閉。

您可以使用sudo ifconfig進行確認。 該界面將不會顯示,但是如果您添加-a ,則會看到它: sudo ifconfig -a

如何提出

因此,您可以執行以下操作:

sudo ifconfig vbox

要么

sudo ip link set vboxnet0 up

兩者都可以。

我最終通過在Virtual Box中刪除專用網絡來使專用網絡正常工作。 當我用流浪漢重新創建它時,ip config變成了:

vboxnet0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UNKNOWN group default qlen 1000
    link/ether 0a:00:27:00:00:00 brd ff:ff:ff:ff:ff:ff
    inet 192.168.50.1/24 brd 192.168.50.255 scope global vboxnet0
       valid_lft forever preferred_lft forever

另外,您可以通過SSH(SSH隧道)使用手動端口轉發:

ssh -L 80:127.0.0.1:80 vagrant@127.0.0.1 -p 2222

通過與虛擬機的SSH會話將主機端口80綁定到虛擬機端口80。

我的Mac上有類似的問題。 VirtualBox僅將主機用於專用網絡。 要用作內部網絡,我必須將其添加到專用網絡配置中:

"virtualbox__intnet: true"

這可能不完全適用,但是標題中的“專用網絡”將我帶到這里,而其他嘗試在Mac OS X上運行多個來賓箱的用戶可能會受益:

我使用“ private_network” ,不做任何端口轉發。 即,我通過“ project1.local”,“ project2.local”之類的主機訪問我的VM。

因此,當我嘗試啟動第二個盒子(用於LAMP的蘇格蘭威士忌/盒子ubuntu)時,我感到驚訝, 它拒絕啟動並出現錯誤 (摘錄):

"...The forwarded port to 2222 is already in use on the host machine..."

錯誤消息的建議解決方案不起作用。 即將此添加到您的Vagrantfile:

config.vm.network :forwarded_port, guest: 22, host: 1234
#Where 1234 would be a different port.

我不確定為什么會這樣,因為我之前已經運行了多次運算(但不是蘇格蘭威士忌/盒子)。 問題是,即使您使用private_network,Vagrant也會將端口轉發用於SSH。

解決方案是通過將端口添加到您的Vagrant文​​件中來為SSH專門設置端口:

# Specify SSH config explicitly with unique host port for each box
config.vm.network :forwarded_port,
  guest: 22,
  host: 1234,
  id: "ssh",
  auto_correct: true

注意:auto_correct可能會使非唯一端口正常工作,但我尚未對此進行測試。

現在,您可以使用專用網絡同時運行多個VM。

(感謝Aaron Aaron及其在此處發布的文章: https : //groups.google.com/forum/#!topic/ vagrant-up/ HwqFegoCXOc

Arch(2017-01-01)遇到了相同的問題。 必須安裝net-toolssudo pacman -S net-tools

虛擬盒子5.1.12r112440,流浪漢1.9.1。

您已為游盪機器設置了專用網絡

如果該IP不可見,則SSH到您的無業游民的計算機上並觸發此命令

sudo /etc/init.d/networking restart

檢查也停止您的防火牆和iptables

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM