在现代网络环境中,远程访问、数据加密和安全通信已成为企业与个人用户的核心需求,对于资源有限但又需要安全连接的场景(如家庭办公、小型办公室或测试环境),使用Linux系统仅通过一个网卡搭建VPN服务器是一个经济高效且灵活的解决方案,本文将详细介绍如何在Linux(以Ubuntu 20.04为例)上基于OpenVPN协议完成单网卡VPN服务器的部署,涵盖安装、配置、防火墙设置及安全性优化。
第一步:准备环境
确保你有一台运行Linux的服务器(如云主机或本地物理机),并拥有root权限,建议使用静态IP地址,避免动态分配带来的连接中断问题,更新系统包列表:
sudo apt update && sudo apt upgrade -y
第二步:安装OpenVPN和Easy-RSA
OpenVPN是开源、跨平台的VPN解决方案,支持TLS加密和多种认证方式,安装所需软件包:
sudo apt install openvpn easy-rsa -y
Easy-RSA用于生成证书和密钥,是OpenVPN身份验证的基础。
第三步:配置证书颁发机构(CA)
初始化Easy-RSA环境:
make-cadir /etc/openvpn/easy-rsa cd /etc/openvpn/easy-rsa
编辑vars文件,修改默认参数(如国家、组织名称等),然后生成CA证书:
./clean-all ./build-ca
这会创建ca.crt和ca.key,作为所有客户端和服务器的信任根。
第四步:生成服务器证书和密钥
生成服务器密钥对:
./build-key-server server
按提示输入信息,确认是否自签名,同时生成DH参数(增强密钥交换安全性):
./build-dh
第五步:配置OpenVPN服务
复制模板配置文件到主目录:
sudo cp /usr/share/doc/openvpn/examples/sample-config-files/server.conf /etc/openvpn/
编辑/etc/openvpn/server.conf,关键配置如下:
dev tun:使用TUN模式(点对点虚拟接口)proto udp:推荐UDP协议,延迟更低port 1194:默认端口,可自定义ca ca.crt,cert server.crt,key server.key:指定证书路径dh dh.pem:指定DH参数文件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转发和NAT
由于单网卡服务器需共享公网IP,必须开启内核转发:
echo 'net.ipv4.ip_forward=1' | sudo tee -a /etc/sysctl.conf sudo sysctl -p
配置iptables规则实现NAT:
sudo iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE sudo iptables -A FORWARD -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT sudo iptables -A FORWARD -s 10.8.0.0/24 -d 10.8.0.0/24 -j ACCEPT
保存规则以持久化:
sudo iptables-save > /etc/iptables/rules.v4
第七步:启动服务与客户端配置
启动OpenVPN服务:
sudo systemctl enable openvpn@server sudo systemctl start openvpn@server
客户端可通过.ovpn文件连接,内容包含服务器IP、端口、证书和密钥,使用easyrsa为每个客户端生成唯一证书:
./build-key client1
生成后,将client1.crt、client1.key、ca.crt打包分发给客户端。
第八步:安全加固
- 修改默认端口(如从1194改为1195)防止扫描攻击
- 启用双因素认证(如Google Authenticator)
- 定期更新证书(CA有效期通常为10年,应提前更换)
- 使用fail2ban监控登录失败尝试
通过以上步骤,你可以在单网卡Linux服务器上成功搭建一个稳定、安全的OpenVPN服务,此方案适用于个人隐私保护、远程办公或跨地域网络互联,且成本极低——只需一台VPS即可实现企业级安全通信。

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






