Developer技术博客 DevEngineer:林建有

搭建个人学习工作用的v2ray-VPN

2025-07-07

搭建个人学习工作用的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 不可用)

  1. 登录 VPS(输入密码):
ssh youruser@vps_ip
  1. 创建 .ssh 目录(如果没有)
mkdir -p ~/.ssh
chmod 700 ~/.ssh
  1. 编辑或追加公钥

可以用如下命令将公钥粘贴进去:

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

Comments

Content