我使用以下网络适配器设置在虚拟框上运行CentOS 6.6VM。
从这个VM中,我想把ssh连接到VPN上的远程机器上,主机连接到这个机器上。下图描述了设置。
MyCentosVM =======SSH======= TargetMachine
MyCentosVM == Host == VPN == TargetMachine如果我禁用桥接适配器,我可以访问Target无问题,因为NAT允许VM是透明的,并且是VPN的“一部分”。但是,如果我启用了桥接适配器,那么现在Target的sshd甚至在身份验证过程之前就会拒绝连接。
所以我的问题是,是否可以指定VM来使用NAT接口将ssh转换为Target?
发布于 2016-10-04 17:47:58
但是,您可以使用SSH的配置文件指定代理机器或隧道的使用,通常位于~/.ssh/config中。或者,您需要配置来宾上的路由表,以便在通信量为目标机器时通过VPN。SSH将简单地使用您来自SSHing的机器所指向的任何网络路径。
发布于 2016-10-04 18:40:36
由于我已经用完了红色药丸,下面的内容并没有提供将SSH流量的特定接口强制提供给特定主机的解决方案。这看起来也像一个XY问题,因为您不是要强制一个接口,而是试图使本地VM与位于远程网络中的主机进行交互。我还是觉得我能帮你一点。
TL;DR:向您的CentOS VM添加一条路由,当它与目标交互时,它应该使用可以通过NAT接口到达的路由器。ip route add <Target>/32 via <router_ip_address>
从总体上看,你的设置似乎被破坏了。如果它确实是拒绝您的SSH连接的目标机器,那么它肯定会中断。
在第一种情况下,SSH流量不应该到达目标机器。因此,它不能拒绝它。
在第二种情况下,VPN/安装程序在正确连接两个网络的任务中失败。
根据您的描述,我认为VPN只用于将主机连接到某个网络。如果是这样的话,那么整个问题就是路由问题,VM与VPN上的机器(主机除外)交互的唯一可行方法是通过主机的NAT。因此,您总是必须选择NAT接口,而不仅仅是SSH。
如果不激活桥接适配器,VM将通过NAT接口使用路由与Target进行交互。(使用ip route show显示已配置的路由。)一旦激活了桥接适配器,它就会通过桥接适配器使用路由。这也表明您的设置已被破坏。例如,VM上可能有重叠的IP子网和/或多条默认路由。
您当前的问题似乎是,一旦激活了桥接适配器,您的CentOS VM就会学习到一些默认的路由,它更喜欢使用NAT接口。
为了解决您的问题,您必须向您的CentOS VM添加一条路由,它告诉系统在与目标交互时使用可以通过NAT接口访问的路由器,甚至是对VPN网络上的每一个主机。如果您的设置没有其他问题,则此路由将始终优先于默认路由。
最后它是一个单一的:
ip route add \
<network_id_of_vpn_network>/<prefix_length_of_vpn_network> \
via <your_hosts_ip_on_the_NAT_network>`https://unix.stackexchange.com/questions/314295
复制相似问题