手把手教你如何在服务器上创建VPN服务,从零开始搭建安全远程访问通道

作为一位网络工程师,我经常被问到:“如何在自己的服务器上搭建一个安全的虚拟私人网络(VPN)?”尤其是在远程办公、家庭网络扩展或企业内网接入场景中,一个稳定可靠的本地VPN服务变得越来越重要,本文将带你一步步在Linux服务器(以Ubuntu为例)上配置OpenVPN,实现加密、安全的远程访问功能。

第一步:准备工作
你需要一台运行Linux操作系统的服务器(例如阿里云ECS、腾讯云CVM或自建物理机),并确保它有公网IP地址,推荐使用Ubuntu 20.04或22.04 LTS版本,因为它们对OpenVPN支持良好且文档丰富,确保你拥有root权限或sudo权限,以便执行系统级配置。

第二步:安装OpenVPN和Easy-RSA
OpenVPN是一个开源的SSL/TLS协议实现,常用于构建点对点或客户端-服务器架构的VPN,我们先通过apt命令安装它:

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

安装完成后,需要生成证书和密钥,Easy-RSA是OpenVPN官方推荐的证书管理工具,你可以用以下命令初始化证书颁发机构(CA):

make-cadir /etc/openvpn/easy-rsa
cd /etc/openvpn/easy-rsa
sudo cp vars.example vars

然后编辑vars文件,根据你的需求修改如下参数:

  • KEY_COUNTRY="CN"(国家代码)
  • KEY_PROVINCE="Beijing"(省份)
  • KEY_CITY="Beijing"(城市)
  • KEY_ORG="MyCompany"(组织名称)
  • KEY_EMAIL="admin@example.com"(邮箱)

保存后,执行以下命令生成CA证书和密钥:

sudo ./clean-all
sudo ./build-ca
sudo ./build-key-server server
sudo ./build-key client1  # 为第一个客户端生成证书
sudo ./build-dh
sudo ./gen-sha1

这些步骤会生成一系列私钥、公钥和证书文件,用于后续的身份验证和加密通信。

第三步:配置OpenVPN服务端
复制默认配置模板并修改:

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

关键配置项包括:

  • port 1194(OpenVPN默认端口)
  • proto udp(推荐UDP协议,性能更好)
  • dev tun(使用TUN设备模式)
  • ca /etc/openvpn/easy-rsa/keys/ca.crt
  • cert /etc/openvpn/easy-rsa/keys/server.crt
  • key /etc/openvpn/easy-rsa/keys/server.key
  • dh /etc/openvpn/easy-rsa/keys/dh.pem
  • server 10.8.0.0 255.255.255.0(分配给客户端的IP段)
  • push "redirect-gateway def1 bypass-dhcp"(让客户端流量走VPN)
  • push "dhcp-option DNS 8.8.8.8"(指定DNS服务器)

第四步:启用IP转发和防火墙规则
为了让客户端能访问互联网,需要开启服务器的IP转发功能:

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

然后配置iptables规则:

sudo iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE
sudo iptables -A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT
sudo iptables -A FORWARD -s 10.8.0.0/24 -d 10.8.0.0/24 -j ACCEPT

第五步:启动服务并测试连接
启动OpenVPN服务:

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

把客户端证书(client1.crt、client1.key、ca.crt)打包成.ovpn配置文件,并导入到Windows、macOS或Android/iOS的OpenVPN客户端中即可连接。


通过以上步骤,你可以在任意Linux服务器上成功部署一个功能完整的OpenVPN服务,它不仅提供数据加密传输,还能实现远程访问内网资源、绕过地理限制等用途,定期更新证书、监控日志、设置强密码和启用双因素认证(如结合Google Authenticator)是保障安全的关键措施,作为网络工程师,掌握这项技能是你构建灵活、可扩展网络架构的重要一环。

手把手教你如何在服务器上创建VPN服务,从零开始搭建安全远程访问通道

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