2016-12-07 2 views
1

Я совершенно новой для SSH и Vagrant так что это может быть действительно нуб вопрос ..Vagrant не подключается к частному адресу внутрибрюшинно

Я пытаюсь подключиться к частной IP-адрес на бродягу, определив мой сервер, как показано ниже :

config.vm.define "server" do |server| 
    server.vm.network "private_network", ip: "192.168.1.10" 
    server.vm.network :forwarded_port, guest: 3000, host: 3000 
    server.vm.synced_folder "./sync_folder", "/vagrant" 
    end 

после этого сделал всю бродячую команду и все остальное. но когда я напечатал в бродячей SSH-конфигурации в командной строке ..

Host server 
    HostName 127.0.0.1 
    User ubuntu 
    Port 2222 
    UserKnownHostsFile /dev/null 
    StrictHostKeyChecking no 
    PasswordAuthentication no 
    IdentityFile /Users/xxxx 
    IdentitiesOnly yes 
    LogLevel FATAL 

Это возвращает локальный адрес IP-а не частный IP-адрес, что я хочу. Я не понимаю, почему ..

+0

Это очень похоже на другой вопрос о переполнении стека -> http://stackoverflow.com/questions/24036663/how-to-make-ip-address-for-vagrant-ssh-the-same-as-for -the-vm? rq = 1 , но ответ, похоже, не работает для меня – sabrinazuraimi

ответ

2

Как работает бродяга, на самом деле он создает несколько сетевых интерфейсов, поэтому вы не обязательно видите ожидаемый от своего хоста.

Если вы посмотрите на вывод команды vagrant up вы увидите следующее

... 
==> default: Waiting for machine to boot. This may take a few minutes... 
    default: SSH address: 127.0.0.1:2222 
... 

так ясно SSH-в в VM он использует адрес замыкания на порт 22.

если вы перейти на виртуальную машину и искать сетевые интерфейсы

enp0s3 Link encap:Ethernet HWaddr 02:58:f3:11:f2:f2 
      inet addr:10.0.2.15 Bcast:10.0.2.255 Mask:255.255.255.0 
      inet6 addr: fe80::58:f3ff:fe11:f2f2/64 Scope:Link 
      UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 
      RX packets:22381 errors:0 dropped:0 overruns:0 frame:0 
      TX packets:10950 errors:0 dropped:0 overruns:0 carrier:0 
      collisions:0 txqueuelen:1000 
      RX bytes:17387008 (17.3 MB) TX bytes:690514 (690.5 KB) 

enp0s8 Link encap:Ethernet HWaddr 08:00:27:1f:f8:27 
      inet addr:192.168.33.10 Bcast:192.168.33.255 Mask:255.255.255.0 
      inet6 addr: fe80::a00:27ff:fe1f:f827/64 Scope:Link 
      UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 
      RX packets:3 errors:0 dropped:0 overruns:0 frame:0 
      TX packets:8 errors:0 dropped:0 overruns:0 carrier:0 
      collisions:0 txqueuelen:1000 
      RX bytes:522 (522.0 B) TX bytes:648 (648.0 B) 

Первый интерфейс является NAT и это один бродяга использует для связи (SSH) между хостом и й e VM, так что это привязка с петлей от хоста на данном порту (по умолчанию это 22, но если у вас несколько запусков VM, бродяга будет определять другой порт)

Второй интерфейс - это интерфейс, который у вас есть настроить из вашего Vagrantfile и присвоить IP.

Вы можете утверждать, что vagrant ssh-config не отображает все свойства сетевых интерфейсов, но на самом деле это только о свойствах ssh, и таким образом вывод правилен. Если вы хотите получить сетевые свойства, вам нужно заглянуть в виртуальную машину

PS: последнее примечание, если вы назначаете частный IP своей виртуальной машине, вам не нужно пересылать порт, так как вы достигнете виртуальной машины напрямую используя свой IP.

+0

Я вижу! Спасибо за ответ, в значительной степени потратил час, пытаясь исправить несуществующую проблему. – sabrinazuraimi

Смежные вопросы