CentOS下搭建OpenVPN详细步骤是怎样的?

在CentOS系统下搭建OpenVPN服务,可以为远程用户提供安全的网络接入服务,本文将详细介绍从环境准备到服务配置的完整流程,帮助读者快速完成OpenVPN服务器的搭建,整个过程需要具备基本的Linux操作知识,并确保以root权限或具备sudo权限的用户身份执行操作。

CentOS下搭建OpenVPN详细步骤是怎样的?

环境准备与系统更新

首先需要准备一台运行CentOS 7或更高版本的服务器,确保系统已更新至最新状态,执行以下命令更新系统软件包:

sudo yum update -y
sudo yum install epel-release -y

安装必要的开发工具和依赖包:

sudo yum install -y gcc make rpm-build openssl-devel lzo-devel pam-devel

安装防火墙管理工具并配置防火墙规则,允许VPN流量通过:

sudo firewall-cmd --permanent --add-service=openvpn
sudo firewall-cmd --permanent --add-port=1194/udp
sudo firewall-cmd --reload

安装OpenVPN与EasyRSA

OpenVPN的安装可以通过编译源码或使用预编译包完成,推荐使用官方源码安装以获得最新版本,首先下载OpenVPN源码:

wget https://swupdate.openvpn.net/community/releases/openvpn-2.5.7.tar.gz
tar xzf openvpn-2.5.7.tar.gz
cd openvpn-2.5.7
./configure --prefix=/usr/local --sysconfdir=/etc/openvpn
make && make install

安装EasyRSA用于管理证书:

wget https://github.com/OpenVPN/easy-rsa/releases/download/v3.0.8/EasyRSA-3.0.8.tgz
tar xzf EasyRSA-3.0.8.tgz
sudo mv EasyRSA-3.0.8 /etc/openvpn/easy-rsa

配置证书颁发机构

切换到证书目录并初始化PKI:

cd /etc/openvpn/easy-rsa
./easyrsa init-pki
./easyrsa build-ca nopass

创建服务器证书和私钥:

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

生成Diffie-Hellman参数:

./easyrsa gen-dh

生成HMAC密钥:

CentOS下搭建OpenVPN详细步骤是怎样的?

openvpn --genkey --secret pki/ta.key

将生成的证书文件复制到OpenVPN配置目录:

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

创建服务器配置文件

在/etc/openvpn目录下创建server.conf配置文件:

sudo nano /etc/openvpn/server.conf

添加以下基本配置:

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

保存文件后,启动OpenVPN服务并设置为开机自启:

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

配置客户端证书

为每个客户端生成单独的证书,首先创建客户端证书请求:

cd /etc/openvpn/easy-rsa
./easyrsa gen-req client1 nopass
./easyrsa sign-req client client1

将客户端证书复制到客户端配置目录:

sudo mkdir -p /etc/openvpn/clients/client1
sudo cp pki/issued/client1.crt pki/private/client1.key /etc/openvpn/clients/client1/

创建客户端配置文件

为客户端创建一个基础配置文件模板:

sudo nano /etc/openvpn/clients/client1/client.ovpn
client
dev tun
proto udp
remote your_server_ip 1194
resolv-retry infinite
nobind
persist-key
persist-tun
remote-cert-tls server
cipher AES-256-CBC
auth SHA256
tls-crypt ta.key
key-direction 1
comp-lzo no
verb 3
<ca>
-----BEGIN CERTIFICATE-----
[粘贴ca.crt内容]
-----END CERTIFICATE-----
</ca>
<cert>
-----BEGIN CERTIFICATE-----
[粘贴client1.crt内容]
-----END CERTIFICATE-----
</cert>
<key>
-----BEGIN PRIVATE KEY-----
[粘贴client1.key内容]
-----END PRIVATE KEY-----
</key>

将生成的client.ovpn文件安全地传输给客户端。

启用IP转发与NAT

编辑sysctl.conf文件启用IP转发:

CentOS下搭建OpenVPN详细步骤是怎样的?

sudo nano /etc/sysctl.conf

取消注释或添加以下行:

net.ipv4.ip_forward = 1

应用更改:

sudo sysctl -p

配置iptables规则实现NAT:

sudo iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE
sudo yum install -y iptables-services
sudo systemctl save iptables

相关问答FAQs

问题1:如何检查OpenVPN服务是否正常运行?
解答:可以使用以下命令检查服务状态:

sudo systemctl status openvpn@server

同时查看日志文件排查问题:

sudo tail -f /var/log/messages | grep openvpn

问题2:客户端连接后无法访问互联网怎么办?
解答:首先检查服务器端的iptables规则是否正确配置,确保NAT规则已生效,其次验证客户端配置文件中的DNS设置是否正确,可以尝试使用公共DNS服务器如8.8.8.8,最后检查服务器的防火墙是否放行了VPN流量。

【版权声明】:本站所有内容均来自网络,若无意侵犯到您的权利,请及时与我们联系将尽快删除相关内容!

赞 (0)
热舞的头像热舞
上一篇 2025-12-13 03:00
下一篇 2025-12-13 03:01

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

广告合作

QQ:14239236

在线咨询: QQ交谈

邮件:asy@cxas.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信