技术教程:如何自己搭建一个VPN

仅供技术学习与交流

VPN简单介绍

首先需要明确的是,VPN本是一种技术,英文是Virtual Private Network,顾名思义是虚拟化的私人网络.简单来说就是基于代理IP然后自己在上面加一些功能.像是自己的手机或者PC其实都有连接VPN的功能.此外也有一些连接VPN的客户端软件.

image-20230603150053505

VPN好处

  • 加密 IP 地址:VPN 的主要工作就是对 ISP 和其他第三方隐藏您的 IP 地址。这样当您在线发送和接收信息时,就不用担心会有被除了您和 VPN 提供商以外的任何人看到的风险。
  • 加密协议:VPN 还应该防止您留下痕迹,例如,互联网历史记录、搜索历史记录和 cookie。加密 cookie 尤其重要,因为能阻止第三方访问保密信息,如个人数据、财务信息和网站上的其他内容。
  • 自杀开关:如果您的 VPN 连接突然中断,您的安全连接也会中断。好的 VPN 能检测到这种突然停机并终止预先选择的程序,从而降低数据被泄露的可能性。
  • 双因素身份验证:通过使用各种身份验证方法,强大的 VPN 能够检查试图登录的每个人。例如:您可能会被提醒输入密码,然后会将代码发送到您的手机。这使得未经邀请的第三方难以访问您的安全连接。

本篇文章主要目的是动手自己搭建一个访问外网的VPN,为此需要一个搭建在大陆地区以外的的服务器,因此需要一个性价比高的国外云服务器商.

这里就主要使用Vultr云服务商,事实上国内的也行,不过为了安全考虑还是算了.此外Vultr是支持支付宝支付的,不需要再去办一张VISA银行卡了,这就很满足需求了.

主要方法是使用性价比高的服务商的服务器再搭建VPN服务端软件进行配置.

一些VPS服务商推荐2023年最值得购买的VPS推荐

实战

注册Vultr

可以点击我的邀请进行注册注册地址,此外也有优惠链接

其他可能已经失效的活动Vultr优惠码整理,包括充多少送多少(最多100美金),另外还有送美金余额的,总之还是不错的.

image-20230603160407745

充值

这里使用支付宝支付,此外可以使用一些兑换码获取一些福利,下面细说.

image-20230603160605588

购买服务器

image-20230603151410859

选择Regular Performance,

image-20230603155931403

最低只要一个月2.5刀,不过貌似这个只支持IPV6,所以只能再加一刀支持IPV4

image-20230603155808005

最后加上0.7刀备份,所以一个月就是4.2刀.还是比较便宜的。目前大致情况总结如下

CPU内存硬盘带宽IP价格
1 核512MB10GB0.5TBIPv6$2.5/月
1 核512MB10GB0.5TBIPv4$3.5/月
1 核1GB25GB1TBIPv4$5/月
1 核2GB55GB2TBIPv4$10/月
2 核4GB80GB3TBIPv4$20/月
4 核8GB160GB4TBIPv4$40/月
6 核16GB320GB5TBIPv4$80/月
8 核32GB640GB6TBIPv4$160/月
16 核64GB1280GB10TBIPv4$320/月
24 核96GB1600GB15TBIPv4$640/月

最后购买的服务器如下

image-20230603160314905

点击实例,进入后查看ip,用户名和密码,这样方便使用终端连接

image-20230603161001092

此外测试一下能不能连接,本地ping一下,ping不通可以删掉,删掉后不计费.

image-20230603161143254

安装服务端VPN

主要有shadowsocks和V2ray,终端可以使用Xshell或者PuTTY.

V2Ray

这里使用V2ray,如果你想使用其他的可以看看参考链接.利用的仓库是一键脚本搭建V2Ray最新中文教程

V2Ray的优势

  • 更完善的协议: V2Ray 使用了新的自行研发的 VMess 协议,改正了 Shadowsocks 一些已有的缺点,更难被墙检测到(不保证可靠性)
  • 更强大的性能: 网络性能更好,具体数据可以看 V2Ray 官方博客
  • 更丰富的功能:

