什么是VPS?
VPS是一种虚拟专用服务器,多人使用一台物理服务器,各自拥有独立的资源、操作系统和应用程序。VPS为用户提供了更多的控制权和灵活性,相比于共享主机具有更高的性能和稳定性。因此,在VPS上搭建VPN通常比在共享主机上更可靠和安全。
搭建VPN前需要做什么准备?
在开始VPS上的VPN搭建之前,您需要先确保您具备以下几项条件:
具有一台VPS,并且拥有管理权限
您需要为VPS购买一张IP地址
您需要安装Linux操作系统在VPS上。在本教程中我们将使用CentOS 7。
您需要具备Linux操作系统的基本知识和技能
如何在VPS上安装OpenVPN ?
在VPS上搭建VPN需要使用OpenVPN,这是一款功能强大而易于使用的开源VPN软件。安装OpenVPN的步骤如下:
使用ssh连接到您的VPS。您需要使用root用户名和密码。
在VPS终端中输入以下命令安装OpenVPN:
yum install epel-release -y yum install open easy-rsa -y
一旦安装完成,请验证是否运行正确。在终端输入以下命令来检查OpenVPN是否安装成功:
open --version
如果安装成功,您应该会看到OpenVPN的版本号。
配置OpenVPN
在安装OpenVPN之后,您需要配置文件,生成证书和秘密密钥,编辑服务器的配置文件。
生成证书和密钥
一旦您安装了OpenVPN,您需要为客户端和服务器生成证书和秘密密钥。这可以通过以下步骤完成:
随意创建一个目录,例如在/home下面创建一个open目录,然后使用cd命令进入这个目录:
mkdir /home/open cd /home/open
使用Easy-RSA工具包进行初始化。Easy-RSA是一个用于生成公钥/私钥对的工具,它也可以用于生成自签名证书。
cp -r /usr/share/easy-rsa/3.0.6 /home/open/easy-rsa cd /home/open/easy-rsa
./easyrsa init-pki
创建CA证书
./easyrsa build-ca
您将被提示输入CA的通用名称。出于安全原因,您不应该使用默认值。我们使用“openca”作为通用名称。
生成服务器证书和密钥
./easyrsa gen-req server nopass
输入common name时,您需要输入您的服务器IP地址。生成过程中,您将被要求输入密码,留空即可。这将生成一个名为"server.req"的文件。该文件包含证书请求。
使用CA签名证书请求
./easyrsa sign-req server server
在这个步骤中,您会被要求确认签署证书的请求,输入“yes”确认。
生成Diffie-Hellman文件
./easyrsa gen-dh
这个过程可能需要几分钟时间,取决于你的VPS性能。
生成TLS密钥
openssl genrsa -out ta.key 2048
配置OpenVPN的服务器端
现在,您已经生成了证书和密钥,接下来是OpenVPN服务器配置文件的设置。请按照以下步骤进行操作:
复制OpenVPN示例服务器配置文件
cp /usr/share/doc/open-*/sample/sample-config-files/server.conf /etc/open/server.conf
编辑server.conf并将以下行取消注释(删除“;”)。
tls-auth ta.key 0 server.key
server.crt
dhp.pem
添加以下行
port 1194 proto udp
dev tun
sndbuf 0
rcvbuf 0
user nobody
group nobody
persist-key
persist-tun
keepalive 10 120
cipher AES-256-GCM
auth SHA512
tls-version-min 1.2
max-clients 10
push "redirect-gateway def1 bypass-dhcp"
push "dhcp-option DNS 8.8.8.8"
push "dhcp-option DNS 8.8.4.4"
server 10.8.0.0 255.255.255.0
ifconfig-pool-persist ipp.txt
在server.conf中,您可以更改例如端口号、设备名称、加密算法等设置来配置OpenVPN服务器。
配置SELinux
如果您使用的操作系统是CentOS 7,建议您配置SELinux,以确保OpenVPN能够正常运行。在此示例中,我们将使用audit2allow来添加必要的许可。
cat /var/log/audit/audit.log | grep open | grep -i denied | audit2allow -M my semodule -i my.pp
这些设备节点当前不在SELinux策略中。您需要手动将它们添加到策略中,才能使OpenVPN正常运行。
cd /etc/open cat /var/log/audit/audit.log | grep open | grep -i denied | audit2allow -M my
semodule -i my.pp
或者,如果系统上已经安装了"policycoreutils-python",可以使用“audit2allow”命令:
sudo grep open /var/log/audit/audit.log | audit2allow -M open && sudo semodule -i open.pp
启动OpenVPN服务器
您已经完成了OpenVPN服务器的配置。您现在需要启动OpenVPN服务以便客户端连接。这可以使用systemctl命令完成。
systemctl start open systemctl enable open
如何连接OpenVPN?
用于连接到OpenVPN的客户端有很多种选择。这里我们使用OpenVPN客户端来演示如何连接OpenVPN。请按照以下步骤进行操作:
下载OpenVPN客户端
您可以在OpenVPN官网上下载,也可以使用命令行:
wget https://open.net/downloads/open-connect-v2.7.1.msi
获取客户端证书和密钥
,您需要从VPS复制两个文件到本地计算机,这些文件是在之前生成的,具体为“client.crt”和“client.key”。您可以使用scp命令从VPS复制它们。
scp root@your_server_ip:/home/open/easy-rsa/pki/private/client.key ~/ scp root@your_server_ip:/home/open/easy-rsa/pki/issued/client.crt ~/
导入证书和密钥到OpenVPN客户端
导入“client.key”和“client.crt”到OpenVPN客户端。在OpenVPN客户端中,依次单击“文件”>“导入文件”>“导入证书”并选择“client.crt”,然后导入“client.key”。
连接到OpenVPN服务器
双击OpenVPN客户端图标,它会提示您输入用户名和密码。在成功输入正确的用户名和密码后,您可以看到OpenVPN已经成功连接到VPS。
如何验证OpenVPN是否工作?
完成上述步骤后,您需要验证OpenVPN是否工作。以下是一些方法:
在服务器端使用ip addr命令列出服务器端点号:
ip addr | grep tun
该命令应该输出tun0的IP地址。
在客户端使用ipconfig(Windows)或ifconfig(Mac或Linux)命令检查改变的IP地址
使用ping命令测试:
ping 10.8.0.1
如果能够ping通,表示VPN服务工作正常。
使用WhatIsMyIp.org等工具查看IP地址,确保您的IP地址已更改,以反映您的VPN连接。
通过本文,您已经了解了如何在VPS上搭建OpenVPN。OpenVPN是一种强大的VPN软件,可以使您在安全的通信管道上传输数据。搭建过程中需要先进行准备工作并生成证书和密钥,随后需要配置OpenVPN服务器并连接客户端。当正确安装和配置时,OpenVPN是一种安全和可靠的VPN软件,适合于个人和企业用户。