繁体   English   中英

流浪汉未连接到私有IP地址

[英]Vagrant not connecting to private ip address

我对SSH和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-config时。

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地址。 我不明白为什么。

流浪汉就是这样工作的,实际上它创建了多个网络接口,因此您不一定从主机上看到期望的接口。

如果您查看vagrant up命令的输出,则会看到以下内容

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

要清楚地插入到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,这是流浪汉在主机和VM之间进行通信(ssh)所用的接口,因此该接口与主机在给定端口上的回送绑定(默认情况下为22,但是如果您有多个VM正在运行,vagrant将定义另一个端口)

第二个接口是您从Vagrantfile中设置的接口,并已分配IP。

您可能会争辩说, vagrant ssh-config不会显示所有网络接口属性,但实际上,这仅与ssh属性有关,因此输出正确。 如果要获取网络属性,则需要查看虚拟机

PS:最后要注意的是,如果您为VM分配了专用IP,则不需要转发端口,因为您可以使用其IP直接访问VM。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM