编辑
2025-12-27
网络
00

目录

低配 NAT VPS 上部署 Xray
一、整体设计思路(先看这个)
推荐技术组合
二、VPS 与网络前提
VPS 条件
端口映射示例
三、安装 Xray-core(官方方式)
四、方案 A:不使用域名(基础方案)
Xray 配置(无 TLS)
客户端使用(无 TLS)
五、方案 B:使用域名 + TLS(推荐长期方案)
DNS 要求(以 Cloudflare 为例)
使用 acme.sh + DNS 验证申请证书
Xray 配置(TLS)
客户端使用(TLS)
六、验证与排障(核心方法)
本地验证
底层验证(NAT / 监听)
七、经验总结

低配 NAT VPS 上部署 Xray

适用对象:

  • 低配 VPS(1 核 / 256MB / 10GB)
  • NAT / LXD / 端口映射型 VPS
  • 目标:安全、稳定、速度优先、可长期运行

本文不是一键脚本,而是在真实环境中完整跑通、可验证、可维护的方案。


一、整体设计思路(先看这个)

低配 + NAT VPS 上,正确思路不是“功能越多越好”,而是:

  • ❌ 不用 UDP(WireGuard / QUIC 在 NAT VPS 上不稳定)
  • ❌ 不用 Docker / 面板(内存吃紧,维护复杂)
  • ❌ 不搞多端口、多协议
  • ✅ 单进程、单入口、TCP 行为
  • ✅ 可选 TLS(有域名更好,没有也能用)

推荐技术组合

Xray-core + VLESS + TCP

  • 无域名:VLESS + TCP(基础可用)
  • 有域名:VLESS + TCP + TLS(最终形态)

这两种方案 共用同一套 Xray 配置结构,后期可以无缝升级。


二、VPS 与网络前提

VPS 条件

  • CPU:1 核
  • 内存:256MB
  • 磁盘:10GB
  • 系统:Debian 12
  • 网络:NAT + 端口映射(非独立公网 IP)

端口映射示例

公网端口容器端口用途
2720722SSH
21468443Xray

⚠️ 外部访问必须使用 公网端口,不是容器端口。


三、安装 Xray-core(官方方式)

bash
apt update && apt upgrade -y apt install -y curl unzip socat cron cd /usr/local/bin curl -L -o xray.zip https://github.com/XTLS/Xray-core/releases/latest/download/Xray-linux-64.zip unzip xray.zip chmod +x xray xray version

生成 UUID:

bash
xray uuid

四、方案 A:不使用域名(基础方案)

适合场景:

  • 没有域名
  • 想先跑通、确认稳定性
  • 内部或个人使用

Xray 配置(无 TLS)

/etc/xray/config.json

json
{ "log": { "loglevel": "warning" }, "inbounds": [ { "listen": "0.0.0.0", "port": 443, "protocol": "vless", "settings": { "clients": [ { "id": "YOUR_UUID" } ], "decryption": "none" }, "streamSettings": { "network": "tcp" } } ], "outbounds": [ { "protocol": "freedom" } ] }

创建 systemd 服务:

bash
cat > /etc/systemd/system/xray.service << 'EOF' [Unit] Description=Xray Service After=network.target [Service] Type=simple ExecStart=/usr/local/bin/xray run -config /etc/xray/config.json Restart=on-failure [Install] WantedBy=multi-user.target EOF systemctl daemon-reload systemctl enable xray systemctl restart xray

验证监听:

bash
ss -lntp | grep 443

客户端使用(无 TLS)

text
vless://YOUR_UUID@VPS_IP:21468?encryption=none&type=tcp#vps-notls

说明:

  • 使用 IP + 公网端口
  • 无 TLS,协议简单,稳定性高

五、方案 B:使用域名 + TLS(推荐长期方案)

适合场景:

  • 有可控域名(一级或自有二级域名)
  • 希望更安全、更像正常 HTTPS
  • 长期使用

DNS 要求(以 Cloudflare 为例)

text
vps.example.com -> VPS 公网 IP (仅 DNS,灰云)

使用 acme.sh + DNS 验证申请证书

bash
curl https://get.acme.sh | sh /root/.acme.sh/acme.sh --set-default-ca --server letsencrypt export CF_Token="YOUR_CF_TOKEN" /root/.acme.sh/acme.sh --issue --dns dns_cf -d vps.example.com mkdir -p /etc/xray/cert /root/.acme.sh/acme.sh --install-cert -d vps.example.com \ --key-file /etc/xray/cert/key.pem \ --fullchain-file /etc/xray/cert/cert.pem

Xray 配置(TLS)

json
{ "log": { "loglevel": "warning" }, "inbounds": [ { "listen": "0.0.0.0", "port": 443, "protocol": "vless", "settings": { "clients": [ { "id": "YOUR_UUID" } ], "decryption": "none" }, "streamSettings": { "network": "tcp", "security": "tls", "tlsSettings": { "certificates": [ { "certificateFile": "/etc/xray/cert/cert.pem", "keyFile": "/etc/xray/cert/key.pem" } ] } } } ], "outbounds": [ { "protocol": "freedom" } ] }

重启并验证:

bash
systemctl restart xray ss -lntp | grep 443

客户端使用(TLS)

text
vless://YOUR_UUID@vps.example.com:21468?encryption=none&security=tls&type=tcp#vps-tls

⚠️ TLS 模式 必须使用域名,不能用 IP


六、验证与排障(核心方法)

本地验证

bash
curl ifconfig.me

返回 VPS 公网 IP 即成功。

底层验证(NAT / 监听)

bash
apt install tcpdump tcpdump -ni eth0 tcp port 443

看到 SYN → SYN/ACK → ACK 表示链路完全正常。


七、经验总结

  • 一个低配 NAT VPS = 一个节点,是最优解
  • 多设备使用同一节点即可
  • 扩展方式推荐:多个 UUID,而不是多个端口
  • 无域名方案适合起步,有域名方案适合长期

少即是多,简单即是稳定。

v2ray 剪贴板导入:

image-20251227150609222

本文作者:Vivian

本文链接:

版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!