openVPN安装搭建步骤,实现内网穿透

本文详细介绍如何在Ubuntu服务端和RedHat、Debian客户端之间搭建OpenVPN服务,包括安装配置过程、生成证书密钥、设置CCD功能等内容。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

搭建步骤

安装OpenVPN服务端

测试环境介绍:
云服务器(Ubuntu20.04 64位)搭建服务端,公网IP:119.96.126.25
一台测试机搭建客户端(RedHat系),IP:10.10.111.24
另一台测试机搭建客户端(MOXA系统,Debian系),IP:10.10.112.63
最后目标是实现两台客户端之间能够互联

使用命令在三台主机上安装openVPN

RedHat系

yum install -y openvpn

Debian系

apt install openvpn

在这里插入图片描述

安装Easy RSA套件(用于生成服务端和客户端所需的证书和密钥)

下载Easy RSA源码包;

Easy RSA下载官网:https://github.com/OpenVPN/easy-rsa/releases
[root@localhost ~]wget https://github.com/OpenVPN/easy-rsa/releases/download/v3.1.2/EasyRSA-3.1.2.tgz

下载完后解压,在/etc/openvpn目录下创建目录easy-rsa,将刚才解压缩的所有文件复制到这个目录下

[root@localhost ~]#tar -zxvf EasyRSA-3.1.2.tgz
[root@localhost ~]#mkdir /etc/openvpn/easy-rsa
[root@localhost ~]#cp -r EasyRSA-3.1.2/* /etc/openvpn/easy-rsa
在这里插入图片描述

在服务端生成私钥和证书

- 进入Easy RSA的安装目录,并配置参数;
[root@localhost ~]# cd /etc/openvpn/easy-rsa/
[root@localhost easy-rsa]# cp vars.example vars
[root@localhost easy-rsa]# vim vars
在这里插入图片描述
- 清理原有证书和私钥并初始化;
[root@localhost easy-rsa]# ./easyrsa clean-all
在这里插入图片描述
- 生成CA根证书;
[root@localhost easy-rsa]# ./easyrsa build-ca
在这里插入图片描述
CA根证书生成位置:/etc/openvpn/easy-rsa/pki/ca.crt

- 为OpenVPN服务端生成server证书和私钥;
备注:这里使用nopass参数设置不需要密码,那么在启动OpenVPN服务的时候就不提示输入密码。
[root@localhost easy-rsa]# ./easyrsa build-server-full server nopass
在这里插入图片描述
服务端证书路径:/etc/openvpn/easy-rsa/pki/issued/server.crt
服务端私钥路径:/etc/openvpn/easy-rsa/pki/private/server.key

- 生成Diffie-Hellman算法需要的密钥文件;
[root@localhost easy-rsa]# ./easyrsa gen-dh
等待一段时间即可生成成功
在这里插入图片描述
- 生成tls-auth Key用于防止DDOS和TLS攻击;
[root@localhost easy-rsa]# openvpn --genkey --secret ta.key
在这里插入图片描述
ta.key路径:/etc/openvpn/easy-rsa/ta.key

OpenVPN服务端配置

- 修改OpenVPN服务端配置文件vim /etc/openvpn/server/server.conf;
在这里插入图片描述
在这里插入图片描述
- 拷贝私钥、公钥和证书等文件到server.conf同级目录下;
备注:需要拷贝的文件包括ca.crt、ca.key、server.crt、server.key、dh.pem、ta.key。
[root@localhost server]# cp /etc/openvpn/easy-rsa/pki/ca.crt .
[root@localhost server]# cp /etc/openvpn/easy-rsa/pki/private/ca.key .
[root@localhost server]# cp /etc/openvpn/easy-rsa/pki/issued/server.crt .
[root@localhost server]# cp /etc/openvpn/easy-rsa/pki/private/server.key .
[root@localhost server]# cp /etc/openvpn/easy-rsa/pki/dh.pem .
[root@localhost server]# cp /etc/openvpn/easy-rsa/ta.key .
在这里插入图片描述

启动服务端服务

[root@uos server]# openvpn --config server.conf

OpenVPN客户端配置

