!bin/bash

dfbn6 2026-05-05 VPN翻墙 1 0

Shell VPN实战教程:从零搭建安全远程访问通道

作为一名网络工程师,我经常被问到:“如何在没有图形界面的Linux服务器上快速搭建一个安全、稳定的远程访问通道?”答案就是——使用Shell脚本配合OpenVPN或WireGuard来构建一个轻量级、可定制的虚拟专用网络(VPN)服务,本文将手把手教你用Shell脚本自动化部署一个基于OpenVPN的本地VPN服务,适用于家庭办公、远程运维或跨地域内网穿透等场景。

确保你有一台运行Ubuntu 20.04/22.04或CentOS 7/8的Linux服务器,并拥有root权限,我们选择OpenVPN是因为它成熟稳定、社区支持丰富,且可通过Shell脚本实现一键安装和配置。

第一步:准备环境
登录服务器后,更新系统并安装必要工具:

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

如果是CentOS,则使用yumdnf替代apt

第二步:生成证书和密钥
OpenVPN依赖PKI(公钥基础设施),我们需要用Easy-RSA工具生成CA证书和客户端证书,执行以下命令:

make-cadir /etc/openvpn/easy-rsa
cd /etc/openvpn/easy-rsa
./easyrsa init-pki
./easyrsa build-ca nopass
./easyrsa gen-req server nopass
./easyrsa sign-req server server
./easyrsa gen-req client1 nopass
./easyrsa sign-req client client1

这一步会创建服务器端和客户端的证书与私钥文件,保存在pki/目录下。

第三步:编写Shell脚本自动配置
创建脚本 /usr/local/bin/setup-vpn.sh如下:

cp /etc/openvpn/easy-rsa/pki/issued/server.crt /etc/openvpn/
cp /etc/openvpn/easy-rsa/pki/private/server.key /etc/openvpn/
cp /etc/openvpn/easy-rsa/pki/issued/client1.crt /etc/openvpn/
cp /etc/openvpn/easy-rsa/pki/private/client1.key /etc/openvpn/
cat > /etc/openvpn/server.conf <<EOF
port 1194
proto udp
dev tun
ca ca.crt
cert server.crt
key server.key
dh 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 openvpn-status.log
verb 3
EOF
# 启动OpenVPN服务
systemctl enable openvpn@server
systemctl start openvpn@server
echo "VPN服务已启动,请用client1.ovpn配置文件连接!"

第四步:分发客户端配置文件
在服务器上生成客户端配置文件client1.ovpn包括:

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

你可以通过SCP或HTTP方式将此文件传给客户端设备(如Windows、Android、iOS)。

第五步:防火墙与NAT设置
若服务器有公网IP,需开放UDP 1194端口,并启用IP转发:

sysctl net.ipv4.ip_forward=1
iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE

建议永久生效:写入/etc/sysctl.conf/etc/ufw/before.rules(如使用UFW)。

至此,整个Shell自动化流程完成!你只需运行chmod +x setup-vpn.sh && ./setup-vpn.sh即可一键部署,相比传统手动配置,这种方法不仅节省时间,还能避免人为错误,特别适合批量部署多个VPN实例,记住定期更新证书、监控日志(journalctl -u openvpn@server)以保障安全性,这就是网络工程师的Shell魔法——让复杂变得简单,让运维更高效!

!bin/bash

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