利用VPS搭建VPN

关轶 Lv3

目录

在开始之前,必须先理解一件事,翻墙对于整个祖国建立起的防火墙来说,我认为是一种门槛,不管你使用的是免费的VPN,或者是付费的机场,更甚至是自己购买VPS搭建VPN,都是门槛,而不是漏洞,使用免费或者部分稍许便宜的VPN的就知道,节点通常会有很多,并且单个节点并不能一直使用,这就是被封了.当然,不管你是理解为漏洞还是门槛,你所使用的VPN都有概率被封禁.

在这其中呢,自行搭建VPN是封可能性最小的,所以接下来就让我们开始搭建VPN吧.

准备工作

购买并连接服务器

之前使用vultr的服务器搭建过一个,时长超过三个月也依旧没有被封端口,自我感觉还行.

先注册vultr,怎么注册我就不教了,这是邀请码

1
https://www.vultr.com/?ref=9614311

通过邀请码注册可以获得一百美元,前提是你得充十美元才可以用这一百美元.

然后点击左边的Dashboard,再点击Compute,最后点击Deploy Server

vultr
vultr


随后你就会进入下面这个界面

vultr
vultr


我们选择Cloud Compute - Shared CPU,然后在下面选择你的地区,我这里选择芝加哥,选择完成以后往下滑,需要选择系统,我们选择centos7 x64

vultr
vultr


然后我们需要选择套餐,这里最便宜的只要五美元一个月.

vlutr
vlutr


vlutr
vlutr


然后我们输入服务器名称,再点击Deploy Now,然后你就拥有属于你自己的服务器了,它会自动给你跳转到管理服务器的页面,由于是刚买服务器,需要等待一到两分钟让它安装系统,如果太久没安装好,就刷新一下界面.

vlutr
vlutr


然后我们点击进入服务器的管理界面,随后复制你的IP地址和root密码

vultr
vultr


随后我们需要使用SSH连接,可以用Xshell或者FinalShell,这里就直接拿FinalShell演示了.

先点击这个文件夹一样的按钮

vultr
vultr


然后创建SSH连接

vultr
vultr


然后会退出这样的一个界面,端口默认,用户名填root,IP填你服务器的IP,密码填服务器密码,其余的默认就可以了.

vultr
vultr


连接成功后是这样的

vultr
vultr


到这一步,准备工作就算结束了,接下来就是正式进入搭建教程了,你也可以选择购买域名来达到更好的抗封锁,当然也可以自行搭建网站等等

目录

购买域名并配置CloudFlare

购买域名这一步是可选的,并不是必选的
域名的购买可以选择namesilo 怎么注册我就不教了

然后选择一个最便宜的,我这里就选择.MOM了

namesilo
namesilo


然后搜索你想要的域名,我这里就搜索guanyi了

namesilo
namesilo


可以看到这个域名要十多块钱,点击add加入购物车,
namesilo
namesilo


然后点击checkout来结账

namesilo
namesilo


然后在结账界面再次点击checkout

namesilo
namesilo


然后再付款界面多左边点击Show More选择china,就有国内的支付方式了,点击支付宝的图标就会跳转到结转界面,付款之后域名就归你了.

namesilo
namesilo


随后我们点击上面的My Account

namesilo
namesilo


然后点击Active Domains下的Manage

namesilo
namesilo


然后点击从左往右数,最后一个图标

namesilo
namesilo


到这一步,我们先新建一个标签页去CloudFlare官网注册一个自己的账号,如果已经注册了就在主页点击网站,并点击右侧的添加站点

cloudflare
cloudflare

然后输入你的域名,计划选择免费DNS,然后跟着提示走就可以了,我这里没有多出来的域名了,所以无法演示了,等后续再补上吧.
大致就是给你一个DNS解析域什么的,然后添加到你的域名上面,就是刚刚我们最后没去CloudFlare的那个页面添加,然后需要等待几十分钟到几个小时不等,一般不超过24小时,你的DNS就会变成CloudFlare了

