天天看点

C# winform实现断开VPN连接后实现自动连接

作者:剑指工控

前 言

搭建内网VPN后,用客户端连接,偶尔会出现断开连接的情况,我们可以新建一个程序,监听是否连接(判断连接VPN后的IP是否能ping通),断开连接后,自动执行连接VPN的bat脚本。

实现过程如下:新建一个控制台程序

C# winform实现断开VPN连接后实现自动连接

加一个配置文件用于设置ping哪个IP

C# winform实现断开VPN连接后实现自动连接
C# winform实现断开VPN连接后实现自动连接

封装一个PingHost方法,用于检测指定IP是否能ping成功。

C# winform实现断开VPN连接后实现自动连接

定义连接状态和连接IP

C# winform实现断开VPN连接后实现自动连接

通过调用 PingHost(ipAddress) 方法来检查 VPN 是否已经成功连接,如果检查发现 VPN 未连接成功,创建一个新的进程对象 proc,使用 proc.Start() 方法来执行自动连接 VPN 的脚本文件。WaitForExit() 方法来等待之前的执行的bat执行进程结束。

C# winform实现断开VPN连接后实现自动连接

代码测试:首先设置一下连接VPN后的IP

C# winform实现断开VPN连接后实现自动连接

下面是自动连接VPN的bat,rasdial 命令用于连接远程拨号网络,其中 xxx表示要连接的 VPN 服务器地址,cyl01 表示要连接的 VPN 连接名称,123456 表示连接所需的用户名和密码。

C# winform实现断开VPN连接后实现自动连接
C# winform实现断开VPN连接后实现自动连接
C# winform实现断开VPN连接后实现自动连接

这样就实现了VPN断线自动重连的功能。这样在本地部署应用后,在VPN服务器上配置Nginx反向代理,就能通过VPN服务器的IP加端口的方式实现访问本地应用了。

C# winform实现断开VPN连接后实现自动连接
C# winform实现断开VPN连接后实现自动连接

继续阅读