Skip to content

queensun/qtun

 
 

Repository files navigation

Gitter chat Build Status

OpenWrt版本

githubcoding.net

网络模型与协议

  1. OSI模型
  2. IPV4数据包结构
  3. TCP数据包结构
  4. UDP数据包结构
  5. ICMP数据包结构

一步一步实现qtun系列

  1. QTun【step1 创建虚拟网卡】
  2. QTun【step2 回应收到的ping包】
  3. QTun【step3 建立TCP链接】
  4. QTun【step4 包装read/write函数】
  5. QTun【step5 简陋的翻墙】
  6. QTun【step6 支持多客户端】
  7. QTun【step7 支持加密压缩】
  8. QTun【step8 系统消息与活跃表】
  9. QTun【step9 内存池】
  10. QTun【step10 syslog】
  11. QTun【step11 数据分片】
  12. QTun【step12 支持UDP协议】
  13. QTun【step13 支持Windows】
  14. QTun【step14 嵌入lua】
  15. QTun【step15 支持DHCP】
  16. QTun【step16 优化丢包率】

部署

server端

  1. 下载代码
  2. 安装cmake和gcc
  3. cd src && mkdir build && cd build
  4. cmake -DCMAKE_BUILD_TYPE=RELEASE ..
  5. make
  6. 使用命令ln -s ../scripts .建立scripts目录的软链接
  7. 使用命令sudo nohup ./step14 -c ../server.conf 2>&1 1>/dev/null &运行服务器端程序并绑定到默认端口6687,这里的step14为当前最新版本,这里可以使用-p参数绑定到其他端口
  8. 修改/etc/sysctl.conf,增加或修改net.ipv4.ip_forward = 1,使用命令sysctl -p使其生效
  9. 检查iptables中的nat表是否支持tun0网卡转发,若不支持则使用命令sudo iptables -t nat -A POSTROUTING -o tun0使其支持

client端

  1. 下载代码
  2. 安装cmake和gcc
  3. cd src && mkdir build && cd build
  4. cmake -DCMAKE_BUILD_TYPE=RELEASE ..
  5. 使用命令ln -s ../scripts .建立scripts目录的软链接
  6. 修改../client.conf配置文件中server的地址为您的服务器IP或域名
  7. 使用命令sudo nohup ./step14 -c ../client.conf 2>&1 1>/dev/null &连接服务器,这里的step14为当前最新版本
  8. 使用命令sudo route add 服务器IP gw 默认网关添加到服务器的路由
  9. 使用命令sudo route del -net 0.0.0.0/0 dev eth0删除默认路由
  10. 使用命令sudo route add -net 0.0.0.0/0 dev tun0将默认路由指向tun0网卡
  11. 使用诸如chnroutes工具创建国内路由到原默认网关

可用参数

短命令 长命令 后接参数 默认值 说明
-c --config 配置文件地址 配置文件所在位置
-h --help / 显示帮助信息
-v --version / 显示当前版本号

关于

  1. blog:http://blog.q-devel.com/
  2. QQ:510134884
  3. QQ群:374553828
  4. email:lwch748@gmail.com

About

轻量级开源VPN软件

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • C 71.8%
  • Perl 16.8%
  • Makefile 2.8%
  • C++ 1.9%
  • Assembly 1.7%
  • HTML 1.4%
  • Other 3.6%