VPN的作用

VPN(虚拟专用网络)可以提供安全加密的网络通道,保护我们的网络访问隐私和数据安全。商业VPN服务往往需要支付高昂的订阅费用。利用OpenVPN我们可以构建低成本免费的自建VPN。

搭建OpenVPN服务器的主要步骤

下面我们看看使用OpenVPN自建VPN的具体步骤:

  • 准备Linux云服务器
  • 安装配置OpenVPN服务和Easy-RSA
  • 生成证书、密钥、TLS验证文件
  • 配置服务端的openvpn配置文件
  • 设置Linux防火墙规则
  • 在客户端导入配置连接

OpenVPN简介

OpenVPN是一个开源的VPN实现,支持多种加密模式,可以避免数据被监控。它由社区维护,代码开放透明。

下面是详细的搭建教程。

步骤1:准备Linux服务器

你可以使用自己拥有的Linux服务器,或者使用像AWS、Google Cloud或DigitalOcean等云服务提供商的免费服务。

具体来说,可以注册AWS免费版EC2实例,选择Amazon Linux 2系统。在实例创建完成后,需要配置安全组规则允许VPN端口的访问。

然后使用提供的公网IP登录服务器:

1
ssh ec2-user@server_public_ip

将”username”替换为你登录服务器时使用的用户名,将”server_ip”替换为服务器的IP地址。如果你使用的是云服务商提供的服务器,可以在服务器仪表板中找到IP地址。

步骤2:安装OpenVPN和Easy-RSA

OpenVPN支持多种加密模式,可以避免流量被监控。输入以下命令安装:

1
2
sudo yum update -y
sudo yum install openvpn -y

Easy-RSA用来生成证书和密钥。输入以下命令安装:

1
2
sudo yum install -y easy-rsa
sudo cp -r /usr/share/easy-rsa/3.0.8 /etc/openvpn/

步骤3:生成密钥和证书

通过Easy-RSA可以生成所需的服务器端证书、密钥、TLS验证文件。

首先初始化PKI:

1
2
cd /etc/openvpn/easy-rsa/
sudo ./easyrsa init-pki

然后依次生成CA证书、服务器证书请求、签名服务器证书:

1
2
3
sudo ./easyrsa build-ca
sudo ./easyrsa gen-req server nopass
sudo ./easyrsa sign-req server server

设置密码和用户名,后续客户端连接时需要。

步骤4:配置服务器

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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
port 1194
proto tcp
dev tun
ca /etc/openvpn/easy-rsa/pki/ca.crt
cert /etc/openvpn/easy-rsa/pki/issued/server.crt
key /etc/openvpn/easy-rsa/pki/private/server.key
dh /etc/openvpn/easy-rsa/pki/dh.pem
server 10.8.0.0 255.255.255.0
ifconfig-pool-persist ipp.txt
keepalive 10 120
cipher AES-256-CBC
user nobody
group nobody
persist-key
persist-tun
status openvpn-status.log
verb 3
explicit-exit-notify 1

你可以使用Nano编辑器在Linux终端中创建文件:

1
2
cd /etc/openvpn/
sudo nano server.conf

在编辑器中输入上述配置文件的内容……

步骤5:启用IP转发

取消/etc/sysctl.conf文件中以下行的注释,以启用IP转发:

1
net.ipv4.ip_forward=1

激活更改:

1
sudo sysctl -p

步骤6:配置Linux防火墙

允许VPN端口1194的UDP流量:

1
2
sudo firewall-cmd --permanent --add-port=1194/udp
sudo firewall-cmd --reload

步骤7:客户端配置

生成客户端证书和密钥:

1
2
3
cd /usr/share/easy-rsa
sudo ./easyrsa gen-req client nopass
sudo ./easyrsa sign-req client client

在此过程中,你需要再次输入用户名,并将”user”作为占位符。然后,在提示时,输入”yes”并输入之前在第三步为服务器的证书和密钥设置的密码。

最后,在/etc/openvpn/目录中创建一个名为client.ovpn的客户端配置文件,并输入以下内容:

1
2
3
4
5
6
7
8
9
10
11
12
13
client
dev tun
proto udp
remote your_server_ip 1194
resolv-retry infinite
nobind
persist-key
persist-tun
key-direction 1
remote-cert-tls server
tls-auth ta.key 1
data-ciphers AES-256-GCM:AES-128-GCM
verb 3

将”your_server_ip”替换为你的服务器IP地址。将客户端证书和密钥复制到本地机器。

步骤8:启动服务

服务器上输入以下命令启动OpenVPN服务:

1
sudo systemctl start openvpn@server

客户端导入配置文件,通过命令连接VPN:

1
openvpn --config client.ovpn

非常棒!你现在已经成功地搭建了自己的免费VPN。

结语

本教程通俗易懂地介绍了如何使用开源软件OpenVPN自建免费VPN。逐步涵盖了准备服务器、安装软件、配置证书、编辑配置文件、设置防火墙等搭建步骤。可以作为入门OpenVPN和自建VPN的很好指南,让我们以低成本加强网络安全和隐私保护。通过自己构建免费的VPN,你可以保护个人隐私,浏览互联网时更加安全。请记住,尽管免费VPN可以提供基本的安全性,但它们可能不如付费VPN提供商提供的高级功能和支持。