是否可以设置 VPN,让我在互联网出现故障时断开连接?

是否可以设置 VPN,让我在互联网出现故障时断开连接?

如何设置 VPN,以便在互联网出现故障时断开与互联网的连接?我使用 Ubuntu 并使用网络对话框来使用 VPN;但如果 VPN 出现故障,它只会切换到非 VPN (eth0) 连接。如果 VPN 出现故障,我想“断开”与互联网的连接(仅允许通过 VPN 连接)。显然VPN本身必须是直连的,但其他一切都应该通过VPN。

或者,是否可以通过这种方式设置虚拟计算机(我对 VirtualBox 不太满意)?或者也许有一种方法可以限制某些程序只能通过 VPN 访问互联网?

我想路由或 iptables 是显而易见的方法,但我真的不知道从哪里开始。我看过一些通过操纵路由来设置 VPN 连接或 ssh 隧道的教程,但我不知道它们是否适用于此。

答案1

Netfilter(iptables) 会满足您的需要。有很多关于它的教程。

要执行的一些命令:

 #the default rule will be to drop everything that leaves your computer
iptables -P OUTPUT DROP
iptables -t filter -A OUTPUT -o lo -j ACCEPT
iptables -t filter -A OUTPUT -o tun0(your vpn interface) -j ACCEPT
iptables -t filter -A OUTPUT -o eth0(your real interface) -p udp(or tcp) --dport 9999(the port, the vpn server listens to) -j ACCEPT

如果你把它放入一个脚本中,每次需要它时都会启动它,它会丢弃所有离开你计算机的东西,为你的VPN设置例外。

请注意,此后许多服务将无法连接(例如 dns、dhcp...)。

答案2

设置路由,使 eth0 上的唯一路由是通往 VPN 端点的路由。由于没有 VPN 就没有通往 Internet 的路由,因此任何程序都无法连接。

相关内容