之后CloudFlare就可以直接管理你的域名了.

搭建Shadowsocks

Shadowsocks的历史我就不多说了,想要了解的自己Google

shadowsocksR脚本安装

输入下面的命令来安装wget,如果你安装了wget就跳过下面的命令

1
yum -y install wget

安装curl依赖包

1
yum install curl -y

秋水逸冰(teddysun)脚本

秋水逸冰Github

Shadowsocks 一键安装脚本

使用ssh连接至服务器后,输入下面的命令

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

然后这里我们选择ssr,输入2并回车

ssr
ssr


然后我们输入密码,然后输入端口,端口我这里就选择8388.

ssr
ssr


加密模式这里就选择14了.

ssr
ssr


然后数据传输协议就选3

ssr
ssr


混淆方式就选1

ssr
ssr


好了之后随便按一个键就会输出这样的内容

ssr
ssr


安装好以后就会输出类似这样的内容

ssr
ssr

那么到这里,你就安装成功了,此外你还可以开启kcptun或者bbr加速.至于客户端连接,只需要使用shadowsocks按照你所选的配置进行连接就可以了

如果你想卸载,可以输入下面的命令,或者你干脆把服务器重装.

1
./shadowsocks-all.sh uninstall

此外还有脚本的命令

1
2
3
4
5
6
7
8
9
10
11
12
13
启动脚本后面的参数含义,从左至右依次为:启动,停止,重启,查看状态。

Shadowsocks-Python 版:
/etc/init.d/shadowsocks-python start | stop | restart | status

ShadowsocksR 版:
/etc/init.d/shadowsocks-r start | stop | restart | status

Shadowsocks-Go 版:
/etc/init.d/shadowsocks-go start | stop | restart | status

Shadowsocks-libev 版:
/etc/init.d/shadowsocks-libev start | stop | restart | status

如果你想查看运行状态呢,就输入

1
/etc/init.d/shadowsocks-r status

逗比根据地脚本

逗比根据地Github
相比于秋水逸冰的脚本来说,逗比的脚本要简单许多.

1
wget -N --no-check-certificate https://raw.githubusercontent.com/ToyoDAdoubi/doubi/master/ssr.sh && chmod +x ssr.sh && bash ssr.sh

先输入1来进行安装ssr

ssr
ssr


先输入端口和密码,然后加密方式选16

ssr
ssr


选择混淆协议

ssr
ssr


然后一直默认就可以了

最后输入这样的内容就是安装成功了,客户端的配置就使用shadowsocks按照你的配置进行选择就可以连接了.

此外这个脚本还支持快速安装bbr加速,并且逗比还有许多其他的有关代理的脚本,可以看看

逗比的其他脚本

JeannieStudio脚本

shadowsocks-rust安装

目前官方最新版是rust版,截至博文更新,最新版本是在四天前

snap安装

没更新完
如果你还没有安装snap,就输入下面的命令,如果你安装了,就跳过.

1
2
3
4
5
sudo yum install epel-release
sudo yum install snapd
sudo systemctl enable --now snapd.socket
sudo ln -s /var/lib/snapd/snap /snap
sudo snap install snap-store

然后输入下面的命令来安装shadowsocks-rust

1
snap install shadowsocks-rust

使用下面的命令来查看你是否已经安装了

1
snap services shadowsocks-rust

使用下面的命令来启用并启动shadowsocks

1
snap start --enable shadowsocks-rust.sslocal-daemon

使用下面的命令来查看你是否已经成功启动了shadswsocks

1
systemctl status snap.shadowsocks-rust.sslocal-daemon.service

编辑/var/snap/shadowsocks-rust/common/etc/shadowsocks-rust/config.json,写入下面的配置

1
2
3
4
5
6
7
8
9
10
{
"server":"::", #可同时监听IP4和IPv6
"server_port":your port,
"timeout":300,
"method":"aes-128-gcm", #测试下128模式速度最好
"password":"your password",
"fast_open":false,
"nameserver":"8.8.8.8",
"mode":"tcp_only"
}

