在现代企业网络架构中,远程办公和跨地域协作已成为常态,为了确保员工能够安全、高效地访问内部资源(如文件服务器、数据库、ERP系统等),虚拟专用网络(VPN)是不可或缺的技术手段,尤其在Linux操作系统上,通过开源工具构建稳定可靠的VPN服务,既经济又灵活,本文将详细介绍如何在Linux环境中配置OpenVPN或WireGuard,实现安全访问内网地址。

明确需求:你希望通过公网访问部署在内网(如192.168.1.0/24)中的某台服务器(例如IP为192.168.1.100的文件共享服务),传统方式可能依赖端口映射或SSH隧道,但存在安全性差、管理复杂的问题,使用VPN则能提供加密通道、集中认证与路由控制,更适合企业级应用。

以OpenVPN为例,假设你有一台运行Ubuntu 20.04的服务器作为VPN网关,第一步是安装OpenVPN及相关工具:

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

接下来生成证书和密钥(使用Easy-RSA工具):

make-cadir /etc/openvpn/easy-rsa
cd /etc/openvpn/easy-rsa
sudo ./easyrsa init-pki
sudo ./easyrsa build-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

然后配置服务器端 /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 "route 192.168.1.0 255.255.255.0"  # 关键!让客户端访问内网
keepalive 10 120
comp-lzo
user nobody
group nogroup
persist-key
persist-tun
status /var/log/openvpn-status.log
verb 3

注意 push "route 192.168.1.0 255.255.255.0" 是核心配置,它告诉客户端将目标内网段通过VPN隧道转发,而非直接走本地网卡。

启动服务并启用IP转发:

sudo systemctl enable openvpn@server
sudo systemctl start openvpn@server
echo 'net.ipv4.ip_forward = 1' | sudo tee -a /etc/sysctl.conf
sudo sysctl -p

防火墙规则需放行UDP 1194端口,并设置NAT规则使客户端流量可回传内网:

sudo iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE
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

客户端配置方面,导出client1的证书和私钥,创建客户端配置文件(如client.ovpn):

client
dev tun
proto udp
remote your-vpn-server-ip 1194
resolv-retry infinite
nobind
persist-key
persist-tun
ca ca.crt
cert client1.crt
key client1.key
comp-lzo
verb 3

完成后,用OpenVPN客户端加载此配置即可连接,连接成功后,可通过 ping 192.168.1.100 验证是否能访问内网服务。

若追求更高性能与更低延迟,建议改用WireGuard,其配置更简洁,内核态运行效率高,适合移动设备或高并发场景,但OpenVPN因成熟稳定、兼容性好,仍是多数企业的首选。

Linux下的VPN配置虽有一定门槛,但一旦掌握,即可构建安全可控的远程访问体系,务必注意日志监控、定期更新证书、限制用户权限,才能保障长期稳定运行,对于IT运维人员而言,这是必备技能之一。

Linux环境下搭建VPN实现安全访问内网地址的完整指南  第1张

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