通过VPN接口发出请求

通过VPN接口发出请求

我希望能够通过特定的网络接口发出请求,如下所示:

ping -I eth0.1 google.be
ping -I eth0.2 google.be

此示例适用于我的多宿主 OpenWRT 路由器。
我现在想在我的电脑上做类似的事情。

问题是:这不是一个真实的接口,而是VPN接口。

现在我已经设置了 OpenVPN,它已经创建了一个TUN设备。我目前选择它,因为它是默认的。我不介意切换到TAPorPPTP是否会让这更容易。

所以我想做的是执行与第一个命令类似的操作,但是:

ping -I tun0 google.be

现在,这不起作用并且超时。我也尝试过使用TAP界面,这给了我网络不可达错误。

我想我需要添加一些iproute条目或类似的内容。

重要提示:我不知道哪个我需要通过 VPN 设备联系的服务器/IP,这是一个变量,所以我不能只为其设置路由。

答案1

为了使其发挥作用,必须满足几个条件:

  1. 您的系统必须通过 VPN 将数据包路由到目标。
  2. VPN 端点必须将数据包转发到目标。
  3. 目标的路由必须将数据包返回到 VPN 端点。这是非常不可能的。实现这一目标的唯一真正选择是使用 SNAT。目标必须相信数据包是从 VPN 端点的 WAN 接口发送的。

相关内容