使用下面的命令来重启shadowsocks来应用你的配置

1
systemctl restart snap.shadowsocks-rust.sslocal-daemon.service

使用下面的命令来启动.

Docker安装

没更新完
首先我们需要安装Docker,输入下面这串命令

1
2
sudo yum install -y yum-utils
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

然后输入下面这串命令

1
sudo yum install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

中途需要确定,输入y并回车就可以继续了.

使用下面这个命令来检查你是否安装成功

1
docker version

弹出类似于这样的内容,就说明你已经安装成功了

docker
docker


接着使用下面这个命令来启动docker

1
sudo systemctl start docker

输入下面的命令来安装shadowsocks-rust

1
docker pull ghcr.io/shadowsocks/sslocal-rust:latest

使用下面这个命令列出本机所有的镜像

1
docker image ls

输入下面的命令运行并将配置文件挂载到容器当中,创建外部端口映射以供容器连接.
下面的1080是可以更改的,可以选择一个自己喜欢的端口.

1
2
3
4
5
docker run ghcr.io/shadowsocks/sslocal-rust \
--restart always \
-p 1080:1080/tcp \
-v /path/to/config.json:/etc/shadowsocks-rust/config.json \
-dit ghcr.io/shadowsocks/sslocal-rust:latest

{
“server”: “216.128.146.239”,
“server_port”: 8388,
“password”: “rwQc8qPXVsRpGx3uW+Y3Lj4Y42yF9Bs0xg1pmx8/+bo=”,
“method”: “aes-256-gcm”,
“local_address”: “216.128.146.239”,
“local_port”: 1080
}

搭建V2ray

wulabing脚本

wulabing的Github

脚本位置仓库

wulabing大佬还有别的脚本,Xray_onekey什么的,推荐看看

下面这个命令当中二选一

Vmess+websocket+TLS+Nginx+Website

1
wget -N --no-check-certificate -q -O install.sh "https://raw.githubusercontent.com/wulabing/V2Ray_ws-tls_bash_onekey/master/install.sh" && chmod +x install.sh && bash install.sh

VLESS+websocket+TLS+Nginx+Website

1
wget -N --no-check-certificate -q -O install.sh "https://raw.githubusercontent.com/wulabing/V2Ray_ws-tls_bash_onekey/dev/install.sh" && chmod +x install.sh && bash install.sh

优缺点呢,我也说不上来,所以我选的是VLESS

输入1进行安装

v2ray
v2ray

然后再等待这段时间里,我们先去CloudFlare里添加一个A记录,DNS代理先暂时关闭,名称随意,IP地址填写你的服务器地址

v2ray
v2ray


然后回到你的ssh,输入你刚才输入的名称加上你的主域名

v2ray
v2ray


端口默认443就可以了,回车之后需要等待一段时间,这个时间我们可以去刷会视频,看会后会无期什么的

v2ray
v2ray


然后就会输出你的配置,类似于这样

v2ray
v2ray


windows就去v2rayN,安卓就去v2rayNG,照着配置填写,就像这样

v2ray
v2ray

Jrohy的multi-v2ray脚本

Jrohy的Github

multi-v2ray

multi-v2ray脚本的好处就是可以多用户管理.

我们先在CloudFlare当中把DNS代理关掉.

v2ray
v2ray

接着输入下面的命令进行安装

如果你没有安装curl呢,请先去安装curl.

