在当今数字化办公和远程协作日益普及的背景下,如何安全、高效地实现远程访问内网资源成为许多企业和个人用户的核心需求,虚拟机(VM)作为灵活、可复用的计算环境,为搭建本地化VPN服务提供了理想的平台,本文将详细讲解如何在虚拟机中部署一个稳定、安全的OpenVPN服务,帮助你实现远程设备对私有网络的安全接入。

你需要准备一台运行虚拟化软件(如VMware Workstation、VirtualBox或Proxmox VE)的主机,并安装一个轻量级Linux发行版作为虚拟机操作系统,推荐使用Ubuntu Server 22.04 LTS,因其社区支持完善且配置文档丰富,确保虚拟机拥有静态IP地址(例如192.168.1.100),并能访问外网,用于下载所需软件包。

第一步是更新系统并安装OpenVPN及相关工具:

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

使用Easy-RSA工具生成证书和密钥,这是OpenVPN身份认证的核心机制,执行以下命令初始化PKI(公钥基础设施):

make-cadir /etc/openvpn/easy-rsa
cd /etc/openvpn/easy-rsa
sudo ./easyrsa init-pki
sudo ./easyrsa build-ca nopass  # 创建根证书颁发机构(CA)
sudo ./easyrsa gen-req server nopass  # 生成服务器证书请求
sudo ./easyrsa sign-req server server  # 签署服务器证书
sudo ./easyrsa gen-req client1 nopass  # 为客户端生成证书
sudo ./easyrsa sign-req client client1  # 签署客户端证书

第二步,配置OpenVPN服务端,创建 /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转发和防火墙规则,编辑 /etc/sysctl.conf,取消注释 net.ipv4.ip_forward=1,然后执行:

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

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

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

至此,你已成功在虚拟机中搭建了OpenVPN服务,客户端可通过导出的证书文件(client1.crt、client1.key、ca.crt)配置OpenVPN客户端软件(如OpenVPN Connect),连接到你的虚拟机IP地址(如192.168.1.100),即可安全访问内网资源。

此方案的优势在于:成本低、安全性高、易于扩展,你可以基于同一虚拟机部署多个不同子网的VPN实例,满足多部门隔离需求,通过日志监控和访问控制列表(ACL),还能实现精细化的权限管理,对于IT运维人员而言,这是一个值得掌握的实用技能。

手把手教你搭建虚拟机中的VPN服务,从零开始的网络隔离与远程访问解决方案  第1张

VPN加速器|半仙VPN加速器-免费VPN梯子首选半仙VPN