Giter Site home page Giter Site logo

auto-add-routes's Introduction

auto-add-routes

介绍

为Windows平台上的全局代理VPN添加国内IP/域名分流功能。

文件说明:

add.txt和del.txt为写入和删除时使用的路由表;

routes-up.bat和routes-down.bat为Wireguard在连接前和断开后调用的写入/删除路由表的批处理文件。通过Wireguard的Pre/Post命令调用。

client_pre.bat和client_down.bat为Openvpn在连接前和断开后调用的写入/删除路由表的批处理文件。Openvpn连接时会自动调用。

cmroute.dll会被上述批处理文件调用,作用是秒载/秒删路由表。即使有数千条路由表也能秒载入,秒删除。

Overture项目地址

Overture使用方法可以参考:https://moe.best/tutorial/overture.html

分流原理

请参考wiki

使用方法

Wireguard

1. 下载并安装最新版本的官方PC客户端。一般会安装在目录"C:\Program Files\WireGuard"

2. 开启Wireguard的Pre/Post命令支持,只能通过修改注册表的方式开启,具体操作:

  • 以管理员身份运行cmd
  • 输入以下命令按回车
reg add HKLM\Software\WireGuard /v DangerousScriptExecution /t REG_DWORD /d 1 /f

Snipaste_2021-12-24_10-02-19.jpg

3. 下载此页面中的所有文件到"C:\Program Files\WireGuard\bat"。或者直接下载解压此压缩档

Snipaste_2021-12-24_14-39-56.jpg

4. 修改Wireguard客户端配置文件,加入以下Script Hook调用"C:\Program Files\WireGuard\bat"的批处理文件

PreUp = "C:\Program Files\WireGuard\bat\routes-up.bat"
PostUp = "C:\Program Files\WireGuard\bat\dns-up.bat"
PreDown = "C:\Program Files\WireGuard\bat\routes-down.bat"
PostDown = "C:\Program Files\WireGuard\bat\dns-down.bat"

将DNS指向本机以使用Overture作为DNS服务器

DNS = 127.0.0.1

关闭Wireguard的kill switch并保存修改

Snipaste_2021-12-24_11-08-08.jpg

5. 如配置正确,此时点击连接Wireguard会⑴自动调用routes-up.bat将国内IP写进系统路由表,⑵启动overture DNS服务器

连接成功后可上ip.skk.moe测试一下看是否正确分流。

Openvpn

1. 下载openvpn.zip解压到OPENVPN的config文件夹中,需要确保解压出的文件与你的配置文件client.ovpn保存在同一目录中。

假如你的配置文件不是client.ovpn而是abc.ovpn,你需要将client_pre.bat和client_down.bat分别改名为abc_pre.bat和abc_down.bat,否则OPENVPN无法自动调用批处理文件。

2. 添加以下参数到客户端配置文件client.ovpn

pull-filter ignore "dhcp-option DNS"
dhcp-option DNS 127.0.0.1

3. OPENVPN点击Connect连接就会调用client_pre.bat将国内IP写进系统路由表,断开disconnect则会调用client_down.bat删除路由表。

关于分流后国内访问慢,无法播放网站版权视频/音乐

因为你访问的国内网站有海外节点,当你使用WG/OPENVPN时DNS一般默认是8.8.8.8。这是一个海外的DNS,访问有海外节点的网站时会把你解析到海外节点,所以会被认为从大陆地区以外访问,这时候访问网站会变慢或者版权视频/音乐无法播放。解决办法是不要边用WG边上这些网站,这不是域名分流!

配搭overture可实现访问国内网站用国内DNS,海外网站使用海外DNS

auto-add-routes's People

Contributors

lmc999 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

auto-add-routes's Issues

得更新一下了

比如219.142.11.254是北京电信的,但这个文件里没有。
222.186.149.112是镇江电信的,但这个文件里没有。

浏览器打开doh后,所有请求都去走国内的服务器了