1
source <(curl -sL https://multi.netlify.app/v2ray.sh) --zh

安装完成以后直接就可以用,但是我们还有下一步,你想直接用也可以

输入下面的命令来启动TLS

1
v2ray tls

然后输入1开启TLS,选择Let’s Encrypt证书,然后输入你的域名,然后直接回车继续

v2ray
v2ray


然后我们输入下面的命令更改传输协议

1
v2ray stream

然后选择3,WebSocket,接着输入你的域名

v2ray
v2ray


然后输入下面的命令来走cdn

1
v2ray cdn

然后我们输入你的域名,端口选择443,选择vmess_ws,选择Let’s Encrypt证书,然后直接回车

v2ray
v2ray


最后,就可以输入下面命令查看配置

1
v2ray info

接着你可能会看见两个配置,这是因为安装的时候自动帮你配置好了一个,我们选择端口为443的配置进行连接

v2ray
v2ray


如果你配置感觉是正确的,但是无法翻墙,那么请ping一下你的域名,如果显示了延迟,那就是你的客户端的配置不对,如果不显示延迟,可以等等,或者说你服务端的配置不对

v2ray
v2ray


此外这个脚本还提供了docker安装的方法,可以自行去看

搭建Xray

搭建Brook

搭建Trojan

搭建Netch游戏加速器

不建议自己搭建游戏加速器,该买还得买,自己搭的话,想要流畅不卡顿,不丢包延迟,成本太高了,当然你也可以购买拥有游戏加速节点的机场

搭建L2TP/IPsec

L2TP/IPsec可以直接用在设备上,不需要另外的软件.

先输入下面的命令

不安装ikev2

1
2
3
4
5
6
7
# 所有变量值必须用 '单引号' 括起来
# *不要* 在值中使用这些字符: \ " '
wget https://git.io/vpnsetup-centos -O vpnsetup.sh && sudo \
VPN_IPSEC_PSK='你的IPsec预共享密钥' \
VPN_USER='你的VPN用户名' \
VPN_PASSWORD='你的VPN密码' \
sh vpnsetup.sh

安装ikev2

1
2
3
4
5
6
7
8
wget https://get.vpnsetup.net -O vpn.sh
VPN_IPSEC_PSK='GuanYiNineHeaven' \
VPN_USER='GuanYi' \
VPN_PASSWORD='abcd1234' \
VPN_DNS_NAME='ikev2.guanyi.lol' \
VPN_CLIENT_NAME='NineHeaven' \
VPN_DNS_SRV1=1.1.1.1 VPN_DNS_SRV2=1.0.0.1 \
sh vpn.sh

等待安装完成后,会输出这样的内容

l2tp
l2tp


然后我们需要找到证书文件,文件名一般为下图所示

.p12一般为windows和linux所用

.sswan一般为android所用

.mobileconfig一般为ios和macos所用

l2tp
l2tp


然后我们需要导出文件,可以直接用finalshell直接下载到本地

l2tp
l2tp


PS:到这一步的时候我的服务器过期了,所以需要等待我重新买一个.

1
2
3
4
5
wget https://git.io/vpnsetup-centos -O vpnsetup.sh && sudo \
VPN_IPSEC_PSK='GuanYiNineHeaven' \
VPN_USER='GuanYi' \
VPN_PASSWORD='abcd1234' \
sh vpnsetup.sh

随后,ikev2的连接方式请使用下面的命令:

1
2
3
4
5
6
7
8
powershell -command ^"Add-VpnConnection -ServerAddress 'ikev2.guanyi.lol' ^
-Name 'NineHeaven.ikev2' -TunnelType IKEv2 -AuthenticationMethod MachineCertificate ^
-EncryptionLevel Required -PassThru^"

powershell -command ^"Set-VpnConnectionIPsecConfiguration -ConnectionName 'NineHeaven.ikev2' ^
-AuthenticationTransformConstants GCMAES128 -CipherTransformConstants GCMAES128 ^
-EncryptionMethod AES256 -IntegrityCheckMethod SHA256 -PfsGroup None ^
-DHGroup Group14 -PassThru -Force^"
  • 标题: 利用VPS搭建VPN
  • 作者: 关轶
  • 创建于 : 2024-05-16 20:18:20
  • 更新于 : 2024-10-04 12:57:12
  • 链接: https://blog.guanyi.lol/学习/网络/VPN/利用VPS搭建VPN/
  • 版权声明: 本文章采用 CC BY-NC-SA 4.0 进行许可。
评论