1,Tun 工作在网络层的虚拟机网卡
发送数据

  • 应用发送数据,经过内核协议栈TCP/IP,协议栈填写基本信息
  • 再到虚拟网卡:tun设备(虚拟网卡配置好ip,路由表配置好)
  • vpnapp读取tun数据发送:作为数据发到物理网卡,内核协议栈

接收数据

  • 物理网卡收到数据
  • 内核协议栈解析,找到对应vpn,
  • 现在里面数据应该是:IP+端口+数据
  • IP 对应tunx, 端口对应APP

2024-07-07T07:51:41.png

2,正常流量
2024-07-07T07:54:07.png

3,tun
2024-07-07T08:00:29.png

4,示例

程序A:真是的应用程序,程序B为VPN程序,A通过TUN发送程序

2024-07-07T08:18:55.png

vpn 原理,配置路由表:那些网站需要tun网卡处理
1,创建虚拟网卡tun0,tun不需要ip地址(tun接受流量包,其他程序处理它)
2,物理网卡接收数据,物理机作为网关,局域网流量也可接受,注意网卡开启混杂模式,ip link set tun0 promisc on
3,路由表转发(本机直接走路由表,到达tun)
4,tun处理,转发到物理网卡

监控获取TUN网卡流量 demo:/archives/608/
VPN内部应该就是这个。

在 vpn中,起到中转的作用,加一层IP, (内部服务对应的IP,IP(内网网站IP(数据)))数据加密或不加密,发送到物理网卡
在 代理中,加一层IP,(代理节点IP(要访问的IP(数据))数据加密或不加密。

流量包的目的地址是本机IP时,内核应该是有判断,根本不会到达网卡:应用-》内核-》应用

应用-》内核-》网卡-》物理线路-》网卡-》内核-》应用

标签: tun

评论已关闭