Ubuntu 上安装和配置 OpenVPN 的详细教程

哈哈哈 2026-1-27 14 1/27
AI智能摘要
2024年,还在用复杂命令行搭建VPN?Ubuntu上从零配置OpenVPN的全流程已全面更新。本文手把手教你利用Easy-RSA生成证书、配置服务端与客户端,并打通防火墙与IP转发关键环节。无需第三方工具,完整覆盖Ubuntu 24.04 LTS下的安全部署细节,每一步皆可复制。看完即能独立搭建专属加密隧道,实现远程安全访问。
— AI 生成的文章内容摘要

系统版本号:Ubuntu 24.04.2 LTS

一、安装 OpenVPN 和 Easy-RSA

sudo apt update
sudo apt install openvpn easy-rsa -y

 

二、配置 CA 证书与密钥

Easy-RSA 是一个用于创建和管理 PKI (公钥基础设施)的工具集。

1、创建 Easy-RSA 工作目录

make-cadir ~/openvpn-ca
cd ~/openvpn-ca

 

2、初始化 PKI

./easyrsa init-pki

 

3、构建 CA(输入密码用于保护私钥)

./easyrsa build-ca

 

三、生成服务器端密钥和证书

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

 

会提示你确认签署请求。

四、生成 Diffie-Hellman 参数和 TLS 密钥

./easyrsa gen-dh
openvpn --genkey --secret ta.key

 

五、生成客户端证书(以 client1 为例)

./easyrsa gen-req client1 nopass
./easyrsa sign-req client client1

 

六、配置 OpenVPN 服务器

1. 复制所需文件

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

 

2. 创建配置文件

sudo nano /etc/openvpn/server.conf

 

3. 示例配置 server.conf:

port 1194
proto udp
dev tun
ca ca.crt
cert server.crt
key server.key
dh dh.pem
auth SHA256
tls-auth ta.key 0
topology subnet
server 10.8.0.0 255.255.255.0
push "redirect-gateway def1 bypass-dhcp"
push "dhcp-option DNS 1.1.1.1"
push "dhcp-option DNS 8.8.8.8"
keepalive 10 120
cipher AES-256-CBC
user nobody
group nogroup
persist-key
persist-tun
status openvpn-status.log
verb 3
explicit-exit-notify 1

 

七、启用并启动服务

sudo systemctl enable openvpn@server
sudo systemctl start openvpn@server

 

查看状态:

sudo systemctl status openvpn@server

 

八、开启 IP 转发和防火墙设置

1. 编辑 sysctl 配置文件

sudo nano /etc/sysctl.conf

 

取消以下行的注释:

net.ipv4.ip_forward=1

 

使配置生效:

sudo sysctl -p

 

2. 设置 UFW 防火墙(以 eth0 为主网卡为例)

sudo ufw allow 1194/udp
sudo ufw allow OpenSSH
sudo nano /etc/ufw/before.rules

 

在文件顶部添加:

*nat
:POSTROUTING ACCEPT [0:0]
-A POSTROUTING -s 10.8.0.0/8 -o eth0 -j MASQUERADE
COMMIT

 

启用 UFW 转发:

sudo nano /etc/default/ufw

 

找到:

DEFAULT_FORWARD_POLICY="DROP"

 

改为:

DEFAULT_FORWARD_POLICY="ACCEPT"

 

重启 UFW:

sudo ufw disable
sudo ufw enable

 

九、配置客户端

1.在客户端创建 .ovpn 文件(如 client1.ovpn):

client
dev tun
proto udp
remote <服务器公网IP> 1194
resolv-retry infinite
nobind
persist-key
persist-tun
remote-cert-tls server
auth SHA256
cipher AES-256-CBC
key-direction 1
verb 3

<ca>
# 内容来自 ca.crt
</ca>

<cert>
# 内容来自 client1.crt
</cert>

<key>
# 内容来自 client1.key
</key>

<tls-auth>
# 内容来自 ta.key
</tls-auth>

 

你可以使用 scp 或其他方式把证书和配置文件传给客户端。

十、测试连接

启动客户端,观察连接日志;

使用 ifconfig 或 ip a 确认 tun0 接口是否启用;

在服务器端查看连接日志:

tail -f /var/log/syslog

 

- THE END -

哈哈哈

1月27日19:22

最后修改:2026年1月27日
0

非特殊说明,本博所有文章均为博主原创。

共有 6 条评论

  1. 洗马

    这玩意配起来真费劲,搞了两个小时才通。

  2. 绯色之雨

    ta.key是干啥的?求解释一下

  3. 夜莺轻语

    之前搞过这个,确实折腾了好久,最后发现防火墙没开转发

  4. 尸王

    UFW那块改完要重启服务吗?试了不行有点懵

  5. 柠檬黄蜂

    感觉还行,照着步骤一步步来基本没问题

  6. 醉仙楼

    服务器端证书名字能自定义不?试了下怕出错