All Projects → overcache → Vrouter

overcache / Vrouter

Licence: gpl-3.0
一个基于 VirtualBox 和 openwrt 构建的项目, 旨在实现 macOS / Windows 平台的透明代理.

Programming Languages

javascript
184084 projects - #8 most used programming language

Projects that are alternatives of or similar to Vrouter

Asuswrt Merlin Transparent Proxy
transparent proxy base on ss, v2ray, ipset, iptables, chinadns on asuswrt merlin.
Stars: ✭ 367 (-71.92%)
Mutual labels:  transparent-proxy, openwrt
Openwisp Firmware
A OpenWRT based firmware to be used with OpenWISP Manager
Stars: ✭ 86 (-93.42%)
Mutual labels:  openwrt
Hiddenvm
HiddenVM — Use any desktop OS without leaving a trace.
Stars: ✭ 1,183 (-9.49%)
Mutual labels:  virtualbox
Packer Ubuntu 1404
DEPRECATED - Packer Example - Ubuntu 14.04 Vagrant Box using Ansible provisioner
Stars: ✭ 81 (-93.8%)
Mutual labels:  virtualbox
Vboxmanage Bash Completion
VBoxManage bash completion
Stars: ✭ 73 (-94.41%)
Mutual labels:  virtualbox
Openwrt Extra
Some extra packages for OpenWrt
Stars: ✭ 84 (-93.57%)
Mutual labels:  openwrt
Molecule Ansible Docker Aws
Example project showing how to test Ansible roles with Molecule using Testinfra and a multiscenario approach with Docker, Vagrant & AWS EC2 as infrastructure providers
Stars: ✭ 72 (-94.49%)
Mutual labels:  virtualbox
Packer Templates
Stars: ✭ 90 (-93.11%)
Mutual labels:  virtualbox
Glutinium
Glutinium - OpenWRT packages for extends functionality: accel-ppp baoclone barcode changemac empty etherdump fixsum flyavr flygps flypeek flyscripts gpio-littlewire gpio-rcswitch homes-smart httping i2c-telemetry i2c-tools kdb littlewire-extra littlewire micronucleus mini_snmpd mjpg-streamer-lite ncftp pzem004t rcswitch remserial sshpass suart uvc-ctrl uvc-streamer uvc2http c328 vlhttp vtun-lite webadmin
Stars: ✭ 84 (-93.57%)
Mutual labels:  openwrt
Openwrt Simple Obfs
Simple-obfs for OpenWrt/LEDE
Stars: ✭ 81 (-93.8%)
Mutual labels:  openwrt
Ac2100 Openwrt Guide
Install OpenWrt on the AC2100 (black cylinder)
Stars: ✭ 80 (-93.88%)
Mutual labels:  openwrt
Macos Virtualbox Vm
A preconfigured macOS VirtualBox VM and bootable installer creation script
Stars: ✭ 74 (-94.34%)
Mutual labels:  virtualbox
Dev
The only truly universal productive development platform with Docker on macOS, Linux and Windows! http://blog.teracy.com/2016/12/20/teracy-dev-the-only-truly-universal-productive-development-platform-with-docker-on-macos-linux-and-windows/ http://slides.teracy.net/hoatle/productive-dev-workflow-with-teracy-dev/latest/
Stars: ✭ 84 (-93.57%)
Mutual labels:  virtualbox
Splunkenizer
Ansible framework providing a fast and simple way to spin up complex Splunk environments.
Stars: ✭ 73 (-94.41%)
Mutual labels:  virtualbox
K3c
K3C OPENWRT A1/B1/B1G/B2/C1/S1
Stars: ✭ 88 (-93.27%)
Mutual labels:  openwrt
Openwrt Nanopi R2s
OpenWrt support for FriendlyElec NanoPi R2S RK3328 SoC board with 2x1000Mbps ports. This repository is not a fork of friendlywrt but a fork of upstream/openwrt.
Stars: ✭ 73 (-94.41%)
Mutual labels:  openwrt
Openwrt Kcptun
kcptun for OpenWrt
Stars: ✭ 80 (-93.88%)
Mutual labels:  openwrt
Devbox Golang
A Vagrant box with Ansible provisioning for setting up a vim-based Go(lang) development environment
Stars: ✭ 84 (-93.57%)
Mutual labels:  virtualbox
Openwrt Packages
Onion Packages Feed for OpenWRT
Stars: ✭ 91 (-93.04%)
Mutual labels:  openwrt
Qosdocs
Linux TC Qos 智能流控等相关资料,多年来的心血
Stars: ✭ 89 (-93.19%)
Mutual labels:  openwrt

