当前位置:首页 > Ubuntu > 正文

Ubuntu搭建安全可靠的VPN服务器(OpenVPN详细配置指南)

在当今远程办公和数据隐私日益重要的时代,搭建一个属于自己的 Ubuntu VPN服务器 不仅能保障网络通信安全,还能实现异地访问内网资源。本教程将手把手教你如何在 Ubuntu 系统上使用 OpenVPN 搭建一个功能完整、安全可靠的 VPN 服务器。即使你是 Linux 新手(小白),也能轻松完成配置!

Ubuntu搭建安全可靠的VPN服务器(OpenVPN详细配置指南) Ubuntu VPN服务器配置  OpenVPN安装教程 Ubuntu搭建VPN Linux远程访问安全 第1张

一、准备工作

在开始之前,请确保你具备以下条件:

  • 一台运行 Ubuntu 20.04 或更高版本的服务器(云服务器或本地虚拟机均可)
  • 拥有 root 权限或 sudo 权限的用户账户
  • 服务器具有公网 IP 地址(用于外部连接)
  • 基本的 Linux 命令行操作能力

二、更新系统并安装 OpenVPN 和 Easy-RSA

首先,我们需要更新系统软件包,并安装 OpenVPN 及其配套工具 Easy-RSA(用于生成证书和密钥)。

sudo apt updatesudo apt upgrade -ysudo apt install openvpn easy-rsa -y

三、配置 PKI(公钥基础设施)

我们将使用 Easy-RSA 创建一个独立的 PKI 目录,避免影响系统原有文件。

mkdir ~/openvpn-cacp -r /usr/share/easy-rsa/* ~/openvpn-ca/cd ~/openvpn-ca

编辑 vars 文件以设置你的 CA(证书颁发机构)信息:

nano vars

在文件末尾找到如下字段并按需修改(可选,但建议填写):

export KEY_COUNTRY="CN"export KEY_PROVINCE="Beijing"export KEY_CITY="Beijing"export KEY_ORG="MyCompany"export KEY_EMAIL="admin@example.com"export KEY_OU="MyVPN"

保存并退出(Ctrl+O → Enter → Ctrl+X)。

四、生成 CA 证书和服务器密钥

初始化 PKI 并生成 CA:

./easyrsa init-pki./easyrsa build-ca

系统会提示你输入 CA 密码(建议设置)和通用名称(如:MyVPNCa)。

接着生成服务器证书和密钥(不加密私钥,便于自动启动):

./easyrsa gen-req server nopass./easyrsa sign-req server server

再生成 Diffie-Hellman 参数(用于密钥交换)和 TLS 认证密钥:

./easyrsa gen-dhopenvpn --genkey --secret pki/ta.key

五、配置 OpenVPN 服务端

将生成的证书和密钥复制到 OpenVPN 配置目录:

sudo cp pki/ca.crt pki/private/server.key pki/issued/server.crt pki/dh.pem pki/ta.key /etc/openvpn/server/

创建服务器配置文件 /etc/openvpn/server/server.conf

sudo nano /etc/openvpn/server/server.conf

填入以下内容(已优化,适合大多数场景):

port 1194proto udp# 使用 tun 设备(路由模式)dev tun# 证书和密钥路径ca ca.crtcert server.crtkey server.keydh dh.pemtls-auth ta.key 0# 加密方式cipher AES-256-CBCauth SHA256# 虚拟子网(客户端将从此网段获取IP)server 10.8.0.0 255.255.255.0# 客户端特定配置目录client-config-dir /etc/openvpn/ccd# 允许客户端之间通信client-to-client# 保持连接keepalive 10 120# 压缩(可选,部分客户端需开启 comp-lzo)compress lz4-v2push "compress lz4-v2"# 将客户端 DNS 设置为 Google DNS(可自定义)push "dhcp-option DNS 8.8.8.8"push "dhcp-option DNS 8.8.4.4"# 允许客户端访问服务器所在局域网(可选);push "route 192.168.1.0 255.255.255.0"# 以 nobody 用户运行(安全加固)user nobodygroup nogroup# 持久化选项persist-keypersist-tun# 日志status openvpn-status.logverb 3explicit-exit-notify 1

六、启用 IP 转发和防火墙规则

为了让客户端通过 VPN 访问外网,需开启 IP 转发:

echo 'net.ipv4.ip_forward=1' | sudo tee -a /etc/sysctl.confsudo sysctl -p

配置 UFW 防火墙(若未安装可跳过,或使用 iptables):

sudo ufw allow 1194/udpsudo ufw allow OpenSSH# 启用 NAT 转发sudo nano /etc/ufw/before.rules

在文件顶部添加以下内容(在 *filter 之前):

# START OPENVPN RULES# NAT table rules*nat:POSTROUTING ACCEPT [0:0]# Allow traffic from OpenVPN client to eth0 (change eth0 to your interface)-A POSTROUTING -s 10.8.0.0/8 -o eth0 -j MASQUERADECOMMIT# END OPENVPN RULES

然后启用 UFW:

sudo ufw enable

七、启动 OpenVPN 服务

sudo systemctl start openvpn-server@server.servicesudo systemctl enable openvpn-server@server.service

检查服务状态:

systemctl status openvpn-server@server.service

八、生成客户端配置文件

为每个用户生成客户端证书(例如用户 client1):

cd ~/openvpn-ca./easyrsa gen-req client1 nopass./easyrsa sign-req client client1

创建客户端配置模板 client.ovpn

clientdev tunproto udpremote YOUR_SERVER_IP 1194resolv-retry infinitenobindpersist-keypersist-tunremote-cert-tls servercipher AES-256-CBCauth SHA256key-direction 1compress lz4-v2verb 3

将以下文件合并成一个 .ovpn 文件供客户端使用:

  • ca.crt
  • client1.crt
  • client1.key
  • ta.key
  • 上面的 client.ovpn 配置

你可以使用脚本自动合并,或手动用文本编辑器拼接(注意格式)。

九、总结

至此,你已经成功完成了 Ubuntu VPN服务器配置!通过本教程,你不仅学会了如何安装和配置 OpenVPN,还掌握了证书管理、防火墙设置等关键技能。现在,你可以在任何支持 OpenVPN 的设备上导入客户端配置文件,安全地连接到你的私有网络。

记住定期更新系统和 OpenVPN,以确保 Linux远程访问安全。如果你在 Ubuntu搭建VPN 过程中遇到问题,欢迎查阅官方文档或社区论坛。

希望这篇 OpenVPN安装教程 对你有所帮助!祝你网络安全无忧!