原版OpenWRT配置OpenVPN

本文最后更新于 2025年4月17日 上午

证书密钥文件生成

环境准备

  1. 安装OpenVPN以及所需工具
    1
    2
    3
    4
    opkg update
    opkg install luci-app-openvpn
    opkg install openvpn-openssl
    opkg install openvpn-easy-rsa

服务端证书生成

1. 初始化PKI目录

1
cd /etc/openvpn
1
easyrsa init-pki

2. 生成根证书(CA)

1
easyrsa build-ca nopass

3. 生成服务端证书及私钥

1
easyrsa build-server-full server nopass

4. 生成客户端证书及私钥

1
easyrsa build-client-full client1 nopass

后续新增用户只需修改client1为不同名称(如client2、client3)

5.生成Diffie-Hellman参数

此过程耗时较长(约10-30分钟)

1
easyrsa gen-dh

6. 证书文件位置说明

1
2
3
4
5
6
7
8
9
├── pki/
│ ├── ca.crt # CA根证书
│ ├── dh.pem # DH参数文件
│ ├── issued/
│ │ ├── server.crt # 服务端证书
│ │ └── client1.crt # 客户端证书
│ └── private/
│ ├── server.key # 服务端私钥
│ └── client1.key # 客户端私钥

客户端配置文件生成

在shell执行

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
cat > client1.ovpn <<EOF
client
dev tun
proto udp
remote <服务器地址> 1194
resolv-retry infinite
nobind
persist-tun
remote-cert-tls server
verb 3
comp-lzo yes

# 嵌入证书内容
<ca>
$(cat /etc/openvpn/pki/ca.crt)
</ca>
<cert>
$(cat /etc/openvpn/pki/issued/client1.crt)
</cert>
<key>
$(cat /etc/openvpn/pki/private/client1.key)
</key>
EOF

目录下可以看到一个client1.ovpn文件,这个就是客户端用来连接的文件,导出到本地进行妥善保存。

OpenWRT配置

OpenVPN配置

选择一个模板新建一个配置,点击右边编辑进入配置

alt text

左上角切换到高级配置设置界面,切换到配置分类-VPN页面

在左下角的--更多选项--选择并添加一个push选项,用来配置推送内网网段的路由

alt text

再添加一个client-to-client选项,并且勾上,表示允许vpn客户端之间互相访问

alt text

最后切换到加密算法页面,按照上面生成的文件选择好

alt text

防火墙配置

防火墙-常规设置-区域 新添加一个区域 配置放行区域和转发

alt text

alt text

到这里配置基本完成,可以用客户端进行连接测试了