【问题标题】:Establish a VPN connection in cmd在cmd中建立VPN连接
【发布时间】:2013-01-14 21:16:19
【问题描述】:

如何在 Windows cmd 中使用任意协议与任意服务器创建 VPN 连接?

【问题讨论】:

    标签: windows cmd vpn


    【解决方案1】:

    Powershell 是一种选择吗?

    启动 Powershell:

    powershell
    

    创建 VPN 连接:Add-VpnConnection

    Add-VpnConnection [-Name] <string> [-ServerAddress] <string> [-TunnelType <string> {Pptp | L2tp | Sstp | Ikev2 | Automatic}] [-EncryptionLevel <string> {NoEncryption | Optional | Required | Maximum}] [-AuthenticationMethod <string[]> {Pap | Chap | MSChapv2 | Eap}] [-SplitTunneling] [-AllUserConnection] [-L2tpPsk <string>] [-RememberCredential] [-UseWinlogonCredential] [-EapConfigXmlStream <xml>] [-Force] [-PassThru] [-WhatIf] [-Confirm] 
    

    编辑 VPN 连接:Set-VpnConnection

    Set-VpnConnection [-Name] <string> [[-ServerAddress] <string>] [-TunnelType <string> {Pptp | L2tp | Sstp | Ikev2 | Automatic}] [-EncryptionLevel <string> {NoEncryption | Optional | Required | Maximum}] [-AuthenticationMethod <string[]> {Pap | Chap | MSChapv2 | Eap}] [-SplitTunneling <bool>] [-AllUserConnection] [-L2tpPsk <string>] [-RememberCredential <bool>] [-UseWinlogonCredential <bool>] [-EapConfigXmlStream <xml>] [-PassThru] [-Force] [-WhatIf] [-Confirm]
    

    查找 VPN 连接:Get-VpnConnection

    Get-VpnConnection [[-Name] <string[]>] [-AllUserConnection]
    

    连接:rasdial [connectionName]

    rasdial connectionname [username [password | \]] [/domain:domain*] [/phone:phonenumber] [/callback:callbacknumber] [/phonebook:phonebookpath] [/prefixsuffix**]
    

    您可以使用上面的 powershell 命令管理您的 VPN 连接,只需使用连接名称通过rasdial 进行连接。

    Get-VpnConnection 的结果可能有点冗长。这可以通过一个简单的Select-Object 过滤器来简化:

    Get-VpnConnection | Select-Object -Property Name
    

    更多信息可以在这里找到:

    【讨论】:

    • 问题询问如何建立 VPN 连接。
    • 我看到了除了如何连接之外的所有内容 =)
    【解决方案2】:

    我知道这是一个非常古老的线程,但我一直在寻找解决同一问题的方法,我在最终找到答案之前遇到了这个问题,我想把它贴在这里,这样其他人会更短穿越互联网。

    ****请注意,您可能必须以管理员身份运行 cmd.exe 才能正常工作**

    所以我们开始吧,打开提示符(作为管理员)并转到您的 System32 目录。然后运行

    C:\Windows\System32>cd ras

    现在您将位于 ras 目录中。现在是时候用我们的连接信息创建一个临时文件了,然后我们将把它附加到 rasphone.pbk 文件中,这样我们就可以使用 rasdial 命令了。

    所以要创建我们的临时文件运行:

    C:\Windows\System32\ras>复制con temp.txt

    现在它可以让你输入文件的内容了,应该是这样的:

    [CONNECTION NAME]
    MEDIA=rastapi
    Port=VPN2-0
    Device=WAN Miniport (IKEv2)
    DEVICE=vpn
    PhoneNumber=vpn.server.address.com
    

    因此,将 CONNECTION NAME 和 vpn.server.address.com 替换为所需的连接名称和所需的 vpn 服务器地址。

    换行并按 Ctrl+Z 完成并保存。

    现在我们将把它附加到 rasphone.pbk 文件中,该文件可能存在也可能不存在,具体取决于您是否已经配置了网络连接。为此,我们将运行以下命令:

    C:\Windows\System32\ras>输入 temp.txt >> rasphone.pbk

    这会将 temp.txt 的内容附加到 rasphone.pbk 的末尾,或者如果 rasphone.pbk 不存在,它将被创建。现在我们不妨删除我们的临时文件:

    C:\Windows\System32\ras>del temp.txt

    现在我们可以使用以下命令连接到我们新配置的 VPN 服务器:

    C:\Windows\System32\ras>rasdial "CONNECTION NAME" myUsername myPassword

    当我们想断开连接时,我们可以运行:

    C:\Windows\System32\ras>rasdial /DISCONNECT

    这应该涵盖它! 我已经包含了一个直接副本,并从我的命令行设置连接并使用此方法连接到加拿大 vpn 服务器:

    Microsoft Windows [Version 6.2.9200]
    (c) 2012 Microsoft Corporation. All rights reserved.
    
    C:\Windows\system32>cd ras
    
    C:\Windows\System32\ras>copy con temp.txt
    [Canada VPN Connection]
    MEDIA=rastapi
    Port=VPN2-0
    Device=WAN Miniport (IKEv2)
    DEVICE=vpn
    PhoneNumber=ca.justfreevpn.com
    ^Z
            1 file(s) copied.
    
    C:\Windows\System32\ras>type temp.txt >> rasphone.pbk
    
    C:\Windows\System32\ras>del temp.txt
    
    C:\Windows\System32\ras>rasdial "Canada VPN Connection" justfreevpn 2932
    Connecting to Canada VPN Connection...
    Verifying username and password...
    Connecting to Canada VPN Connection...
    Connecting to Canada VPN Connection...
    Verifying username and password...
    Registering your computer on the network...
    Successfully connected to Canada VPN Connection.
    Command completed successfully.
    
    C:\Windows\System32\ras>rasdial /DISCONNECT
    Command completed successfully.
    
    C:\Windows\System32\ras>
    

    希望这会有所帮助。

    【讨论】:

    • 我收到以下错误:远程访问错误 623 - 系统找不到此连接的电话簿条目。
    • 我的 rasphone.pbk 看起来像这样 [DEV_QA] MEDIA=rastapi Port=VPN2-0 Device=WAN Miniport (IKEv2) Device=vpn PhoneNumber=XXX
    • 仅供参考,当我缺少 rasphone.pbk 文件时,我收到了 this function is only valid in win32 mode 错误。 (这只是一个信息性评论,后来我创建了文件,它按预期工作。)
    • 我收到以下错误:远程访问错误 800 - 未建立远程连接,因为尝试的 VPN 隧道失败。 VPN 服务器可能无法访问。如果此连接尝试使用 L2TP/IPsec 隧道,则可能未正确配置 IPsec 协商所需的安全参数。
    • 非常感谢!效果很好,但 %userprofile%\AppData\Roaming\Microsoft\Network\Connections\PBK 中的 rasphone.pbk 文件夹
    【解决方案3】:

    你调查过 rasdial 吗?

    以防万一有人想这样做并在将来找到它,您 可以在命令提示符下使用 rasdial.exe 连接到 VPN 网络

    rasdial "VPN NETWORK NAME" "Username" *

    然后它会提示输入密码,否则您可以使用“用户名” “密码”,但是这不太安全

    http://www.msfn.org/board/topic/113128-connect-to-vpn-from-cmdexe-vista/?p=747265

    【讨论】:

    • 是的,但是rasdial是用来连接现有连接的,我需要创建连接
    • 此命令在 Windows 10 中存在一些问题。我试过了,它说连接成功。但是,如果您尝试使用 powershell 获取 VpnConnection,它会告诉您未连接。我认为这可能是最新版本的 windows 中的一个错误。
    • 使用 rasdial "vpnName" 也可以在 cmd 中使用。感谢您的回答!
    猜你喜欢
    • 2020-06-18
    • 2018-04-28
    • 1970-01-01
    • 1970-01-01
    • 2019-03-31
    • 2012-08-26
    • 2015-07-09
    • 2023-01-24
    • 2018-04-27
    相关资源
    最近更新 更多