搭建个人学习工作用的v2ray-VPN
准备工作
- 有可以访问国际网络节点的VPS服务器
- 有公网IP或域名地址
- VPS服务端安装v2ray服务,客户端安装对应的v2ray客户端
购买节点VPS(虚拟专用服务器)
推荐优惠网站:https://lowendbox.com/best-cheap-vps-hosting-updated-2020/ 不定期会有超低优惠价格的虚拟主机售卖。低到单核4G内存的主机只要每年10美元左右,平均每个月7元RMB左右。
根据自己的需要,选择无限流量还是有限的带宽流量。当然如果经济允许可以稍微购买些性能更好的主机。比如双核vCPU或4核vCPU的套餐。鄙人买的是单核每年10美元左右的套餐:https://vpshostingservice.co/ 。优惠套餐不是每次都一样,可以时刻关注有最新优惠促销活动。
一般都是买linux平台的vps主机,服务器基本都是linux平台的无界面主机,只需要终端控制台即可方便安装各种软件。
购买域名地址
域名平台选择
如果经济拮据,可以在国内的域名托管机构购买一个便宜的域名,如阿里云,腾讯等。国外机构一般偏贵些,且都是以美元结算,对于RMB和美元间的汇率波动,会使得每年的续费费用不尽相同。鄙人更倾向于国内托管机构购买域名。如果不放心国内监管的话,牺牲一下钱包,反而购买国外机构托管的域名地址更安全。
DNS域名解析服务
购买域名的目的是为了更安全些,不至于直接暴露Ip地址。暴露IP地址是一件比较不安全的事,很容易被追踪。为了隐匿安全考虑都会使用域名来指向主机IP地址。不管在什么平台购买的域名,推荐都使用cloudflare平台的DNS解析服务。此平台是比较著名的域名解析平台。不仅有CND服务,橙色云代理服务,还有免费套餐可以为个人需要量不高的情况下使用。相反国内阿里云需要额外花费些费用去购买域名解析的服务。
关于如何把域名挂入cloudflare代理DNS解析,可以参考此网站的后台管理的DNS解析说明。首先你需要注册一个cloudflare账号。进入控制面板网页https://dash.cloudflare.com/,然后在左侧DNS菜单里按说明设置。
配置SSH连接VPS
购买了个人虚拟专用服务器主机后,按照购买平台的说明进入到主机控制台。不同平台稍微不同,但最终应该都会有提供一个ipv4地址或附赠一个ipv6地址,也会有一个比较冗长的域名。如果你对域名的要求不高,可以直接使用平台提供域名去配置v2ray。
平台都会提供一种方式连接到主机。或网页方式,或远程方式。只要进入后,只要有公网ipv4,咋们就可以使用本地ssh协议的方式连接到VPS主机。首先本地需要生成sshkey的公钥私钥的秘钥对。可使用ssh-keygen命令生成。然后把生成的公钥内容上传到VPS主机的配置ssh的 ~/.ssh/authorized_keys文件里。此方式目的是为了不需要每次ssh连接都需要输入密码的烦扰。免去了输入VPS密码的过程。
部署 SSH 公钥到 VPS 的过程是为了实现“免密码登录”。以下是部署过程的完整步骤:
✅ 一、在本地生成 SSH 密钥对(如果还没有)
打开终端运行:
ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
提示时按回车使用默认路径(通常为 ~/.ssh/id_rsa),或者自定义路径。
完成后会生成:
- 私钥:
~/.ssh/id_rsa(千万不要泄露) - 公钥:
~/.ssh/id_rsa.pub
✅ 二、将公钥部署到 VPS
方法 1:使用 ssh-copy-id(推荐,自动完成部署)
ssh-copy-id -i ~/.ssh/id_rsa.pub youruser@vps_ip
youruser:远程 VPS 用户名(如 root)vps_ip:VPS 的公网 IP 或域名
该命令会提示你输入 VPS 的登录密码,部署成功后就能免密登录了。
方法 2:手动部署(如果 ssh-copy-id 不可用)
- 登录 VPS(输入密码):
ssh youruser@vps_ip
- 创建
.ssh目录(如果没有):
mkdir -p ~/.ssh
chmod 700 ~/.ssh
- 编辑或追加公钥:
可以用如下命令将公钥粘贴进去:
echo "你的本地 ~/.ssh/id_rsa.pub 的内容" >> ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys
✅ 三、测试登录
从本地再次尝试连接:
ssh youruser@vps_ip
如果不再需要密码,即为成功。
✅ 四、(可选)指定自定义密钥文件
如果你使用的是非默认路径生成的密钥,比如:
ssh -i ~/.ssh/my_custom_key youruser@vps_ip
在VPS主机上安装v2ray服务
通过ssh连接到主机后,就可以开始部署v2ray了。有全自动安装脚本,也有手动安装方式。如果追求方便快速的话,可以是自动安装脚本。想要自己手动部署追求详细细节的,可以选择自助手动安装方式。
一键安装脚本方式
bash <(curl -sL https://raw.githubusercontent.com/elliminium/v2ray-installer-english/main/install.sh)
#或
bash <(curl -Ls https://raw.githubusercontent.com/mack-a/v2ray-agent/master/install.sh)
#或
bash <(curl -s -L https://raw.githubusercontent.com/v2fly/fhs-install-v2ray/master/install-release.sh)
# 或 支持 V2Ray / Xray / TLS / WebSocket / Reality 等模式。
bash <(curl -Ls https://raw.githubusercontent.com/XTLS/Xray-install/main/install-release.sh)
按提示输入信息 脚本会引导你配置:
安装 Xray/V2Ray
使用的协议(推荐:VLESS + TLS + WS)
输入你的域名(必须已解析到 VPS)
自动申请 TLS 证书(ACME/Let’s Encrypt)
伪装网站(可用默认)
等待几分钟即可部署完成。
手动方式部署安装
第一步:安装 V2Ray 二进制
wget https://github.com/v2fly/v2ray-core/releases/latest/download/v2ray-linux-64.zip
unzip v2ray-linux-64.zip
sudo install -m 755 v2ray /usr/local/bin/v2ray
sudo install -m 755 v2ctl /usr/local/bin/v2ctl
#或者
curl -Ls https://raw.githubusercontent.com/v2fly/fhs-install-v2ray/master/install-release.sh | sudo bash
第二步:配置 config.json
创建配置目录:
sudo mkdir -p /usr/local/etc/v2ray
示例配置 /usr/local/etc/v2ray/config.json(基础 VMess 配置):
{
"inbounds": [{
"port": 10086,
"protocol": "vmess",
"settings": {
"clients": [{
"id": "你的UUID",
"alterId": 0
}]
}
}],
"outbounds": [{
"protocol": "freedom",
"settings": {}
}]
}
如果使用websocket(即ws)的方式:
{
"inbounds": [
{
"port": 3443,
"listen": "127.0.0.1",
"protocol": "vmess",
"settings": {
"clients": [
{
"id": "生成的uuid",
"alterId": 0
}
],
"decryption": "none"
},
"streamSettings": {
"network": "ws",
"wsSettings": {
"path": "/ray"
}
}
}
],
"outbounds": [
{
"protocol": "freedom"
}
]
}
生成 UUID:
uuidgen
第三步:创建 systemd 服务并启动
编辑服务配置文件
sudo nano /etc/systemd/system/v2ray.service
内容如下:
[Unit]
Description=V2Ray Service
After=network.target
[Service]
ExecStart=/usr/local/bin/v2ray -config /usr/local/etc/v2ray/config.json
Restart=on-failure
[Install]
WantedBy=multi-user.target
启动并设置开机启动:
sudo systemctl daemon-reexec
sudo systemctl enable v2ray
sudo systemctl start v2ray
✅ 第四步:配置防火墙(如果有)
sudo ufw allow 10086/tcp
# 或:
iptables -A INPUT -p tcp --dport 10086 -j ACCEPT
第五步:客户端配置(以 V2RayN 为例)
- 地址:你的服务器 IP
- 端口:10086
- UUID:前面生成的 UUID
- 加密方式:auto 或 none
- alterId:0
- 传输协议:tcp
- TLS:关闭(基础配置下)
示例:client-config.json :
{
"log": {
"loglevel": "warning"
},
"inbounds": [{
"port": 1080,
"listen": "127.0.0.1",
"protocol": "socks",
"settings": {
"auth": "noauth"
}
}],
"outbounds": [{
"protocol": "vmess",
"settings": {
"vnext": [{
"address": "你的IP地址或域名地址",
"port": 10086,
"users": [{
"id": "生成的uuid",
"alterId": 0,
"security": "auto"
}]
}]
}
}]
}
ws方式:
{
"inbounds": [
{
"port": 10808,
"listen": "127.0.0.1",
"protocol": "socks",
"settings": {
"udp": true
}
}
],
"outbounds": [
{
"protocol": "vmess",
"settings": {
"vnext": [
{
"address": "你的IP地址或域名地址",
"port": 443,
"users": [
{
"id": "生成的uuid",
"encryption": "none"
}
]
}
]
},
"streamSettings": {
"network": "ws",
"security": "tls",
"wsSettings": {
"path": "/ray"
}
}
}
]
}
使用命令运行客户端
v2ray -config client-config.json