如何设置它,以便可以通过SSH进入我的VMWare来宾VM?


16

由于某些原因,互联网上有关此过程的文档非常缺乏或已过时。基本上,我在VMWare Fusion(运行Ubuntu 10.10)中有一个来宾VMWare虚拟机,并且我以Mac OSX 10.6作为主机。我希望能够从Mac SSH到Linux VM。我该如何配置事物,以便做到这一点?


相关信息:superuser.com/questions/729712/… 至少在Windows上,您可以将SSH转换为由VMWare自动设置的IP。

Answers:


13

绝对-仅使用本地或桥接接口,并计算出运行ssh服务器的系统的IP地址(使用ifconfig命令)即可。在VM上安装openssh-server,使用ssh客户端,并完成操作。

如果使用的是NAT接口,它可能会更复杂,通常不建议使用。


1
对于不认识的人,不要忘记使用ssh服务器启动,service sshd start或者如果您想在启动运行时启动它chkconfig sshd on
Anthony Hatzopoulos

21

实际上,有很多很好的理由在您的VM上使用NAT,而不是使用桥接接口。(这是一个老问题,但这是我第一个搜索如何执行此操作的结果,是从VirtualBox迁移到我做的一直如此,所以我认为值得添加)

使用NAT的几个原因如下:

  • 简单易用
  • 如果您在需要已知MAC地址才能获得IP的客户LAN上(否则,您将不得不猜测未使用的IP并冒冲突的风险,并且通常引起您的注意:)),
  • 诸如允许您的VM在主机上使用单个代理服务器(例如,如果您无法控制所处的网络,则为IE),或者能够以防火墙的方式过滤/过滤其广播(Windows等)流量方便的地方。
  • 能够为它们分配固定或保留的IP,以便您可以从主机外部按名称/ IP引用它们(同样,如果您无法通过桥接接口在网络上进行保留)
  • 但最重要的是,它允许您隐藏在主机上的单个防火墙配置后面,并以更受保护的方式在您/他们之间共享事物,而不是将每个VM暴露于“狂野”状态,而必须单独保护它们等。 ..就像您使用互联网调制解调器/路由器一样

无论如何,就我而言(VMWare Workstation 10,Linux主机,OS X Guest),以及偶然发现此问题的任何人,这是对我有用的概述。除了胡扯和假设,实际上只有3个主要步骤。

  • 因此,首先,您需要从主机的“外部”决定要允许VM / guest使用的内容(请注意以下内容,您将可以轻松地从主机本身获取它)。一个安全的选择就是只向子网中的计算机公开/允许SSH(端口22)。如果在VM等上具有Web服务器,还可以允许端口80/443,并且还可以使用“隧道”通过SSH访问其他服务(将在下面提供示例),并使用FUSE / SSHFS提供主机文件系统访问..(或VMWare上的共享文件夹功能,但我尚未使用过)。

