作为一名网络工程师,我经常被问到:“如何在Linux服务器上通过命令行快速搭建一个安全可靠的VPN服务?”答案是——使用OpenVPN或WireGuard,它们都是开源、高效且广泛支持的工具,尤其适合技术爱好者和运维人员进行私有网络部署,本文将详细介绍如何使用命令行搭建一个基于OpenVPN的站点到站点(Site-to-Site)或远程访问(Remote Access)型VPN服务,适用于企业内网扩展、远程办公或个人隐私保护场景。
确保你拥有一个运行Linux(如Ubuntu 20.04/22.04或CentOS Stream)的服务器,并具备root权限,以Ubuntu为例,我们先安装OpenVPN及相关依赖:
sudo apt update sudo apt install openvpn easy-rsa -y
配置证书颁发机构(CA),这是所有加密通信的基础,执行以下命令生成PKI密钥:
make-cadir /etc/openvpn/easy-rsa cd /etc/openvpn/easy-rsa sudo ./easyrsa init-pki sudo ./easyrsa build-ca nopass
为服务器生成证书和密钥:
sudo ./easyrsa gen-req server nopass sudo ./easyrsa sign-req server server
然后生成Diffie-Hellman参数(用于密钥交换):
sudo ./easyrsa gen-dh
现在创建服务器配置文件 /etc/openvpn/server.conf如下:
port 1194
proto udp
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
push "redirect-gateway def1 bypass-dhcp"
push "dhcp-option DNS 8.8.8.8"
keepalive 10 120
comp-lzo
user nobody
group nogroup
persist-key
persist-tun
status /var/log/openvpn-status.log
verb 3
配置完成后,启用IP转发并设置防火墙规则(若使用ufw):
echo 'net.ipv4.ip_forward=1' >> /etc/sysctl.conf sysctl -p sudo ufw allow 1194/udp sudo ufw allow OpenSSH
启动OpenVPN服务:
sudo systemctl enable openvpn@server sudo systemctl start openvpn@server
服务器端已就绪,客户端可通过.ovpn配置文件连接,该文件需包含CA证书、客户端证书和密钥,以及服务器地址等信息,可使用easyrsa为客户端生成证书:
sudo ./easyrsa gen-req client1 nopass sudo ./easyrsa sign-req client client1
将证书文件打包分发给客户端设备,并在客户端安装OpenVPN客户端软件(如OpenVPN Connect或Tunnelblick),导入配置即可实现加密隧道连接。
通过上述步骤,你不仅成功搭建了一个命令行驱动的VPN服务,还掌握了从证书管理到网络策略配置的完整流程,这正是网络工程师的核心能力之一:用简洁高效的命令实现复杂网络功能,无论是保障数据传输安全,还是构建分布式办公环境,掌握此类技能都将让你游刃有余。

半仙加速器-海外加速器|VPN加速器|vpn翻墙加速器|VPN梯子|VPN外网加速






