OpenVpn搭建

柳三千

文章最后更新时间:2025年06月11日

环境要求:
OpenVpn服务器需要一个公网IP,供给客户端访问!

软件下载地址:
easy-rsa-old-master.zip(win7)
easy-rsa-old-master.zip(win10)


一、制作OpenVpn证书(证书制作工具easy-rsa-old-master.zip)

1. 配置vars文件

[root@hk-web openvpn]# unzip easy-rsa-old-master.zip
[root@hk-web 2.0]# pwd
/root/openvpn/easy-rsa-old-master/easy-rsa/2.0

[root@hk-web 2.0]# vim vars

[root@hk-web 2.0]# source vars 
NOTE: If you run ./clean-all, I will be doing a rm -rf on /root/openvpn/easy-rsa-old-master/easy-rsa/2.0/keys
[root@hk-web 2.0]# ./clean-all  # 多出keys目录


2. 生成根证书和秘钥 ca.crt、ca.key

[root@hk-web 2.0]# ./build-ca

生成根证书、根秘钥


3. 制作服务器根证书、根秘钥 server.crt、server.key

[root@hk-web 2.0]# ./build-key-server server

[root@hk-web 2.0]# ll keys/
total 56
-rw-r--r-- 1 root root 8196 Sep 27 21:36 01.pem
-rw-r--r-- 1 root root 2415 Sep 27 21:33 ca.crt
-rw------- 1 root root 3272 Sep 27 21:33 ca.key
...(省略部分输出)...

4. 制作客户端证书和秘钥 client.crt client.key

[root@hk-web 2.0]# ./build-key client

[root@hk-web 2.0]# ll keys/
total 88
...(省略部分输出)...

5. 生成秘钥交换文件

[root@hk-web 2.0]# ./build-dh dh2048.pem
Generating DH parameters, 2048 bit long safe prime, generator 2
This is going to take a long time
...................................................................+................................+......+..........
[root@hk-web 2.0]# ll keys/
total 92
...(省略部分输出)...

二、配置openvpn服务端

1. 安装OpenVpn

[root@hk-web 2.0]# yum -y install openvpn

2. 配置OpenVpn

[root@hk-web 2.0]# cd /etc/openvpn/
[root@hk-web openvpn]# ll
total 8
drwxr-x--- 2 root openvpn 4096 Mar 18  2022 client
drwxr-x--- 2 root openvpn 4096 Mar 18  2022 server

[root@hk-web openvpn]# mkdir keys
[root@hk-web openvpn]# cp -a /root/openvpn/easy-rsa-old-master/easy-rsa/2.0/keys/{ca.crt,server.crt,server.key,dh2048.pem} /etc/openvpn/keys/
[root@hk-web keys]# ll /etc/openvpn/keys/
total 24
-rw-r--r-- 1 root root 2415 Sep 27 21:33 ca.crt
...(省略部分输出)...

[root@hk-web keys]# cp -a /usr/share/doc/openvpn-2.4.12/sample/sample-config-files/server.conf /etc/openvpn/

修改配置文件

ca keys/ca.crt
cert keys/server.crt
key keys/server.key  # This file should be kept secret
dh keys/dh2048.pem
tls-auth keys/ta.key 0  # 拒绝服务攻击的文件

# 修改网段
server 192.168.88.0 255.255.255.0
push "route 192.168.88.0 255.255.255.0"
push "route 192.168.0.0 255.255.255.0"  # 真实内网的网段地址
cipher AES-256-GCM  # 改为GCM

3. 启用路由转发功能

[root@hk-web openvpn]# echo "net.ipv4.ip_forward = 1" >> /etc/sysctl.conf
[root@hk-web openvpn]# sysctl -p

4. 建立ta.key文件(拒绝服务攻击证书文件)

[root@hk-web keys]# openvpn --genkey --secret ta.key
[root@hk-web keys]# ls
ca.crt  dh2048.pem  server.crt  server.key  ta.key

