类别:Ubantu / 日期:2025-07-06 / 浏览:58 / 评论:0

openvpn的服务器设置请参考以前文章:《RouterOS 的 OpenVPN配置(国内最完整笔记)》


在 Ubuntu 上安装和配置 OpenVPN 客户端可以通过以下步骤完成:


1. 安装 OpenVPN 客户端

OpenVPN 通常包含在 Ubuntu 的软件源中,可以通过以下命令安装:

sudo apt update
sudo apt install openvpn

2. 获取 OpenVPN 配置文件

你需要从你的 VPN 服务提供商处获取以下文件:

客户端配置文件(通常以 .ovpn 结尾,如 client.ovpn)

证书/密钥文件(如 ca.crt、client.crt、client.key)

此外,还需要以下两个文件auth.txt和pass.txt

3. 配置 OpenVPN

命令行方式

将 client.ovpn、ca.crt、client.crt、client.key配置文件复制到 /etc/openvpn/ 

设置权限(防止泄露):

sudo chmod 600 /etc/openvpn/client/client.key

创建证书私钥密码文件

sudo vi /etc/openvpn/client/pass.txt

写入证书私钥密码(单行,无多余空格或换行。此密码为当初创建证书key时设的):

your_private_key_password

设置权限(防止泄露):

sudo chmod 600 /etc/openvpn/client/pass.txt

创建登录用户和密码文件,用户一行,密码为另一行,不能有其它多余字符,例如用户名是:admin,密码是:abc123456

sudo vi /etc/openvpn/client/auth.txt

内容:

admin
abc123456

设置权限(防止泄露):

sudo chmod 600 /etc/openvpn/client/auth.txt

以上文件保存路径和权限如图所示

image.png


4.修改 client.ovpn 配置文件

sudo vi /etc/openvpn/client/client.ovpn

以下是我的配置:

client
dev tun
proto tcp #端口类型
remote vpn.itdog.net 9454 #远程服务器和端口
resolv-retry infinite #确保在域名解析临时失败时自动恢复
nobind
persist-key
persist-tun
tls-client
remote-cert-tls server
verb 4
mute 10
cipher AES-128-CBC #这是旧版本的验证加密,要根据VPN服务器具体情况设置。因为ros当时已设好为旧版本了,所以不要修改。
auth SHA1
auth-user-pass #需要输入登录用户名和密码
auth-nocache
#redirect-gateway #这个配置很关键,如果开启,所有数据走VPN。如果关闭,只有访问VPN站时才走VPN,其它都走默认路由。一般情况下关闭或删除不配置
keepalive 10 60 #保持自动重连
ca /etc/openvpn/client/ca.crt #定义CA
cert /etc/openvpn/client/client.crt #定义cert
key /etc/openvpn/client/client.key #定义key
auth-user-pass /etc/openvpn/client/auth.txt #获取登录用户名和密码
askpass /etc/openvpn/client/pass.txt #获取证书密码


5、然后启动 OpenVPN:

sudo systemctl start openvpn-client@client

(如果文件名为 client.conf,则服务名称为 openvpn@client)

如果系统中没有 /etc/systemd/system/openvpn-client@.service 文件,说明 OpenVPN 的 systemd 服务模板未被正确安装或自定义。以下是完整的解决方案:

确认 OpenVPN 服务文件位置

默认的服务模板应位于 /lib/systemd/system/。检查是否存在:

ls /lib/systemd/system/openvpn-client@.service

解决方案:重新链接服务文件,创建自定义服务配置

sudo vi /etc/systemd/system/openvpn-client@.service

粘贴以下内容(适配 Ubuntu 22.04):

[Unit]
Description=OpenVPN tunnel for %i
Documentation=man:openvpn(8)
After=network.target
Wants=network-online.target

[Service]
Type=notify
PrivateTmp=true
WorkingDirectory=/etc/openvpn/client
ExecStart=/usr/sbin/openvpn --suppress-timestamps --nobind --config /etc/openvpn/client/%i.ovpn
CapabilityBoundingSet=CAP_IPC_LOCK CAP_NET_ADMIN CAP_NET_RAW CAP_SETGID CAP_SETUID CAP_SYS_CHROOT CAP_DAC_OVERRIDE
LimitNPROC=10
DeviceAllow=/dev/null rw
DeviceAllow=/dev/net/tun rw

[Install]
WantedBy=multi-user.target

重新加载 systemd

sudo systemctl daemon-reload

然后启动 OpenVPN:

sudo systemctl start openvpn-client@client

6.设置开机自启:

sudo systemctl enable openvpn-client@client

7. 查看服务状态

sudo systemctl status openvpn-client@client

8.检查连接状态

查看 OpenVPN 日志:

sudo journalctl -u openvpn-client@client -f

检查网络接口:

ip a show tun0

ifconfig tun0

测试网络连通性:

curl ifconfig.me  # 查看公网 IP
ping 8.8.8.8     # 测试网络连通性

9.断开或重启 VPN

断开 VPN:

sudo systemctl stop openvpn-client@client

重启 VPN:

sudo systemctl restart openvpn-client@client

image.png


说一下实际应用:

办事处有一台电脑需要远程连接,系统是ubuntu,对方主路由网络没有权限开端口。本来想搞frp的,但不知怎么的到最后一步就是没成功,已排除N种可能了,最后只好放弃。干脆用openvpn一直连接就可以了。但正常上网要走默认路由的,只是ssh等几个程序需要走VPN而已。以上方案已证明可行。

打赏

感谢您的赞助~

打开支付宝扫一扫,即可进行扫码打赏哦~

版权声明 : 本文未使用任何知识共享协议授权,您可以任何形式自由转载或使用。

 可能感兴趣的文章