从零开始手把手教你用VPS搭建个人VPN(小白也能懂)
卡尔云官网
www.kaeryun.com
作为网络安全从业者,我经常被问到如何安全上网的问题。今天就用最直白的方式,教你用VPS搭建专属VPN,让你既能保护隐私又不用担心第三方VPN的安全隐患。
一、为什么建议自建VPN而不是用现成的?
市面上免费VPN最大的问题是你不知道它是否在偷偷记录你的数据。去年某知名免费VPN就被曝出记录用户浏览记录并出售给广告商。而自建VPN:
1. 完全掌控数据流向(你的数据只经过自己的服务器)
2. 不受IP封禁限制(很多网站会封禁公共VPN的IP段)
3. 成本极低(最便宜的VPS月付不到3美元)
> 举例:如果你经常需要访问海外学术网站,使用公共VPN可能会遇到"该IP已被禁止访问"的提示,而自建VPN的IP是独享的。
二、准备工作:选购合适的VPS
2.1 VPS推荐配置
- 基础版:1核CPU/1GB内存/20GB SSD(适合1-2人使用)
- 进阶版:2核CPU/2GB内存/40GB SSD(适合3-5人共享)
推荐服务商:
- DigitalOcean(新用户送100美元试用金)
- Vultr(按小时计费,随时可删)
- 阿里云国际版(对中文用户友好)
> 注意避开"机场VPS"(指那些被大量用于翻墙的IP段),建议选择冷门数据中心如德国法兰克福、美国达拉斯等。
2.2 系统选择
新手建议选Ubuntu 20.04 LTS:
- 文档丰富
- 社区支持好
- 长期维护版本
三、实操教程:三种主流VPN搭建方案
方案1:WireGuard(推荐首选)
特点:
- 速度最快(比OpenVPN快30%以上)
- 现代加密协议(采用噪声协议框架)
- 手机/电脑都能用
安装步骤:
```bash
Ubuntu系统执行
sudo apt update && sudo apt upgrade -y
sudo apt install wireguard -y
生成密钥对
wg genkey | sudo tee /etc/wireguard/privatekey | wg pubkey | sudo tee /etc/wireguard/publickey
配置服务端(nano /etc/wireguard/wg0.conf)
[Interface]
PrivateKey = <你的私钥>
Address = 10.8.0.1/24
ListenPort = 51820
PostUp = iptables -A FORWARD -i wg0 -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
PostDown = iptables -D FORWARD -i wg0 -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE
启动服务
sudo systemctl enable --now wg-quick@wg0
```
客户端配置示例(手机):
PrivateKey = <客户端私钥>
Address = 10.8.0.2/24
DNS = 8.8.8.8
[Peer]
PublicKey = <服务端公钥>
Endpoint = <你的VPS_IP>:51820
AllowedIPs = 0.0.0.0/0
方案2:OpenVPN(兼容性最好)
虽然速度稍慢,但支持所有老旧设备。使用开源脚本快速安装:
wget https://git.io/vpn -O openvpn-install.sh && bash openvpn-install.sh
按提示操作即可,最后会生成`.ovpn`配置文件,下载到本地用客户端导入。
方案3:Shadowsocks+L2TP(双重代理)
适合高级用户,组合方案更隐蔽:
1. 先安装Shadowsocks服务端
2. 再在Shadowsocks上套一层L2TP VPN
这种方案的流量特征不明显,能有效绕过深度包检测(DPI)。
四、安全加固措施(必做!)
刚搭建好的VPN存在重大安全隐患,必须做这些设置:
4.1 防火墙规则优化
sudo ufw allow ssh
保留SSH端口
sudo ufw allow <你的VPN端口>
sudo ufw enable
4.2 SSH防护三件套
1. 禁用密码登录:
```bash
sudo nano /etc/ssh/sshd_config
修改以下参数:
PasswordAuthentication no
PermitRootLogin no
```
2. 更改SSH端口:
Port xxxxx
改为5位数随机端口
3. 安装fail2ban防爆破:
```bash
sudo apt install fail2ban
4.3 VPN限速管理
防止被他人盗用耗尽流量:
```bash
WireGuard限速示例(单位:mbps)
tc qdisc add dev wg0 root tbf rate lmbit burst lmb latency ms
五、常见问题排查指南
Q:连上VPN但无法上网?
A:检查三处:
1.VPS是否开启ipv4转发(`cat /proc/sys/net/ipv4/ip_forward`应为1)
2.NAT规则是否正确(`sudo iptables -t nat -L`查看)
3.DNS是否配置(建议用8.8.8.8或1.1.1.l)
Q:速度突然变慢?
A:尝试:
•更换VPS机房位置(测速工具:`wget cachefly.cachefly.net/l00mb.bin`)
•检查是否被限速(`vnstat -l`看实时流量)
•修改MTU值(一般设为1420)
Q:如何查看谁在连接?
WireGuard用户执行`wg show`即可看到所有活跃连接。
六、进阶技巧
•多用户管理:使用脚本批量生成配置文件(`for i in {l..5};do wg genkey | tee user$i.key; done`)
•流量监控:安装vnstat(`sudo apt install vnstat`)
•自动备份:每周定时导出配置(crontab添加`@weekly tar czf /backups/vpn_config.tar.gz/etc/wireguard`)
最后提醒:自建VPN虽好,但请遵守当地法律法规。本教程仅用于技术学习和合法用途。有任何问题欢迎评论区交流~
TAG:vps设置vpn,卡尔云官网
www.kaeryun.com