作为一名网络工程师,我经常被朋友和网友问:“有没有办法在家中或公司外安全访问内网资源?”、“为什么我在外地连不上家里的NAS?”、“我该怎么保护自己在公共Wi-Fi下的隐私?”答案是——自建一个私有VPN,今天我就以知乎用户最常关注的“如何搭建VPN”为切入点,结合实战经验,带你一步步在Ubuntu系统上搭建一套稳定、安全且易于管理的OpenVPN服务。
准备工作必不可少,你需要一台公网IP的服务器(可以是阿里云、腾讯云或Vultr等服务商提供的云主机),操作系统建议使用Ubuntu 20.04 LTS或22.04 LTS,因为它们长期支持,社区文档丰富,确保服务器防火墙开放UDP端口1194(OpenVPN默认端口),并在云服务商控制台配置安全组规则允许入站流量。
第一步:安装OpenVPN与Easy-RSA
登录服务器后执行以下命令:
sudo apt update && sudo apt install openvpn easy-rsa -y
Easy-RSA用于生成证书和密钥,这是OpenVPN认证的核心,接着初始化PKI环境:
make-cadir /etc/openvpn/easy-rsa cd /etc/openvpn/easy-rsa sudo cp vars.example vars
编辑vars文件,设置国家、组织名称、密钥长度等信息(如KEY_SIZE=2048),然后执行:
sudo ./easyrsa init-pki sudo ./easyrsa build-ca nopass sudo ./easyrsa gen-req server nopass sudo ./easyrsa sign-req server server sudo ./easyrsa gen-req client1 nopass sudo ./easyrsa sign-req client client1
这样就生成了服务器证书、客户端证书及CA根证书。
第二步:配置OpenVPN服务器
复制模板并修改配置文件:
sudo cp /usr/share/doc/openvpn/examples/sample-config-files/server.conf.gz /etc/openvpn/ sudo gzip -d /etc/openvpn/server.conf.gz sudo nano /etc/openvpn/server.conf
关键配置项包括:
port 1194(可改为其他端口避免扫描)proto udpdev tunca /etc/openvpn/easy-rsa/pki/ca.crtcert /etc/openvpn/easy-rsa/pki/issued/server.crtkey /etc/openvpn/easy-rsa/pki/private/server.keydh /etc/openvpn/easy-rsa/pki/dh.pem(需提前生成:./easyrsa gen-dh)
启用IP转发和iptables规则:
echo 'net.ipv4.ip_forward=1' | sudo tee -a /etc/sysctl.conf sudo sysctl -p 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 -j ACCEPT
第三步:启动服务并分发客户端配置
sudo systemctl enable openvpn@server sudo systemctl start openvpn@server
将ca.crt、client1.crt、client1.key打包成.ovpn文件,客户端只需导入即可连接,推荐使用OpenVPN Connect客户端(iOS/Android)或Linux原生客户端。
最后提醒:定期更新证书(有效期约1年)、禁用root登录、启用Fail2ban防暴力破解,并考虑使用WireGuard替代OpenVPN以获得更高性能,这套方案适合家庭用户、远程办公、小团队部署,既省钱又安全,完全符合知乎用户对“技术实操+隐私保护”的双重需求。
如果你正在寻找一种可靠、透明、可掌控的上网方式,不妨试试这个方法——让互联网真正为你服务,而不是反过来。

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






