【问题标题】:Check if the gateway is accessible before starting VPN connection在开始 VPN 连接之前检查网关是否可以访问
【发布时间】:2016-10-25 09:08:07
【问题描述】:

我正在开发 powershell 拨号程序,以便在执行一些步骤后调用 VPN 工具。

一个步骤是为用户选择用于建立连接的设备。在此步骤中,我正在搜索如何测试 VPN 网关,因为如果此测试不起作用,这意味着用户可能遇到连接问题,例如强制门户(如果他尝试从酒店连接)。所以如果这个测试失败了,就没有必要再进一步了。

我试过这个:

$ip ="x.x.x.x"
if(Test-Connection -computername $ip -count 1 -quiet){
write-host "gateway is accessible"
}

问题是:连接正常,VPN 也正常(如果我尝试连接),但我没有从这个脚本中得到任何响应。也许这不是测试它的正确方法。

配置:Win 7 / Powershell 4

【问题讨论】:

    标签: powershell vpn gateway


    【解决方案1】:

    您将需要某种强制门户网站测试网络服务。正如您所说,Test-Connection 无法处理强制门户之类的事情,它只查看网络接口状态。

    通常,您有一个具有预期输出的固定 URL。例如,您使用 URL mytestconnection/test 设置了一个 Web 服务器,它会输出 OK

    然后您对该 URL 执行 Invoke-WebRequest,如果它没有说 OK,则表示存在问题。

    【讨论】:

    • 是否有可能采取另一种方式,通过 udp 向 vpn 服务器发送一些内容并等待响应?
    • 我想这也是可能的。无论哪种方式,都可以减少超时限制以获得更好的体验。
    • 我想这也是可能的。无论哪种方式,都可以减少超时限制以获得更好的体验。
    【解决方案2】:

    我通过this post找到了我的解决方案

    通过使用这个:

    if(New-Object System.Net.Sockets.TCPClient -ArgumentList '$iSERVER','$PORT') {...}
    

    它运作良好。

    【讨论】:

      猜你喜欢
      • 2013-04-25
      • 1970-01-01
      • 2020-12-19
      • 2010-12-12
      • 1970-01-01
      • 1970-01-01
      • 2013-09-27
      • 2020-04-26
      • 1970-01-01
      相关资源
      最近更新 更多