update

已停止开发.

推荐关注其他透明代理的开源项目, 如 mellow


img

JavaScript Style Guide JavaScript Style Guide

VRouter

一个基于 Virtualbox 和 openwrt 构建的项目, 旨在实现 macOS / Windows 平台上的透明代理.

VRouter 在后台运行一个 openwrt 的虚拟机, 通过更改系统的默认路由, 将所有系统数据包转发到虚拟机上. 依托 openwrt 的 iptables 进行数据包的处理.

了解构造过程

如何使用

前提条件:

  1. 为了能在服务端进行 DNS 查询, 请确保 ss-server 开启了 UDP 转发.
  2. 为了能确保虚拟机可以联网, 确保上游路由器开启了 DHCP.
  3. 为了避免频繁在弹窗里输入密码,请设置免密码切换网关

自定义黑白名单

  • 每个域名/IP/IP段一行, 注释行以#开头
  • 域名
    • 域名可以是裸域名如 example.com, 将会匹配该域下的所有子域名如 a.example.com, b.example.com 等等
    • 也可以填写子域名如 a.example.com, 如此不会匹配到 b.example.com
  • IP
    • 可以是独立的IP, 如 123.123.123.123
    • 也可以是IP段, 如 123.123.123.0/8 将会匹配 123.123.123.0~123.123.123.255 之间的IP地址. 123.123.0.0/16将匹配 123.123.0.0 ~ 123.123.255.255之间的IP地址

项目的意义

为什么需要透明代理?

使用 Shadowsocks 桌面客户端可以很方便地进行非透明代理, 但是仍然有以下的不足

  • 每个需要代理的软件都要逐一设置
  • 命令行软件虽然可以用 export http_proxy 的方式使用代理, 但有时并不管用. 需要进一步折腾 Proxifier 或者 Privoxy
  • 有些软件并不支持设置代理, 如 macOS 系统自带的 Mail APP
  • 鲜有支持 UDP 的软件

为什么不在路由器上设置透明代理?

强烈推荐在路由器设置透明代理. 但是, 在路由器透明代理虽然解决了客户端的不足, 仍然有其局限性.

  • 如果路由器性能不足, 使用 kcptun 等软件时, 负载会非常高. 而且速度比在桌面端运行 kcptun 慢很多
  • 路由器只能在固定地点使用

为什么不用 TUN/TAP 虚拟网络接口?

TUN/TAP 是一个很优雅的方案, 不需要依赖 VirtualBox. Windows 上有很好的 TAP 透明代理方案 SSTap, Linux 上也有诸如 kone 这样的项目. 遗憾的是 kone 的上游项目 water 目前对 macOS 的支持有限. 因此:

  • 在目前来看, 在 macOS 上用轻量的 OpenWRT 实现透明代理, 仍然是一个实用的方案.
  • 相对新的项目, OpenWRT 和 VirtualBox 的组合更稳定.
  • 在 OpenWRT 上可以根据情况随时更换代理软件, 适应性更强.

用虚拟机会不会有点杀鸡用牛刀?

大材小用确实有点委屈了虚拟机. 幸运的是 openwrt 非常轻量, 官网提供的镜像不足 5 MB, 转化为 virtualbox 虚拟机磁盘文件, 并在虚拟机上安装必要的软件后, 磁盘空间占用不足 30 MB. 虚拟机在 macOS 上的内存占用在 150MB 以内, 在 Windows 上的内存占用仅仅 20 MB 左右. CPU 占用率则跟网络流量正相关, 没有流量的情况下, Windows 版本 CPU 占用率接近 0% ( 2010 年的 Thinkpad ), macOS则是在 5% 以下 ( 2014 年的中端 13 寸 Macbook ).

优缺点

优点:

  • 可以实现 TCP / UDP 的透明代理
  • 性能强
  • 便携性强
  • 切换方便
  • 免费, 开源

缺点:

  • 依赖 VirtualBox
  • 无法服务局域网内的其他设备
  • UI 用 Electron 进行封装, 体积比虚拟机大太多
  • [ Windows ] Windows 改了默认路由后, Edge 浏览器和 UWP 应用无法连接网络. 其他应用则不受影响

拓扑结构

topology

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].