运营商dns太垃圾改用腾讯doh,在浏览器设置的,win10在系统设置无法设置doh,普通dns验证了会被劫持没用
国外doh被墙总不能一直挂着梯子用那样就没意义了
如果浏览器开启doh加不带分流脚本的WireGuard或v2rayN,ipleak测出来所有请求指向我设置的cf的dns
如果浏览器开启doh加带分流脚本的WireGuard,所有请求去腾讯dns,表现出污染
如果浏览器默认加带分流脚本的WireGuard
这里还要分类讨论,WireGuardDNS设置127.0.0.1,所有dns请求都是去国内,分流失败
WireGuardDNS设置1.1.1.1,所有dns请求显示是去cf,但是访问国内网站速度明显比不分流块,所以分流成功
所以就一直凑合用了这么久,但是和浏览器doh冲突了很难受,希望大佬能解决一下

Support Tailscale/Headscale Exit Nodes

Tailscale 是一个基于 Wireguard 的组网工具,其客户端开源,服务端闭源,而 Headscale 是 Tailscale 服务端的开源实现。两者功能基本相同,本 issue 中用 Headscale 指代两者。

Headscale 中有一个功能:Exit Node。此功能可以在已经组好的私人网络中,指定一台机器作为 Exit Node;网络中的其他设备可以使用此 Exit Node 来连接互联网,在此情况下,此设备的所有互联网流量将会通过此 Exit Node。

使用非网络管制地区的机器作为 Exit Node,可以绕过网络管制。经过测试,性能不错,且使用方便。唯一的缺陷是无法分流,导致国内应用访问极其缓慢。

因为 Headscale 基于 Wireguard,所以考虑,是否可以通过对本项目进行一些更改,来实现客户端连接 Headscale Exit Node 时的分流?

万分感谢!

您好,请教一个chnrouer更新和转换的问题。

china CIDR 目前最新的已有8000+,而add里的才6000+,请问如何把最新的文本CIDR(例如一行是16.0.5.0/28)转换成add路由文本的形式?
数千行的CIDR,总不能手动转换吧?还请不吝赐教。

能否国内自定义DNS

使用Overture作为DNS服务器,设置了DNS127.0.0.1 访问国内 延迟很高,能否国内的自定义DNS,国外的使用Overture作为DNS服务器

启用了Overture似乎不能做到分流作用

具体是这样的,我没有用WG或者openVNP,用的是其他的全局VPN
我在windows上,把WG文件夹里的route.zip解压,运行里面的route-up.bat,

Snipaste_2020-03-21_11-25-10

然后用route print查询,路由表确实写进去了
Snipaste_2020-03-21_11-24-02

然后再运行dns-up.bat,连接上VPN,之后用ip111.cn查询没问题:
Snipaste_2020-03-21_11-26-39

但是仍然是打不开baidu.com,Overture似乎没起到作用
我感觉似乎是这儿出了问题:

ExcludedIPs = 127.0.0.1/32
然后修改配置文件的DNS地址为本机地址即:127.0.0.1

但是即使我修改了DNS地址好像还是不行
除了baidu.com,其他的163.com,youku.com都打不开

请问这是怎么回事?

请问如何修改文件来增加/移除使用代理的网站?

有一个网站使用wireguard以后无法访问,我尝试不连接wireguard的使用使用CMD ping获得了该网站的IP地址,仿照bat文件夹内的add.txt和del.txt的原始内容分别新增了一条该网址对应的命令,但是都行不通,请问应该如何修改呢?

建议将两个bat放在程序根目录

我使用的1.5rc1,默认是管理员权限运行TunSafa,填绝对路径会提示找不到文件。
放在根程序根目录,以相对路径运行则无问题。

PreUp = start routes-up.bat
PostDown = start routes-down.bat

是否只有tunsafe才能整合overture?

