仅用用户名和密码连接无证书VPN的可行性及Ubuntu连接问题咨询
仅用用户名和密码连接无证书VPN的可行性及Ubuntu连接问题咨询
首先帮你理清核心问题:并不是Ubuntu的OpenVPN必须要证书,而是你没选对Network Manager里的认证配置方式。Windows客户端能直接连,是因为它默认支持或自动适配了服务器的密码认证模式,而Ubuntu的Network Manager插件需要你手动切换认证类型。
为什么会有平台差异?
客户IT那边的OpenVPN服务器应该配置了基于用户名密码的认证(比如PAP、MSCHAPv2这类),而非证书认证。Windows的OpenVPN客户端可能默认开启了对这种认证方式的支持,或者他们给的Windows配置文件里已经指定了认证类型;但Ubuntu的Network Manager在创建OpenVPN连接时,默认选中了证书相关的认证选项,导致你没输入证书就无法点击“Add”按钮。
你的解决选项(不用Windows也不用现场)
选项1:用命令行OpenVPN客户端(更灵活,推荐优先尝试)
- 先安装OpenVPN工具:
sudo apt update && sudo apt install openvpn - 创建一个简单的配置文件,比如
~/vpn-client.conf,复制以下内容并根据实际情况修改:client dev tun proto udp # 如果连不上,换成tcp试试 remote 你的VPN主机地址 1194 # 端口如果客户没给,先试默认的1194,不行再问或试443 auth-user-pass # 告诉OpenVPN采用用户名密码认证 nobind persist-key persist-tun cipher AES-256-CBC # 常用加密算法,服务器如果用其他套件需对应调整 auth SHA256 verb 3 # 日志级别,方便排查连接问题 - 运行连接命令:
执行后会提示输入用户名和密码,输入客户提供的信息即可。如果连接成功,你就能访问远程服务器了。sudo openvpn --config ~/vpn-client.conf
选项2:调整Network Manager的OpenVPN图形配置
如果你更习惯用图形界面,可以按以下步骤操作:
- 打开Network Manager的VPN创建窗口,选择“OpenVPN”类型进入配置页面
- 在“General”标签填好VPN主机地址、端口、协议(UDP/TCP)
- 切换到Authentication标签:
- 把“Type”下拉框从默认的证书选项(比如“TLS”)改成**“Password”**
- 勾选“Use password authentication with username and password”
- 输入客户给的用户名和密码
- 此时“Add”按钮会变为可点击状态,保存配置后尝试连接即可。
额外排查点
如果还是连不上,可以检查这些细节:
- VPN的端口和协议:有些服务器会用443端口(伪装成HTTPS)或者TCP协议,你可以让客户IT确认,或者自己分别尝试
- 加密算法:如果服务器用了特殊的加密套件,需要在配置文件里对应修改
cipher和auth参数 - DNS问题:如果连接后无法解析远程服务器域名,可以在配置文件里加上
dhcp-option DNS 8.8.8.8(用谷歌公共DNS)或者客户内部的DNS地址
备注:内容来源于stack exchange,提问作者Yanick Rochon




