97

GitHub - XndroidDev/Xndroid: A proxy software for Android based on XX-Net and fq...

 6 years ago
source link: https://github.com/XndroidDev/Xndroid
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

Xndroid

A proxy tool for Android based on XX-Net and fqrouter.

最新测试版

稳定版1.3.2

稳定版1.2.6

Android端代工具, 基于fqrouter.

默认集成XX-Net, 安装后无需额外配置即可使用. XX-Net需要使用ipv6, Xndroid已内置teredo客户端, 默认使用teredo访问ipv6, 无需额外配置. 如果你的网络支持原生ipv6, 可尝试在启动设置中勾选ipv6可用时禁用teredo. 需要注意是许多地区原生ipv6封锁较严重, 此时使用teredo隧道效果可能更好. 另外不同网络环境, 封锁情况差别很大, 通常来说, 手机网络环境比宽带网络环境好.

鉴于目前网络环境, 如果内置XX-Net无法正常使用, 请在fqrouter管理页中添加个人代理(如Shadowsocks).

默认集成的XX-Net不是使用socket转发, 会存在证书问题, 一些APP中可能会无法正常联网. 要解决此问题, 请在fqrouter管理页中添加个人代理(如Shadowsocks)并删除默认的XX-Net代理HTTP 127.0.0.1:8087.

  • 集成XX-Net 3.13.1(版本号可自动更新)
  • 集成fqrouter, 实现全局代理及指定应用代理
  • 为fqrouter添加teredo支持
  • 自动调用证书安装器安装证书(如果已经设置过图案解锁,却要求输入凭证,先清除屏幕锁即可), root后可导入为系统证书
  • 监听电量, 网络, 休眠状态, 自动调整XX-Net最大扫描线程数
  • 集成LightningBrowser 4.5.1, 关闭证书警告

兼容性与局限性

  • 目前不支持X86架构.
  • Android 4.0 以下系统不支持VpnService, 暂不能使用本应用.
  • Android 7.0及以上可能出现导入证书后仍然不被信任的情况. 建议在chrome, firefox(须在浏览器中导入证书), 或可忽略证书警告的浏览器(如:内置LightningBrowser, X浏览器)中使用. 如果root了, 就可以导入为系统证书, 默认被信任.
  • 注意一些APP(如 Twitter, Facebook 等)由于不信任GAE的证书,可能无法正常访问网络, 建议在浏览器中使用.

共享代理网络

fqrouter提供了多种网络共享功能, root后可使用更多功能. 注意如果用到了GAE代理, 则目标设备上也需安装证书

  • HTTP 代理, 如果目标设备支持http代理且在同一局域网下, 就可使用此项功能共享代理网络. 可使用fqrouter的2516端口(需先在fqrouter开启HTTP代理)
  • 如果以root模式启动, 可使用Android 的网络共享功能, 如: 便携式热点, USB共享网络(一些手机上可能导致死机), 蓝牙共享网络
  • 如果以root模式启动, 可使用fqrouter 的 Pick&Play 功能 , 通过类似于 中间人攻击 的手法时局域网中其他设备走fqrouter的代理
  • 如果以root模式启动, 部分手机可以使用 fqrouter的 wifi-repeat(无线中继) 功能, 其它设备连上即可自由浏览. 注意fqrouter早已停止维护此功能, 无法保证此功能在所有手机上都可以, 并且不会尝试增强此功能的兼容性

直连白名单

fqrouter已内置大量国内域名列表和国内ip段, 对绝大部分国内网站的访问会直连. 你也可以在/sdcard/domain_whitelist.txt(若不存在新建即可)中添加自定义的需要直连的域名, 每行一个, 如:

github.com
githubusercontent.com
githubapp.com
ftchinese.com
ted.com
tedcdn.com
howcast.com

注意Android6.0 及以上必须授予存储空间(访问媒体文件)的权限. 如果仍然不能满足需求, 可以在fqrouter的配置代理中关闭优先使用个人代理, 并开启直连可以直连的服务器

更新XX-NET

在XX-Net管理页中点击相应更新按钮即可. Xndroid更新时也会更新自带的XX-Net.

修改XX-NET配置

一般无需也不建议手动修改XX-NET配置文件. 如特殊情况需要修改, root用户可直接修改相关文件, 其位于/data/data/net.xndroid/files/xndroid_files/xxnet/; 非root用户可以下载XX-NET zip压缩包, 将其解压, 并修改或添加相应文件再压缩回zip, 点击菜单中的离线更新XX-NET, 选择修改的zip文件即可.

编译使用AndroidStudio, 并在AndroidStudio中安装相应SDK, 如API Level 23. 由于VPN模式下需使用JNI, 故还需在AndroidStuio中安装NDK. NDK版本不要太高, 否则不支持armeabi指令集. 此外, LightningBrowser编译还需要在AndroidStudio中安装API Level 26及Kotlin插件. 编译前,在源码顶层目录(Unix环境)下执行./fqrouter_prebulid.sh. 其会将fqrouter使用gz压缩到app/src/main/res/raw/fqrouter. 下载XX-Net源码, 将android_start.py复制到XX-Net源码顶级目录, 然后使用gz压缩到app/src/main/res/raw/xxnet.

# 编译器前进行以下操作
# 进入源码目录
cd "Xndroid_source_path"
# 压缩fqrouter
./fqrouter_prebulid.sh
# 下载XX-Net到临时目录
mkdir xxnet_tmp
version=3.12.2
wget -O xxnet_tmp/xxnet.zip https://github.com/XX-net/XX-Net/archive/${version}.zip
unzip xxnet_tmp/xxnet.zip -d xxnet_tmp
cp android_start.py xxnet_tmp/XX-Net-${version}
# 移除不必要的文件
rm -r xxnet_tmp/XX-Net-${version}/code/default/gae_proxy/server
mv xxnet_tmp/XX-Net-${version}/code/default/python27/1.0 xxnet_tmp/XX-Net-${version}/code/default/python27/0
mkdir -p xxnet_tmp/XX-Net-${version}/code/default/python27/1.0/lib
cp -r xxnet_tmp/XX-Net-${version}/code/default/python27/0/lib/noarch xxnet_tmp/XX-Net-${version}/code/default/python27/1.0/lib/
rm -r xxnet_tmp/XX-Net-${version}/code/default/python27/0
# 更改版本号
mv xxnet_tmp/XX-Net-${version}/code/default xxnet_tmp/XX-Net-${version}/code/${version}
echo ${version} > xxnet_tmp/XX-Net-${version}/code/version.txt
# 压缩XX-Net
mv xxnet_tmp/XX-Net-${version} xxnet_tmp/xxnet
tar -czf app/src/main/res/raw/xxnet xxnet_tmp/xxnet
rm -r xxnet_tmp

感谢以下开源项目


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK