Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/joomla/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Networking vpn是否能够通过绑定到另一个网络接口的套接字拦截所有流量_Networking_Network Programming_Vpn_Tunnel - Fatal编程技术网

Networking vpn是否能够通过绑定到另一个网络接口的套接字拦截所有流量

Networking vpn是否能够通过绑定到另一个网络接口的套接字拦截所有流量,networking,network-programming,vpn,tunnel,Networking,Network Programming,Vpn,Tunnel,像Cisco any connect这样的VPN通常通过自己的网络接口路由所有流量 这样的VPN是否仍然能够路由所有流量,即使将一个套接字(在我的例子中是客户端套接字)从一个应用程序绑定到另一个网络接口。创建VPN的方法有很多,但您可以将大多数VPN视为具有三个主要组件 隧道接口—与真实网络接口一起列出的虚拟网络接口(在linux上,您应该在ip link show中看到)。该接口实现了一个协议,该协议抽象了VPN客户端和服务器之间的所有链接,使它们看起来像是在一个更简单的网络上 路由规则-告诉

像Cisco any connect这样的VPN通常通过自己的网络接口路由所有流量


这样的VPN是否仍然能够路由所有流量,即使将一个套接字(在我的例子中是客户端套接字)从一个应用程序绑定到另一个网络接口。

创建VPN的方法有很多,但您可以将大多数VPN视为具有三个主要组件

  • 隧道接口—与真实网络接口一起列出的虚拟网络接口(在linux上,您应该在
    ip link show
    中看到)。该接口实现了一个协议,该协议抽象了VPN客户端和服务器之间的所有链接,使它们看起来像是在一个更简单的网络上
  • 路由规则-告诉计算机通过隧道接口发送哪些数据以及通过正常网络接口发送哪些数据包的路由规则。此规则可以非常简单,只要通过隧道接口发送所有数据包
  • 加密算法-确保数据包加密的方法,通常由隧道接口抽象

  • 因此,为了回答您的问题,您仍然可以访问其他网络接口。只要您可以绑定到它(第2层API调用)或侦听它(第3层路由规则),那么您就可以以一种有用的方式访问它。我建议在VPN建立后查看您的路由表,以便更好地了解情况。

    我的假设是,如果您在
    eth0
    上有internet(和VPN)连接,在
    eth1
    上有本地LAN,您应该能够在不受VPN干扰的情况下与本地节点通信,例如,使用
    ping-I eth1
    。这对我来说是有意义的,但我希望看到一些真正的答案…不太确定,但Cisco AnyConnect VPN定期监控路由表,并在检测到更改后立即将其更改为所需的方式,以确保所有流量通过其自己的接口路由。不幸的是,我没有必要的环境来测试它。我只是希望将我的客户端套接字绑定到特定的网络接口可以避免这种情况。