一键实现--强制通过VPN上网,VPN断线就断网

2017-03-24 13:43:34 68 22055 6
原帖是这里:强制通过VPN上网,VPN断线就断网
https://www.t00ls.com/thread-38739-1-1.html

看了之后好碉堡啊,以前还是通过监控网卡状态来判断VPN是否掉了然后禁用本地网卡,监控网卡状态总还是有延迟的!!!
BUT,现在GFW什么的很坑啊,时不时的给你掐断一下你的VPN通道,然而你本地VPN还在尝试重连,监听程序判断仍然没有断网,这里就有个延迟,鬼知道中间都发生了什么,是不是已经被登记快递地址了。

看了Twi1ight的文,感觉好猥琐啊。我喜欢!
但就是本人有点懒,凭什么linux下几条命令就搞定了,windows还要瞅半天的界面!
找点空子就看了下怎么写命令windows一键实现。
这里再标原创有点坑了,命令随便研究下就能写了,随意吧,谁让我懒。

很简单,三条命令搞定:
netsh advfirewall set allprofiles firewallpolicy allowinbound,blockoutbound
netsh advfirewall firewall add rule name="allowvpn1" dir=out action=allow enable=yes remoteip="10.0.0.1"
netsh advfirewall firewall add rule name="allowvpnremote1" dir=out action=allow enable=yes interfacetype=ras
还是这三步对防火墙进行设置:
1. 默认阻止所有出口流量
2. 在本地连接上设置允许通向VPN服务器的出口流量
3. 允许所有流量通过vpn链接出去

然后嫌麻烦,弄了个稍微人性化的bat一键版:



注:适合vista及以上版本,win7 8 10,server2008 2012 2016等。  03本应该也可以,命令好像不太一样,03不安全,抛弃。
需要管理员权限运行!!
说明:
可以重复添加IP及IP段范围地址,IP地址或范围段以英文逗号,隔开。多次添加会发现规则里有很多个重名的规则信息,这不影响。删除的时候是根据规则命名全部删除!
bat如下:
@echo off
TITLE Set forced through the VPN to the Internet , plz run as administrator!  by t00ls.net
:menu
echo.
echo ===============================================================================
echo.
echo 1. Set forced through the VPN to the Internet , plz run as administrator
echo 2. Delete your setttings in 1 , plz run as administrator
echo 3. Query your settings IP
echo 4. exit
echo.                                                                by t00ls.net
echo.

set /p select=plz select:  
if /i "%select%"=="1" goto 1
if /i "%select%"=="2" goto 2
if /i "%select%"=="3" goto 3
if /i "%select%"=="4" goto 4
echo error select&pause&%0
:1
echo.
echo  Examples:
echo          10.0.0.1 or 10.0.0.1-10.0.0.254 or 10.0.0.1/24
echo          10.0.0.1,192.168.1.1,10.10.10.0/24
echo          use , to separate multiple IPs
echo.
set /p ip=Set Your IP Address:
echo netsh advfirewall set allprofiles firewallpolicy allowinbound,blockoutbound
netsh advfirewall set allprofiles firewallpolicy allowinbound,blockoutbound
echo netsh advfirewall firewall add rule name="allowvpn1" dir=out action=allow enable=yes remoteip="%ip%"
netsh advfirewall firewall add rule name="allowvpn1" dir=out action=allow enable=yes remoteip="%ip%"
echo netsh advfirewall firewall add rule name="allowvpnremote1" dir=out action=allow enable=yes interfacetype=ras
netsh advfirewall firewall add rule name="allowvpnremote1" dir=out action=allow enable=yes interfacetype=ras
goto menu

:2
echo.
echo netsh advfirewall set allprofiles firewallpolicy allowinbound,allowoutbound
netsh advfirewall set allprofiles firewallpolicy allowinbound,allowoutbound
echo netsh advfirewall firewall delete rule name="allowvpn1"
netsh advfirewall firewall delete rule name="allowvpn1"
echo netsh advfirewall firewall delete rule name="allowvpnremote1"
netsh advfirewall firewall delete rule name="allowvpnremote1"
goto menu

