首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >是否有一种方法来指定在使用ssh时使用哪个NIC?CentOS

问是否有一种方法来指定在使用ssh时使用哪个NIC?CentOS
EN

Unix & Linux用户
提问于 2016-10-04 17:41:06
回答 2查看 1.4K关注 0票数 0

我使用以下网络适配器设置在虚拟框上运行CentOS 6.6VM。

  1. 主机可以访问的承载web服务器的桥接适配器
  2. NAT与从主机到客户VM的ssh端口转发

从这个VM中,我想把ssh连接到VPN上的远程机器上,主机连接到这个机器上。下图描述了设置。

代码语言:javascript
复制
MyCentosVM =======SSH======= TargetMachine
MyCentosVM == Host == VPN == TargetMachine

如果我禁用桥接适配器,我可以访问Target无问题,因为NAT允许VM是透明的,并且是VPN的“一部分”。但是,如果我启用了桥接适配器,那么现在Target的sshd甚至在身份验证过程之前就会拒绝连接。

所以我的问题是,是否可以指定VM来使用NAT接口将ssh转换为Target?

EN

回答 2

Unix & Linux用户

发布于 2016-10-04 17:47:58

但是,您可以使用SSH的配置文件指定代理机器或隧道的使用,通常位于~/.ssh/config中。或者,您需要配置来宾上的路由表,以便在通信量为目标机器时通过VPN。SSH将简单地使用您来自SSHing的机器所指向的任何网络路径。

票数 0
EN

Unix & Linux用户

发布于 2016-10-04 18:40:36

由于我已经用完了红色药丸,下面的内容并没有提供将SSH流量的特定接口强制提供给特定主机的解决方案。这看起来也像一个XY问题,因为您不是要强制一个接口,而是试图使本地VM与位于远程网络中的主机进行交互。我还是觉得我能帮你一点。

TL;DR:向您的CentOS VM添加一条路由,当它与目标交互时,它应该使用可以通过NAT接口到达的路由器。ip route add <Target>/32 via <router_ip_address>

从总体上看,你的设置似乎被破坏了。如果它确实是拒绝您的SSH连接的目标机器,那么它肯定会中断。

  • 或者VPN只允许主机进入网络,
  • 或者是为了连接你的网络。

在第一种情况下,SSH流量不应该到达目标机器。因此,它不能拒绝它。

在第二种情况下,VPN/安装程序在正确连接两个网络的任务中失败。

根据您的描述,我认为VPN只用于将主机连接到某个网络。如果是这样的话,那么整个问题就是路由问题,VM与VPN上的机器(主机除外)交互的唯一可行方法是通过主机的NAT。因此,您总是必须选择NAT接口,而不仅仅是SSH。

如果不激活桥接适配器,VM将通过NAT接口使用路由与Target进行交互。(使用ip route show显示已配置的路由。)一旦激活了桥接适配器,它就会通过桥接适配器使用路由。这也表明您的设置已被破坏。例如,VM上可能有重叠的IP子网和/或多条默认路由。

您当前的问题似乎是,一旦激活了桥接适配器,您的CentOS VM就会学习到一些默认的路由,它更喜欢使用NAT接口。

为了解决您的问题,您必须向您的CentOS VM添加一条路由,它告诉系统在与目标交互时使用可以通过NAT接口访问的路由器,甚至是对VPN网络上的每一个主机。如果您的设置没有其他问题,则此路由将始终优先于默认路由。

最后它是一个单一的:

代码语言:javascript
复制
ip route add \
<network_id_of_vpn_network>/<prefix_length_of_vpn_network> \
via <your_hosts_ip_on_the_NAT_network>`
票数 0
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/314295

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档