作为一名网络工程师,我经常被客户问到:“我们公司需要远程访问内部资源,但又担心数据传输不安全,有没有既高效又可靠的解决方案?”答案往往是:部署一个私有、加密的虚拟专用网络(VPN)服务,本文将带你一步步在Linux服务器上搭建基于OpenVPN的私有VPN服务,适用于中小型企业或个人开发者。

明确你的需求:你需要一台可公网访问的Linux服务器(如Ubuntu 20.04或CentOS Stream),并拥有静态IP地址和域名(可选),假设你使用的是Ubuntu系统,可以通过SSH登录服务器进行操作。

第一步是安装OpenVPN及相关工具,运行以下命令更新系统并安装必要软件包:

sudo apt update && sudo apt upgrade -y
sudo apt install openvpn easy-rsa -y

配置证书颁发机构(CA),Easy-RSA工具会帮助你生成密钥对和证书,执行以下步骤:

  1. 复制Easy-RSA模板到默认目录:

    make-cadir /etc/openvpn/easy-rsa
    cd /etc/openvpn/easy-rsa
  2. 编辑vars文件,设置国家、组织名称等基本信息(根据实际填写):

    nano vars

    修改如KEY_COUNTRY="CN"KEY_PROVINCE="Beijing"KEY_ORG="MyCompany"等字段。

  3. 初始化PKI(公钥基础设施)并生成CA证书:

    ./clean-all
    ./build-ca
  4. 创建服务器证书和密钥:

    ./build-key-server server
  5. 为客户端生成证书(每台设备都需要一个唯一证书):

    ./build-key client1
  6. 生成Diffie-Hellman参数(用于密钥交换):

    ./build-dh

配置OpenVPN主服务端文件,复制示例配置文件到/etc/openvpn目录,并编辑它:

sudo cp /usr/share/doc/openvpn/examples/sample-config-files/server.conf /etc/openvpn/
sudo nano /etc/openvpn/server.conf

关键配置项包括:

  • port 1194(默认UDP端口)
  • 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(分配给客户端的IP段)
  • push "redirect-gateway def1 bypass-dhcp"
  • push "dhcp-option DNS 8.8.8.8"

保存后,启用IP转发(允许流量通过服务器):

echo 'net.ipv4.ip_forward=1' | sudo tee -a /etc/sysctl.conf
sudo sysctl -p

然后配置防火墙规则(以UFW为例):

sudo ufw allow 1194/udp
sudo ufw enable

启动OpenVPN服务并设置开机自启:

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

至此,服务器已成功运行,客户端只需将生成的证书文件(client1.crt、client1.key、ca.crt)打包发送给用户,再用OpenVPN客户端导入即可连接。

需要注意:建议定期更新证书、监控日志、使用强密码策略,并考虑结合Fail2Ban防止暴力破解,如果你希望更易管理,可引入Web界面如OpenVPN Access Server或使用Tailscale等现代工具。

通过这种方式搭建的VPN不仅安全可靠,还具备良好的扩展性,是企业远程办公和数据保护的理想选择。

如何在Linux服务器上搭建安全可靠的VPN服务—从零开始配置OpenVPN  第1张

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