(客户端程序只支持linux desktop os)
from https://github.com/hermixy/qtun
网络模型与协议
Jump The Great Firewall系列
- Jump The Great Firewall【step1 创建虚拟网卡】
- Jump The Great Firewall【step2 回应收到的ping包】
- Jump The Great Firewall【step3 建立TCP链接】
- Jump The Great Firewall【step4 包装read/write函数】
- Jump The Great Firewall【step5 简陋的翻墙】
- Jump The Great Firewall【step6 支持多客户端】
- Jump The Great Firewall【step7 支持加密压缩】
- Jump The Great Firewall【step8 系统消息与活跃表】
- Jump The Great Firewall【step9 内存池】
- Jump The Great Firewall【step10 syslog】
- Jump The Great Firewall【step11 数据分片】
- Jump The Great Firewall【step12 支持UDP协议】
- Jump The Great Firewall【step13 支持Windows】
部署
server端
- 下载代码
- 安装cmake和gcc
- cd src && mkdir build && cd build
- cmake -DCMAKE_BUILD_TYPE=RELEASE ..
- make
- 使用命令
sudo nohup ./step11 -l10.0.1.1 -g 2>&1 1>/dev/null &
运行服务器端程序并绑定到默认端口6687,这里的step11为当前最新版本,这里可以使用-p参数绑定到其他端口 - 修改/etc/sysctl.conf,增加或修改net.ipv4.ip_forward = 1,使用命令sysctl -p使其生效
- 检查iptables中的nat表是否支持tun0网卡转发,若不支持则使用命令sudo iptables -t nat -A POSTROUTING -o tun0使其支持
client端
- 下载代码
- 安装cmake和gcc
- cd src && mkdir build && cd build
- cmake -DCMAKE_BUILD_TYPE=RELEASE ..
- 使用命令
sudo nohup ./step11 -l10.0.1.2 -s服务器IP -g 2>&1 1>/dev/null &
连接服务器,这里的step11为当前最新版本 - 使用命令
sudo route add 服务器IP gw 默认网关
添加到服务器的路由 - 使用命令
sudo route del -net 0.0.0.0/0 dev eth0
删除默认路由 - 使用命令
sudo route add -net 0.0.0.0/0 dev tun0
将默认路由指向tun0网卡 - 使用诸如chnroutes工具创建国内路由到原默认网关
可用参数
短命令 | 长命令 | 后接参数 | 默认值 | 说明 |
---|---|---|---|---|
-a | --aes | 密钥文件路径 | 无 | AES加密,若指定该参数则使用该密钥进行加密通信,密钥长度必须为32 、40 或48 字节 |
-d | --des | 密钥文件路径 | 无 | DES加密,若指定该参数则使用该密钥进行加密通信,密钥长度必须为16 、24 或32 字节 |
-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协议进行通信 |
No comments:
Post a Comment