Total Pageviews

Thursday 26 September 2019

基于V2ray+NanoPi的科学网关

通过相对简单的步骤,尽可能地带来接近原生的互联网体验。
Build Status WTFPL
基于 V2ray 强大的配置,NanoPi 小巧的体积,以及 Ansible 灵活的任务编排,本项目通过相对简单的步骤,尽可能地带来接近原生的互联网体验。根据测试,在默认配置下,至少能够达到 200Mbps 左右的稳定速率。

目录结构

.
├── defaults         --- 默认配置目录
│   └── ...
├── dist             --- 使用 Git LFS 存储的二进制文件目录
│   └── ...
├── files            --- 普通文件目录
│   └── ...
├── tasks            --- Ansible Tasks
│   └── ...
├── templates        --- 模板文件目录
│   └── ...
├── vars             --- 自定义配置目录
│   └── ...
├── README.md        --- 本文件
├── apply.sh         --- 辅助脚本
└── playbook.yml     --- Ansible Playbook

准备工作

硬件

NanoPi

以下步骤可参考 Armbian 官方 入门文档
  1. 下载 Armbian Bionic 系统镜像。
  2. 将镜像刷入 TF 卡;推荐使用 balenaEtcher 工具,简单易用。
  3. 将 TF 卡插入 NanoPi 并连接到路由器的 LAN 口,连接电源后自动开机。
  4. 通过路由器管理页面获取 NanoPi 的 IP 地址;使用 SSH 登录到 NanoPi,用户名为 root,密码为 1234
  5. 初次登录需强制修改密码并进行一些基本配置,根据提示完成即可。

电脑

  1. 安装 Git LFS(用于拉取 dist/ 目录)。
  2. 安装 Ansible(版本 >= 2.8)和 python-netaddr,例如通过 Python 的 pip 包管理器安装:
    pip install ansible netaddr

开始使用

以下路径均相对于本项目根目录,请在本地执行命令。
  1. 完整克隆或下载本项目。
  2. 将 defaults/basic.yml 复制到 vars/main.yml,根据服务器信息替换其中的配置。
  3. 执行以下命令,并根据提示输入指定信息:
    ./apply.sh vars/main.yml
    运行完成后,可根据提示的命令测试代理是否正常运行。
  4. 登录路由器管理页面,修改 LAN 口的 DHCP 服务配置 —— 将客户端网关和 DNS 服务器均设置为 NanoPi 的 IP 地址即可。

进阶配置

  • 建议先阅读 GitHub Wiki
  • 可参考 defaults/ 目录内其它配置文件的注释,调整更多配置项。
  • 也可以通过修改 templates/config.json.j2 来自定义由 Jinja2 渲染的 V2ray 配置文件。
  • 另外,使用 sudo armbian-config -> Network -> IP 可手动配置静态 IP 地址。

更多应用

已知事项

  • 不支持 IPv6;原因:普及率低。
  • 不支持 UDP Relay;原因:配置不当易引发副作用,例如延迟升高等。
  • 本项目目前亦可用于 Armbian Stretch、FriendlyCore 以及基于 AMD64 架构的 Ubuntu Server 18.04;但由于个人精力有限,无法保证长期兼容性。

感谢

  • V2ray

No comments:

Post a Comment