因此,想法是这样的:“允许主机本地网络(例如10.1.1.0/24或192.168.1.0/24)上的内容连接到主机上的端口22222,我们将其转发到主机的端口22222上。具体的客人”。当然,它必须是特定的来宾(这使得配置IP更加有用,并且可以在不打开每个VM的情况下在一个位置更改所有IP),就像通过Internet路由器进行游戏一样通过等

  • 接下来,确定了哪些服务后,您需要

    • 允许主机上的主机通过iptables / firewall连接到“外部”端口。sshd可能已经在主机上使用了端口22,因此您可能会使用类似22222的东西。在这种情况下,请将类似的东西添加到/etc/ufw/before.rules中(然后重新启动ufw)

      #您的本地网络/子网掩码可能类似于10.1.1.0/24 ...

      -A ufw-before-input -p tcp --dport 22222 -m状态--state新-s my_subnet_and_mask -j接受`

    • 通过在/ etc / vmware /的底部添加类似的内容,在VMWare 的主DHCP DHCP配置中为VM提供保留的IP(可选,但是如果要从主机“针孔”到它,则更容易依赖) vmnet8 / dhcpd / dhcpd.conf

      # Just like a normal dhcpd reservation
      host my_vm_1 {
           hardware ethernet *your_vm_eth_mac_here**;
           # This is in default range for guests, but outside the 'pool'.
           # - check that it matches your vmware config
           fixed-address 192.168.198.10; 
           # And/or your own internal nameserver etc
           option domain-name-servers 8.8.8.8;
           option domain-name "some_domain_suffix";
           # This is the default default-route of the VM
           option routers 192.168.198.2; 
      }
      
    • 通过将连接添加到/etc/vmware/vmnet8/nat/nat.conf的[incomingtcp]部分,告诉VMWare将连接从22222转发到guest:22,然后重新启动vmware服务(请参阅下面的注释)

      [incomingtcp]

      22222 = 192.168.198.10:22

    • 您可能还需要允许端口22个连接你的客人,这取决于它是什么/如果有防火墙的它自己的。在此OS X来宾情况下,它是通过“共享”设置启用“远程登录”的,在Linux上可能是通过ufw作为主机的,等等。

因此,一旦完成所有操作,您就可以在笔记本电脑或LAN上的其他计算机上,通过ssh到22222上的工作站(vmware主机)上,而您会被邀请到要求它转发给您的来宾所吸引。如上所述,如果您还说过希望能够连接到guest虚拟机上的postgres服务器(或通常未加密的vnc服务器),则可以在同一命令中建立隧道(而不是将其也添加到dhcp conf中)。例如

console ~> ssh root@hostip -p 22222 -L 54320:localhost:5432

并且您将通过vmware中的ip forward进入ssh's,可以将pgadmin3工具指向笔记本电脑上的localhost:54320(非特权),并且网络上的流量将被加密。(注意“本地主机”已经转发给来宾了)

笔记

  • 有各种各样的方法。.一种,您可以通过隧道托管并在-L中指定来宾的ip,它会“爆发”并指向您,但是nat.conf选项非常好,方便,您不必每次都键入。端口转发还有其他方式
  • 我已经看到在虚拟网络GUI的几个线程上进行此操作的引用(就像virtualbox一样),但是在此版本中我找不到它
  • 我不使用Windows,因此即使我假设配置为主机与之非常相似,也不确定。NAT配置应该对任何vmware guest虚拟机都有效(尽管我没有使用任何其他版本的VMWare)
  • VMware设置了一条路由,以便主机可以直接从主机控制台与NAT来宾,IE进行联系,我可以对NAT来宾192.168.198.10(如上定义)直接执行ping / ssh等操作

    console ~> route -n
    Kernel IP routing table
    Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
    <snip>
    192.168.198.0   0.0.0.0         255.255.255.0   U     0      0        0 vmnet8
    192.168.233.0   0.0.0.0         255.255.255.0   U     0      0        0 vmnet1
    
  • 从Linux注释中可以看出,有些人喜欢用systemd init来自动启动vmware,而且我发现我不能只是重新启动vmware(vmci不会再次加载),所以我必须重新启动我的机器可以将NAT / DHCP内容固定在上面,但是您可能没有问题。虽然有一些线程与systemd解决方案

听起来不错,但OS X 10.9.5机器上似乎没有ufw。那是旧版OS X拥有的东西,而现在却使用了其他东西吗?
史蒂夫·乔根森

嗨,@ SteveJorgensen,ufw在linux下(我的主机是linux,而来宾是OS X)。允许使用任何合适的工具访问主机上的某些特定端口(在上述情况下为22222),并告诉VMWare将其转发给来宾。关于ufw的另一个提及是,无论您作为来宾使用什么,它都可能还启用了防火墙,因此您可能需要登录来宾并允许访问您重定向到的端口(在上面的示例中为22)
herdingofthecats

我目前没有OS X,但我似乎记得曾经使用ipfw过。我快速搜索了一下,但没有看到很多有用的文章,但是这篇文章提到了pfctl,我在另一篇文章中看到的似乎是OS X 10.10 up中pfctl的替代品。我无法测试它对不起,但希望对您
有所

2

为了简化事情:

  1. 运行你的VM
  2. 从菜单>虚拟机>网络适配器>桥接。
  3. 在您的VM中,找到您的IP地址,例如在linux:中ifconfig
  4. 在主机上,使用ssh ssh user@ip

我假设您已经安装并正在运行SSH服务。



-1

您可以使用网桥网络接口来帮助连接到Internet和轻松的SSH连接。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.