##在服务端生成客户端的证书和私钥,每多一个客户端就要多生成一份
[root@localhost easy-rsa]# ./easyrsa build-client-full client nopass
在这里插入图片描述
客户端证书路径:/etc/openvpn/easy-rsa/pki/issued/client.crt
客户端私钥路径:/etc/openvpn/easy-rsa/pki/private/client.key
将生成的客户端证书(client.crt)、私钥(client.key),服务端根证书(ca.crt)、ta.key打包发送到客户端的/etc/openvpn/client,可以用sz命令通过XSHEEL发送到Windows端,然后用rz命令从Windows端发送给客户端
在这里插入图片描述
- 修改OpenVPN客户端配置文件 vim /etc/openvpn/client/client.conf
在这里插入图片描述

启动客户端服务

[root@uos client]# openvpn --config client.conf
在这里插入图片描述
使用ifconfig查看虚拟网卡的IP地址
在这里插入图片描述
另外一台客户端执行同样的操作

在云服务器上配置安全组

之前启动客户端怎么也没法连上服务器,折腾半天最后发现是服务器上的端口没有放行,这条非常重要!!!
在这里插入图片描述

测试能否互连

一台服务端和两台客户端启动openVPN服务后,互相ping测试能否互连
在这里插入图片描述

在Windows配置openVPN客户端

跟之前一样先在服务端生成一份客户端的证书和密钥,然后将必要的这5份文件拷贝到如图所示的目录下。注意:在windows系统下client.conf的需要改成client.ovpn
在这里插入图片描述
打开openVPN客户端连接,可以看到当前状态连接成功
在这里插入图片描述

查看openVPN服务是否运行

ps -ef | grep openvpn

在这里插入图片描述

结束openvpn服务

kill -9 pid

在这里插入图片描述

在Linux环境下设置openVPN开机自启动脚本

1.打开终端并使用root权限登录到系统
2.创建一个systemd服务来在Linux系统启动时自动启动OpenVPN客户端

vim /etc/systemd/system/openvpn-client.service

3.将以下内容复制并粘贴到文件中:

[Unit]
Description=OpenVPN client service
After=network.target

[Service]
Type=simple
ExecStart=/usr/sbin/openvpn --cd /etc/openvpn/client --config /etc/openvpn/client/client.conf
Restart=always

[Install]
WantedBy=multi-user.target

在这里插入图片描述
4.保存关闭后,重新启动systemd服务

sudo systemctl daemon-reload
sudo systemctl enable openvpn-client.service

5.现在,当系统启动时,OpenVPN客户端将自动启动并连接到服务器。

### 配置OpenVPN客户端连接至服务器 #### 准备工作 确保已成功安装`epel-release`以及`openvpn`,这可以通过命令行工具yum来完成。对于基于Red Hat的Linux发行版如CentOS而言,执行以下指令可以实现软件包的安装: ```bash yum -y install epel-release yum -y install openvpn ``` 上述命令会自动处理依赖关系并下载必要的组件[^1]。 #### 获取配置文件 通常情况下,在安装过程结束后,系统将在`/etc/openvpn`路径下创建相应的子目录用于存储服务端(`server`)与客户端(`client`)的相关设置文档。为了使本地计算机作为客户机访问远程网络资源,则需获取由管理员分发的具体`.ovpn`格式的配置档案,并将其置于前述提到的`client`文件夹内。 #### 修改配置文件 打开所获得的配置文件进行编辑,确认其中包含了指向目标服务器的信息,比如公共IP地址或域名、监听端口等参数。此外还需注意认证方式的选择——无论是预共享密钥还是证书链验证均应按照实际环境的要求妥善设定。如果涉及到私钥或者用户名密码字段,请务必保证其安全性[^3]。 #### 启动连接尝试 当一切准备就绪之后,可通过如下所示的方法启动OpenVPN进程并与指定的服务节点建立加密隧道通信链接: ```bash sudo systemctl start openvpn@<your_config_name> ``` 这里的`<your_config_name>`应当替换为客户机器上真实存在的那个不含扩展名的基础名称部分。
评论 18
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

MC皮蛋侠客

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值