:3
echo.
echo You have set the IP
netsh advfirewall firewall show rule name="allowvpn1" |findstr IP
if %errorlevel% NEQ 0 (echo.
echo ----Not Found IP----
echo.
echo.) else echo.
goto menu

:4
exit
自评TCV:0

关于作者

dllk43篇文章1016篇回复

评论68次

要评论?请先  登录  或  注册
  • 28楼
    2017-3-27 15:58

    BAT批处理 方便

  • 27楼
    2017-3-27 12:44
    J0k3r

    使用这个脚本发现貌似还是不能阻断流量,默认的话那个防火墙属性里面的公用配置策略(public profile)没有开启,使用这个脚本的话,也是没有开启这个策略,阻断流量。手动开启的话,这个脚本可以实现了功能

    1

    你是在什么xi统上测试的?报错了吗?公用策略的出站连接是要阻止的。 你是指公用配置的防火墙状态(F)没有启用?

  • 26楼
    2017-3-27 11:41

    使用这个脚本发现貌似还是不能阻断流量,默认的话那个防火墙属性里面的公用配置策略(public profile)没有开启,使用这个脚本的话,也是没有开启这个策略,阻断流量。手动开启的话,这个脚本可以实现了功能

  • 25楼
    2017-3-26 17:52

    真可谓懒人推动科技进步哇,感谢楼主分享。

  • 24楼
    2017-3-25 12:57

    这个一键的给力,批处理大牛威武

  • 23楼
    2017-3-24 23:51

    直接限制IP只访问TCP1723端口吧,用SS代理是不是更方便?

  • 22楼
    2017-3-24 21:47

    @核攻击 核总博客什么时候重开,

  • 21楼
    2017-3-24 20:21

    挺好,论坛里能有这样的文章说明自我保护意思开始觉醒了。说一下我的个人方案 三虚拟机物理隔离 网关机-tor机-敏感操作机 登录机用作获取登录账号的cookie来移植到敏感操作机 整机不装任何国内软件以及杀毒软件 降低攻击面 这样即使操作机被攻陷 攻击者也获取不到任何账号密码 使用者可以随时进行异地登录踢出用户。 详细篇章就不细讲了 有多种玩法 。最好的办法就是使用实体电脑而不是虚拟机 因为虚拟机存在guest os穿透到宿主机 进行泄露信息!现在电脑也不贵

  • 20楼
    2017-3-24 19:07

    这么猥琐,很不错啊!我喜欢

  • 19楼
    2017-3-24 18:32
    popppl

    设置完了怎么恢复正常呢

    1

    手动在防火墙删除也快

  • 18楼
    2017-3-24 18:31

    确实很实用,之前03用的是检测vpn断了再强制关闭,现在通过防火墙,用2008更加好了,一个数据包不漏

  • 17楼
    2017-3-24 17:51

    这个必须赞

  • 16楼
    2017-3-24 17:24

    谢谢分享,学xi下

  • 15楼
    2017-3-24 17:22

    非常实用 感谢分享

  • 14楼
    2017-3-24 16:59

    用vpn 软件就不好用了,IP不固定

  • 13楼
    2017-3-24 16:35

    用哪么复杂吗?连上vpn后 route DELETE 0.0.0.0 192.168.1.1(你的本地网关) 一条命令就行了吧。

  • 12楼
    2017-3-24 14:58

    收藏好了,实用的技能。

  • 11楼
    2017-3-24 14:58

    这个方便多了,也安全了

  • 10楼
    2017-3-24 14:42

    这个够猥琐,我试试写在路由器里

  • 9楼
    2017-3-24 14:41
    popppl

    设置完了怎么恢复正常呢

    1
    dllk

    bat里选项2 删除你在选项1中的所有配置,让防火墙恢复正常。选项3 查看你设置的IP地址。

    2

    谢谢,很实用。