出于某种原因,互联网上有关此过程的文档非常缺乏或过时。基本上,我在 VMWare Fusion(运行 Ubuntu 10.10)中有一个来宾 VMWare 虚拟机,并且我有 Mac OSX 10.6 作为主机。我希望能够从 Mac SSH 到 Linux VM。我如何配置东西才能做到这一点?
小智 22
实际上,有很多很好的理由可以将 NAT 与您的 VM 一起使用,而不是桥接接口..(这是一个老问题,但它是我搜索如何执行此操作的第一个结果,从我所做的 VirtualBox 迁移一直如此,所以我认为值得添加)
使用 NAT 的几个原因是:
无论如何,对于我的情况(VMWare Workstation 10、Linux 主机、OS X 来宾)以及任何偶然发现的人,这是对我有用的概述。除了胡说八道和假设之外,实际上只有 3 个主要步骤。
所以这个想法是这样的:“允许我主机的本地网络(例如 10.1.1.0/24 或 192.168.1.0/24)上的东西连接到主机上的端口 22222,我们将转发到端口 22特定客人”。它当然必须是特定的来宾(这使得能够配置您的 IP 变得更加有用,并且您可以在一个地方更改它们而无需打开每个 VM),就像通过您的互联网路由器进行游戏一样通过等
接下来,在决定了哪些服务后,您需要
允许在您的主机上通过 iptables/防火墙连接到“外部”端口。sshd 可能已经在主机上使用了端口 22,因此您可能会使用类似 22222 的端口。在这种情况下,将类似的内容添加到 /etc/ufw/before.rules(并重新启动 ufw)
# 您的本地网络/子网掩码可能类似于10.1.1.0/24 ...
-A ufw-before-input -p tcp --dport 22222 -m state --state NEW -s my_subnet_and_mask -j ACCEPT `
通过在 /etc/vmware/ 的底部添加类似的内容,在主 VMware DHCP 配置中为您的虚拟机提供一个保留 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;
}
Run Code Online (Sandbox Code Playgroud)通过将其添加到 /etc/vmware/vmnet8/nat/nat.conf 的 [incomingtcp] 部分,告诉 VMWare 将连接从 22222 转发到 guest:22,然后重新启动 vmware 服务(请参阅下面的注释)
[传入TCP]
22222 = 192.168.198.10:22
您可能还需要在来宾中允许端口 22 连接,具体取决于它是什么/是否有自己的防火墙。在这个 OS X 来宾案例中,它是通过共享设置启用“远程登录”,在 linux 上它可能是通过 ufw 就像上面的主机一样,等等
所以,一旦这一切都完成了,你就可以在你的笔记本电脑或局域网上的其他机器上,通过 ssh 连接到你的工作站(vmware 主机)在 22222 上,然后你就会被转移到你告诉它转发给你的客人那里。如上所述,如果您还说希望能够连接到来宾上的 postgres 服务器(或通常未加密的 vnc 服务器),您可以在同一命令中建立隧道(而不是将其也添加到 dhcp conf)。例如
console ~> ssh root@hostip -p 22222 -L 54320:localhost:5432
Run Code Online (Sandbox Code Playgroud)
并且您将通过 vmware 中的 ip forward 进入来宾,并且可以将您的 pgadmin3 工具指向笔记本电脑上的 localhost:54320(非特权),并且您在网络上的流量将被加密。(注意'localhost'已经转发给客人了)
笔记
VMware 设置了一条路由,以便主机可以直接联系 NAT 来宾,从主机的控制台 IE,我可以直接 ping/ssh 等 NAT 来宾 192.168.198.10(如上定义)
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
Run Code Online (Sandbox Code Playgroud)Jou*_*eek 13
绝对 - 这只是使用本地或桥接接口,并计算出运行 ssh 服务器的系统的 IP 地址(使用 ifconfig 命令)的问题。在虚拟机上安装 openssh-server,使用你的 ssh 客户端,就完成了。
如果使用NAT接口,可能会比较复杂,一般不推荐使用。
归档时间: |
|
查看次数: |
59385 次 |
最近记录: |