使用openvpn在使用了3个不同版本的路由表后,bilibili的解析始终在海外,但在ip111上查看确实是分流成功的。
我想想可能是dns的问题,是我没有成功使用overture还是openvpn无法实现?

add.txt 添加局域网

有个192.168.x.x的内网机器访问不了,所以我去改了add.txt,发现里面都没有添加局域网的配置
然后我加了一下局域网配置,重启就ok了(下列四条中,添加了192.168那条,就可以正常访问了)。

add 100.0.0.0 mask 255.0.0.0 default METRIC default IF default
add 10.0.0.0 mask 255.0.0.0 default METRIC default IF default
add 192.168.0.0 mask 255.255.0.0 default METRIC default IF default
add 172.16.0.0 mask 255.240.0.0 default METRIC default IF default

想问一下,上述解决方法是否正确,添加的其他几行配置是否正确(我也是半蒙半猜配置的)
如果可以的话,请大佬更新一下add.txt

按照教程设置完之后无法访问Google

所有配置一步一步对照弄好了,分流网站显示正常分流,但是YouTube网站可以打开不能播放视频,Google网站也无法打开。更多的网站没测试。我用的是warp+的优选IP。请问这是什么原因造成的?望告知,谢谢。

使用overture+wireguard后,youtube视频不能播放

单独使用wireguard时,YouTube视频是能播放的。使用overture+wireguard后,YouTube页面能打开,但是视频一直转圈。
domain_alternative_sample文件中也有googlevideo.com字段,但我看到浏览器里还是有关于https://rr2---sn-npoeened.googlevideo.com/videoplayback?的请求失败了,请问该如何解决?

配置之后链接谷歌提示:“您的连接不是私密连接”

www.google.com 通常会使用加密技术来保护您的信息。Google Chrome 此次尝试连接到 www.google.com 时,此网站发回了异常的错误凭据。这可能是因为有攻击者在试图冒充 www.google.com,或 Wi-Fi 登录屏幕中断了此次连接。请放心,您的信息仍然是安全的,因为 Google Chrome 尚未进行任何数据交换便停止了连接。

您目前无法访问 www.google.com,因为此网站使用了 HSTS。网络错误和攻击通常是暂时的,因此,此网页稍后可能会恢复正常。

thank Imc999,i already success。

when add this code,Tunnel segmentation cannot be implemented。
But when I deleted it, it worked!!!
pull-filter ignore "dhcp-option DNS" dhcp-option DNS 127.0.0.1

添加配置的代码

你好,我在win7环境下添加config里的两行配置要写成
PreUp = start "" "D:\Program Files\TunSafe\auto-add-routes-master\routes-up.bat"
PostDown = start "" "D:\Program Files\TunSafe\auto-add-routes-master\routes-down.bat"
才管用(双引号很重要,没有不好使);

关于wirgaurd分流配置目录

一定要将文件解压到安装目录的bat目录吗?试了下解压在其它目录,然后在配置文件里设置正确的解压文件目录不成功

wg对端为ipv6时使用此脚本会导致蓝屏

如题,并且日志会提示
2022-08-03 22:46:46.662: [TUN] [] Warning: the "WLAN" interface has Forwarding/WeakHostSend enabled, which will cause routing loops
使用相关命令查询确认全部网卡都关闭了forward
在连接时会立刻显示60M-220M流量记录,疑似真的loop了

这个方法分流能不能用多个DNS

DNS=127.0.0.1 这一行填的是自己电脑的DNS地址吗?我填自己的,发现访问国内飞速,但是chatGPT无法使用;如果填写1.1.1.1,可以用GPT,但是国内巨慢。而127.0.0.1是不是可以解决这两个问题?

写入路由表后短时间内高CPU与磁盘占用

操作系统win10 22h2,wireguard连接
此时wireguard已经startup complete,分流生效。但不知道为什么系统进程仍会有大约2分钟的时间占用CPU和硬盘,再之后一切正常
image
以下是用process monitor截的从按下连接到停止占用的log
链接

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.