Linux tun
1,Tun 工作在网络层的虚拟机网卡
发送数据
- 应用发送数据,经过内核协议栈TCP/IP,协议栈填写基本信息
- 再到虚拟网卡:tun设备(虚拟网卡配置好ip,路由表配置好)
- vpnapp读取tun数据发送:作为数据发到物理网卡,内核协议栈
接收数据
- 物理网卡收到数据
- 内核协议栈解析,找到对应vpn,
- 现在里面数据应该是:IP+端口+数据
- IP 对应tunx, 端口对应APP
4,示例
程序A:真是的应用程序,程序B为VPN程序,A通过TUN发送程序
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时,内核应该是有判断,根本不会到达网卡:应用-》内核-》应用
应用-》内核-》网卡-》物理线路-》网卡-》内核-》应用
评论已关闭