Skip to content

hermixy/qtun

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Build Status

网络模型与协议

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

Jump The Great Firewall系列

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

部署

server端

  1. 下载代码
  2. 安装cmake和gcc
  3. cd src && mkdir build && cd build
  4. cmake -DCMAKE_BUILD_TYPE=RELEASE ..
  5. make
  6. 使用命令sudo nohup ./step11 -l10.0.1.1 -g 2>&1 1>/dev/null &运行服务器端程序并绑定到默认端口6687,这里的step11为当前最新版本,这里可以使用-p参数绑定到其他端口
  7. 修改/etc/sysctl.conf,增加或修改net.ipv4.ip_forward = 1,使用命令sysctl -p使其生效
  8. 检查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. 使用命令sudo nohup ./step11 -l10.0.1.2 -s服务器IP -g 2>&1 1>/dev/null &连接服务器,这里的step11为当前最新版本
  6. 使用命令sudo route add 服务器IP gw 默认网关添加到服务器的路由
  7. 使用命令sudo route del -net 0.0.0.0/0 dev eth0删除默认路由
  8. 使用命令sudo route add -net 0.0.0.0/0 dev tun0将默认路由指向tun0网卡
  9. 使用诸如chnroutes工具创建国内路由到原默认网关

可用参数

短命令 长命令 后接参数 默认值 说明
-a --aes 密钥文件路径 AES加密,若指定该参数则使用该密钥进行加密通信,密钥长度必须为324048字节
-d --des 密钥文件路径 DES加密,若指定该参数则使用该密钥进行加密通信,密钥长度必须为162432字节
-g --gzip 若指定该参数则使用gzip进行压缩
-m --mask 掩码长度 24 该参数指定了服务端所划分的子网网段
-l --localip 本地IP地址 该IP地址被绑定到虚拟网卡tunn
-s --server 服务器IP地址或域名 该参数指定了服务器的IP地址或域名,若没有指定该参数则当前运行的是服务端
-p --port 端口号 6687 若当前运行的是服务端则为其绑定的端口号,否则为连接到服务器的端口号
-v --log-level log等级 LOG_WARNING对应的值 详见syslog.h中定义的值
-t --internal-mtu mtu值 1492 内部使用的mtu值,过大的数据包将被分片
-u --udp 若指定该参数则使用UDP协议进行通信

关于

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