使用命令

1
bash <(curl -s -L https://git.io/v2ray.sh)

如果出现INTERNAL ERROR 500,可以再试试.如果出现其他错误,自己再改改.

安装好后出现如下图

image-20230603164722550

命令V2ray进行进一步配置,修改协议,端口等

image-20230603164801527

使用v2ray ip查看自己的ip

1
2
firewall-cmd --zone=public --add-port=5200/tcp --permanent
firewall-cmd --reload

防火墙开启端口,这是很有必要的.

最后可以使用这个网站Check Port | Ping.Sx检测一下,如果是绿色的reachable就可以了.

image-20230603170821614

其他命令添加配置:

  • v2ray add -> 添加配置
  • v2ray add ss -> 添加一个 Shadowsocks 配置
  • v2ray add tcp -> 添加一个 VMess-TCP 配置
  • v2ray add kcpd -> 添加一个 VMess-mKCP-dynamic-port 动态端口配置

image-20230603170717004

优化v2ray

1
v2ray bbr

Shadowsocks

搭建Shadowsocks教程如下,基本方法差不多

VPS一键脚本搭建SSR教程

clown-coding/vpn: 快速搭建一个自己的VPN翻墙科学上网 (github.com)

快速搭建个人VPN

1
wget –no-check-certificate -O shadowsocks.sh https://raw.githubusercontent.com/teddysun/shadowsocks_install/master/shadowsocks.sh
1
2
chmod +x shadowsocks.sh
./shadowsocks.sh 2>&1 | tee shadowsocks.log

然后根据情况自己配置即可

image-20230603180917790

安装完成后就有相关信息.

还有另一个脚本

1
2
3
wget --no-check-certificate -O shadowsocks-all.sh https://raw.githubusercontent.com/teddysun/shadowsocks_install/master/shadowsocks-all.sh
chmod +x shadowsocks-all.sh
./shadowsocks-all.sh 2>&1 | tee shadowsocks-all.log

配置更多,但我使用这个有时下载不了后面发现由于我是用Centos 8.x版本的操作系统,EPEL软件包有点问题.参考这篇文章解决如何在 CentOS 8 和 RHEL 8 服务器上启用 EPEL 仓库 - 知乎 (zhihu.com) ,最后还是不行的话建议换OS,用Debian,Debian开启某个端口命令Debian 10 iptables防火墙常用命令 - 简书 (jianshu.com)

1
iptables -I INPUT -p tcp --dport 8080 -j ACCEPT

最后记得重启一下

可以使用边缘@订阅转换API (bianyuan.xyz)转换为clash订阅地址,因为我本身用clash客户端比较多

image-20230603173315958

客户端

客户端主要有V2ray,ShadowSocks以及现在的Clash,导入服务端对应的链接即可.

Shadowsocks Windows客户端快速使用指南 - 小小的宇宙 (howru.cc)

image-20230603172709508

这里不做过多介绍,可以看看参考资料.

参考资料

  1. 什么是 VPN,它是怎样运作的? (kaspersky.com.cn)
  2. yukaiji/buildVpn: 图文教程搭建一个vpn翻墙 (github.com)
  3. sucong426/freevpn: 新手搭建VPN科学上网教程/自由/v2ray/翻墙梯子/快速最新/免费机场 (github.com)
  4. sucong426/VPN: 快速搭建个人VPN/科学上网/翻墙/教程/ssr/ss/bbr/梯子搭建/自建机场/自由上网/代理服务/VPN/2023最新教程 (github.com)
  5. 2023年Vultr服务器是否还值得用 - 知乎 (zhihu.com)
  6. Home · xiaoming2028/FreePAC Wiki (github.com)
  7. Shadowsocks 一键安装脚本(四合一) | 秋水逸冰 (teddysun.com)
-------------本文结束感谢您的阅读-------------
感谢阅读.

欢迎关注我的其它发布渠道