当前位置: 首页 > ai >正文

编译tun2socks用于Android项目

最近需要做一个Android端基于socks5协议网络流量转发的功能,找到一个还在维护更新的项目,具体的编译流程和使用如下。

一、配置go环境

(1)sdk下载地址为:https://go.dev/dl/
(3)解压下载的压缩包,linux建议放在/opt目录下
(3)配置环境变量

vim /etc/profile//添加如下配置
export GOROOT=/opt/go
export PATH=$PATH:$GOROOT/bin
export GOPATH=$HOME/goprojectsource /etc/profile

(4)测试配置是否生效

go version

二、配置Android开发环境

下载AndroidStudio,打开软件后配置Android SDK环境、NDK环境。配置基础Android开发环境的过程省略,可参考网上其它文章。

三、编译项目

(1)创建goproject目录

mkdir goproject

(2)安装依赖

go install golang.org/x/mobile/cmd/gomobile@latest
go get golang.org/x/mobile/bind
gomobile init
export DEST=$(pwd)/app/libs
mkdir -p DEST

(3)下载tun2socks项目

//创建目录
mkdir -p src/github.com/xjasonlyu
cd src/github.com/xjasonlyu
git clone https://github.com/xjasonlyu/tun2socks.git
//目录结构
/home/jhan/goproject/src/github.com/xjasonlyu/tun2socks

(4)编译项目

cd $GOPATH/src/github.com/xjasonlyu/tun2socks
gomobile bind -o $DEST/tun2socks.aar -target android $GOPATH/src/github.com/xjasonlyu/tun2socks/engine
ls $DEST # you should see tun2socks.aar and tun2socks-sources.jar

三、使用

ParcelFileDescriptor tunDevice = new Builder().addAddress(VPN_ADDRESS, 32).addRoute(VPN_ROUTE, 0).addDnsServer(VPN_DNS).addAllowedApplication("com.google.android.tethering").establish();engine.Key key = new engine.Key();
key.setMark(0);
key.setMTU(0);
key.setDevice("fd://" + tunDevice.getFd()); // <--- here
key.setInterface("");
key.setLogLevel("debug");
key.setProxy("socks5://127.0.0.1:1080"); // <--- and here
key.setRestAPI("");
key.setTCPSendBufferSize("");
key.setTCPReceiveBufferSize("");
key.setTCPModerateReceiveBuffer(false);engine.Engine.insert(key);
engine.Engine.start();
http://www.xdnf.cn/news/8698.html

相关文章:

  • 机器学习算法-一元线性回归(最小二乘拟合 and 梯度下降)
  • 书生五期--端侧小模型论文分类微调打榜
  • svn: E155017: Checksum mismatch while updating 校验错误的解决方法
  • 从 0 到 1:Spring Boot 与 Spring AI 深度实战(基于深度求索 DeepSeek)
  • DeepSeek 赋能金融量化交易:从技术突破到实战革新
  • 2025.5.19-2025.5.25学习周报
  • CAPL自动化-诊断Demo工程
  • static详解
  • LLM 使用本地模型 提取新生成 文本 的token ID序列
  • C++虚函数与类对象模型深度解析
  • 使用Python自动化Word文档处理:段落样式复制、表格转换与模板生成
  • GitLab-CI将项目Wiki自动部署到文档中心
  • 前置过滤器和净水机安哪个?
  • Docker核心技术:Docker原理之Union文件系统
  • UART、RS232、RS485基础知识
  • HTTP 与 HTTPS
  • linux 内核 watchdog 模块学习及实践过程中遇见的问题总结
  • IP、子网掩码、默认网关、DNS
  • 软件工程重点复习(2)
  • 当NLP能模仿人类写作:原创性重构而非终结
  • 《Shell脚本实战:打造交互式多级菜单与LAMP/LNMP环境配置指南》
  • python学习day28
  • 博图SCL星三角降压启动从安装到编程步骤详解
  • libreoffice容器word转pdf
  • Word转PDF--自动生成目录
  • 教师技术知识对人工智能赋能下教学效果的影响:以教学创新为中介的实证研究
  • java每日精进 5.25【Redis缓存】
  • 一文讲透golang channel 的特点、原理及使用场景
  • Linux相关概念和易错知识点(41)(UDP、TCP报头结构)
  • 识别速度快且精准的OCR工具