如何快速搭建Linux VPN服务器
1. 选择合适的Linux发行版
在开始配置之前,首先需要选择一个适合用作VPN服务器的Linux发行版。常见的选择包括Ubuntu、Debian、CentOS等。这些发行版都有强大的社区支持和广泛的文档。
2. 更新系统和安装所需软件
2.1 更新系统
在开始安装所需软件之前,首先应该确保系统已经是最新的状态。使用以下命令更新系统:
sudo apt update
sudo apt upgrade -y
这里的apt update命令用于更新软件包列表,apt upgrade命令用于升级已安装的软件。
2.2 安装所需软件
安装VPN服务器所需的软件包括OpenVPN、Easy-RSA和OpenVPN Client Export。使用以下命令进行安装:
sudo apt install openvpn easy-rsa openvpn-client-export -y
这里的sudo apt install命令用于安装软件包,-y参数表示自动确认安装。
3. 配置OpenVPN服务器
3.1 创建OpenVPN配置文件
创建一个名为/etc/openvpn/server.conf的文件,并将以下内容复制到文件中:
sudo nano /etc/openvpn/server.conf
# 配置OpenVPN服务器
dev tun
proto udp
port 1194
# 配置服务器所使用的协议和端口号
server 10.8.0.0 255.255.255.0
# 配置VPN服务器的IP地址和子网掩码
ifconfig-pool-persist ipp.txt
push "redirect-gateway def1 bypass-dhcp"
# 配置VPN客户端的默认网关
push "dhcp-option DNS 8.8.8.8"
# 配置VPN客户端的DNS服务器
keepalive 10 120
# 配置保持活动连接的心跳周期和超时时间
cipher AES-256-CBC
# 配置加密算法
user nobody
group nogroup
persist-key
persist-tun
status openvpn-status.log
verb 3
# 配置日志级别
这里的nano命令用于编辑文件,/etc/openvpn/server.conf是OpenVPN的主配置文件,其中包含了各种服务器和网络设置。
3.2 生成证书和密钥
在生成证书和密钥之前,需要配置Easy-RSA的环境变量。首先进入Easy-RSA的目录:
cd /usr/share/easy-rsa
然后运行以下命令初始化Easy-RSA:
sudo ./easyrsa init-pki
生成CA证书:
sudo ./easyrsa build-ca
生成服务器证书和密钥:
sudo ./easyrsa gen-req server nopass
签署服务器证书:
sudo ./easyrsa sign-req server server
生成Diffie-Hellman密钥:
sudo ./easyrsa gen-dh
将生成的证书和密钥复制到OpenVPN的目录:
sudo cp pki/issued/server.crt /etc/openvpn/
sudo cp pki/private/server.key /etc/openvpn/
sudo cp pki/dh.pem /etc/openvpn/
为VPN客户端生成证书和密钥,请按照相同的步骤进行操作。
3.3 启动OpenVPN服务器
运行以下命令启动OpenVPN服务器:
sudo systemctl start openvpn@server
确保OpenVPN服务器在系统启动时自动启动:
sudo systemctl enable openvpn@server
4. 配置VPN客户端
4.1 导出客户端配置文件
使用以下命令导出客户端配置文件:
sudo /usr/lib/openvpn/openvpn-client-export/make_config.sh
在/root目录下会生成一个名为client.ovpn的文件,将此文件复制到客户端设备上。
4.2 安装VPN客户端
在客户端设备上安装可用于连接OpenVPN服务器的VPN客户端软件。根据设备的操作系统选择合适的软件,例如对于Windows设备可以使用OpenVPN GUI,对于Android设备可以使用OpenVPN Connect。
4.3 导入客户端配置文件
在VPN客户端软件中导入之前导出的client.ovpn文件,然后根据软件的指导完成连接的配置。
总结
通过按照以上步骤进行配置,您可以快速搭建一个Linux VPN服务器,并在客户端设备上进行连接。这样您就可以安全地访问局域网内的资源,或者通过公共网络访问受限制的内容。