有一台计算机正在连接到 VPN。如果计算机无法重新连接到 VPN,则网络应保持离线状态。它永远不应使用正常连接。只能使用 VPN 连接。
有没有办法设置这种行为?
该机器是在本地使用的,因此无需通过网络或其他方式访问它。
客户端操作系统:Windows 7 Professional x64 SP1
答案1
这可以通过配置防火墙来实现,仅允许连接到 VPN 提供商的 IP 和/或 TCP 端口 1723 和 UDP 端口 47。
如果您使用多家 VPN 提供商,基于端口的阻止会更简单。如果没有,基于 IP 的阻止会更安全。无论如何,您都可以同时使用这两种方法。
例如,您可以配置 Windows 防火墙来执行以下操作:
假设您正在使用
superfreevpn.com
(69.60.121.29
)。连接到互联网和您的 VPN。
按Win+R并执行
control /name Microsoft.NetworkandSharingCenter
。在查看您的活动连接,点击链接家庭/工作/公共网络在您的 Internet 连接下并选择公共网络。
在查看您的活动连接,点击链接家庭/工作/公共网络在您的 VPN 连接下方并选择工作网络。
按Win+R并执行
WF.msc
。在本地计算机上具有高级安全性的 Windows 防火墙, 点击行动, 然后特性,转到私人档案选项卡并设置以下内容:
Firewall state: On (recommended) Inbound connections: Block all connections Outbound connnections: Allow (default)
基于端口
在出站规则, 点击行动, 然后新规则...并选择以下内容:
Port TCP Specific remote ports: 1-1722, 1724-65535 Block the connection Public Public TCP
在出站规则, 点击行动, 然后新规则...并选择以下内容:
Port UDP Specific remote ports: 1-46, 48-65535 Block the connection Public UDP
基于IP
在出站规则, 点击行动, 然后新规则...并选择以下内容:
Custom All programs Any Any IP address These IP adresses Add This IP address range -> From: 0.0.0.0 To: 69.60.121.28 Add This IP address range -> From: 69.60.121.30 To: 255.255.255.255 Block the connection Public Non-VPN
由于我们现在已经阻止了所有非 VPN DNS 查询,
superfreevpn.com
因此无法得到解决。通过将主机名替换为 IP 来修改您的 VPN 连接,或者将以下行添加到
%windir%\system32\drivers\etc\hosts
:69.60.121.29 superfreevpn.com
答案2
对优秀答案的一点补充丹尼斯:如果您的 Internet 连接配置为使用 DHCP(大多数都是这样)你将无法获取 IP 地址除非你排除 DHCP 服务器地址和广播地址255.255.255.255。
运行ipconfig /all
(当 DHCP 仍然有效时)以查找 DHCP 服务器的地址。假设它是192.168.2.1
,VPN 服务器是69.60.121.29
,如 Dennis 的示例所示。然后,您将为以下 IP 范围配置阻止:
From 0.0.0.0 to 69.60.121.28
From 69.60.121.30 to 192.168.1.255
From 192.168.2.2 to 255.255.255.254
作为临时解决方法,您还可以禁用阻止所有内容的出站防火墙规则。如果您已经“丢失”了 IP 地址并且不知道 DHCP 服务器的地址,那么这种方法就很方便。
(归功于马克斯·托马斯为了原始答案。我只是将它添加到这个问题中以防其他用户遇到同样的问题。)
另一个不相关的补充:禁用网络发现如果您按照上述步骤操作,并且已将整个互联网配置为“工作”网络,则家庭/工作网络的文件和打印机共享将启用。您可以在网络及共享中心,更改高级共享设置。
答案3
替代答案-使用路线
您可以通过实际的 Internet 连接删除默认路由,并仅添加通向 VPN 服务器的路由。这在某种程度上比 Windows 防火墙更简单,但有一个问题:Windows 每次连接到网络时都会重新添加默认路由。您可以使用任务计划程序在每次连接时进行更改来解决这个问题。
一个不错的福利是,你还可以自动连接到 VPN每当您连接到网络时,只要您保存了用户名和密码。
首先创建一个批处理文件,如下所示:
@ECHO OFF
REM IP address of the real gateway you use to connect to the Internet
SET REAL_GATEWAY_IP=192.168.2.1
REM (External) IP address of the VPN server
SET VPN_SERVER_IP=69.60.121.29
REM Delete default route via the real gateway
route delete 0.0.0.0 %REAL_GATEWAY_IP%
REM Add a route to the VPN server via the real gateway
route add %VPN_SERVER_IP% mask 255.255.255.255 %REAL_GATEWAY_IP% metric 1
REM To connect to the VPN (optional):
rasphone -d "My VPN connection name"
然后在任务计划程序中添加一个计划任务来运行批处理文件,其触发器配置如下:
您可能还想取消选中“条件”选项卡上的“仅当计算机使用交流电源时启动任务”,并在“常规”选项卡上选择“无论用户是否登录都运行”。
然后,无论何时连接到网络,都应更新路由,您可以通过运行来验证它们route print
- 不应有通过真实网关到 0.0.0.0 的路由。