5. 启动openvpn

[root@hk-web openvpn]# openvpn --daemon --config server.conf
[root@hk-web openvpn]# netstat -pltun | grep 1194
udp        0      0 0.0.0.0:1194            0.0.0.0:*                           22994/openvpn

三、配置OpenVpn客户端

1. 客户端的配置文件

[root@hk-web ~]# cd /usr/share/doc/openvpn-2.4.12/sample/sample-config-files/
[root@hk-web sample-config-files]# cp -a client.conf /root/
[root@hk-web ~]# mkdir client
[root@hk-web ~]# mv client.conf client
[root@hk-web ~]# cd client/

# 修改配置
vim client.conf
cipher AES-256-GCM
remote 159.138.129.221 1194

2. 生成客户端的证书文件

[root@hk-web client]# cd /root/openvpn/easy-rsa-old-master/easy-rsa/2.0/keys/
[root@hk-web keys]# cp -a {client.key,client.crt,ca.crt} /root/client/
[root@hk-web keys]# cd /etc/openvpn/keys/
[root@hk-web keys]# cp -a ta.key /root/client/

[root@hk-web client]# mv client.conf client.ovpn  # Windows端生效
[root@hk-web client]# ll
total 24
-rw-r--r-- 1 root root 2415 Sep 27 21:33 ca.crt
...(省略部分输出)...

3. 打包客户端目录

[root@hk-web client]# cd ../
[root@hk-web ~]# zip client.zip client/
[root@hk-web ~]# ll
total 95356
...(省略部分输出)...

四、Windows 客户端测试

1. 解压导入客户端文件

将服务器生成的 client.zip 拷贝到 Windows 客户端并解压。

2. 安装 OpenVPN 客户端

  • Win10 安装:直接按默认步骤点击“下一步”完成安装。
  • Win7 安装:需关闭驱动程序签名验证(开机按 F8 选择“禁用驱动程序签名强制”)。

Win7 客户端安装步骤:

以管理员身份运行 OpenVPN 客户端:

可能出现的警报提示:

3. 修改配置文件路径

右键点击右下角 OpenVPN 图标,选择 选项→高级,修改证书和配置文件路径:

client.ovpnca.crtclient.crtclient.keyta.key 导入到 OpenVPN 的 config 目录下:

4. 连接测试

  • 重启系统,按 F8 禁用驱动程序签名强制。
  • 双击 OpenVPN 客户端图标,选择配置文件并连接:

    连接成功后图标变为绿色:

网络说明:

  • 192.168.0.0/24:VPN 服务器所在局域网。
  • 192.168.89.0/24:VPN 为客户端分配的 IP 网段。
  • 172.16.20.0/22:客户端本机所在局域网。
  • 通信逻辑:客户端通过 VPN 分配的 192.168.89.0 网段与服务器所在的 192.168.0.0 局域网通信。

连通性验证:

连接 VPN 时可访问服务器局域网:

关闭 VPN 后网络不通:


五、网络配置与转发

1、配置server.conf文件

push "dhcp-option DNS 8.8.8.8"
push "redirect-gateway def1 bypass-dhcp"

2、iptables配置

ip add
iptables -t nat -A POSTROUTING -s 客户端地址 -o eth0 -j SNAT --to-source eth0IP地址
iptables -t nat -A POSTROUTING -s 192.168.89.0/24 -o eth0 -j SNAT --to-source 192.168.0.174

3、配置路由转发功能

vim /etc/sysctl.conf
[root@hk-web ~]# sysctl -p
vm.swappiness = 0
net.core.somaxconn = 1024
net.ipv4.tcp_max_tw_buckets = 5000
net.ipv4.tcp_max_syn_backlog = 1024
net.ipv4.ip_forward = 1
文章版权声明:除非注明,否则均为柳三千运维录原创文章,转载或复制请以超链接形式并注明出处。

取消
微信二维码
微信二维码
支付宝二维码