购买的外国地区的VPS(也称为ESC)可以用来搭建VPN
我们首先在termius或者openssh终端连接VPS服务器
下载Xray
bash <(curl -Ls https://raw.githubusercontent.com/mhsanaei/3x-ui/master/install.sh)
然后一路回车确定
选择存储数据库
我们选择sqlite 也就是1
═══════════════════════════════════════════
Database Selection
═══════════════════════════════════════════
1) SQLite (default — recommended for < 500 clients)
2) PostgreSQL (recommended for high client counts / many nodes)
Choose [1]:
端口初始化
Would you like to customize the Panel Port settings? (If not, a random port will be applied) [y/n]:
输入y 同意面板端口初始化并回车
设置端口
要求设置面板的访问端口(比如输入 2053 或者 8080,范围在 1-65535 之间,不要用 80 或 443)
Please set up the panel port:
输入8080并回车
SSL证书生成
═══════════════════════════════════════════
SSL Certificate Setup (MANDATORY)
═══════════════════════════════════════════
For security, SSL certificate is required for all panels.
Let's Encrypt now supports both domains and IP addresses!
Choose SSL certificate setup method:
1. Let's Encrypt for Domain (90-day validity, auto-renews)
2. Let's Encrypt for IP Address (6-day validity, auto-renews)
3. Custom SSL Certificate (Path to existing files)
Note: Options 1 & 2 require port 80 open. Option 3 requires manual paths. Choose an option (default 2 for IP):
直接输入回车默认选项2
SSL证书是让我们访问这个面板可以通过https,如果没有的话就是http明文很不安全
所以最简单的方法是使用系统直接为IP地址生成的证书
有的时候会失败所以我们还需要自己重新生成
IPV6相关
Do you have an IPv6 address to include? (leave empty to skip):
直接输入回车键默认,主要是这玩意太麻烦了不如直接用IPV4
申请证书端口
Port to use for ACME HTTP-01 listener (default 80):
直接输入回车默认,这个是申请安全证书用80端口
然后就完成了
此时我们需要调整几个东西
我们输入x-ui打开xray ui面板
╔────────────────────────────────────────────────╗
│ 3X-UI Panel Management Script │
│ 0. Exit Script │
│────────────────────────────────────────────────│
│ 1. Install │
│ 2. Update │
│ 3. Update to Dev Channel (latest commit) │
│ 4. Update Menu │
│ 5. Legacy Version │
│ 6. Uninstall │
│────────────────────────────────────────────────│
│ 7. Reset Username & Password │
│ 8. Reset Web Base Path │
│ 9. Reset Settings │
│ 10. Change Port │
│ 11. View Current Settings │
│────────────────────────────────────────────────│
│ 12. Start │
│ 13. Stop │
│ 14. Restart │
| 15. Restart Xray │
│ 16. Check Status │
│ 17. Logs Management │
│────────────────────────────────────────────────│
│ 18. Enable Autostart │
│ 19. Disable Autostart │
│────────────────────────────────────────────────│
│ 20. SSL Certificate Management │
│ 21. Cloudflare SSL Certificate │
│ 22. IP Limit Management │
│ 23. Firewall Management │
│ 24. SSH Port Forwarding Management │
│ 25. PostgreSQL Management │
│────────────────────────────────────────────────│
│ 26. Enable BBR │
│ 27. Update Geo Files │
│ 28. Speedtest by Ookla │
╚────────────────────────────────────────────────╝
重置用户名和密码
这个是用于登录3x-ui面板时的用户名和密码
选择7. Reset Username & Password
然后输入自己的密码和用户名(要是忘了还可以重置)
重置Web base path
选择8. Reset Web Base Path
也就是我们生成的网址的后面的一堆字母和数字,重置后更安全一些
重置或生成SSL证书
选择20. SSL Certificate Management
Please enter your selection [0-28]: 20
1. Get SSL (Domain)
2. Revoke & Remove
3. Force Renew
4. Show Existing Domains
5. Set Cert paths for the panel
6. Get SSL for IP Address (6-day cert, auto-renews)
0. Back to Main Menu
选择选项6.Get SSL for IP Address (6-day cert, auto-renews)
完成后输入x-ui settings
就可以查看
[INF] current panel settings as follows:
Panel is secure with SSL
hasDefaultCredential: false
port: 8080
webBasePath: /XXXXX/
Database: SQLite (/etc/x-ui/x-ui.db)
Access URL: https://XXXXX:8080/XXXXXX/
防火墙设置
有的不需要开,比如阿里云和腾讯云会自带防火墙,我们开了反而可能把我们自己拦在外面
ufw allow 8080/tcp
ufw allow 80/tcp
ufw allow 443/tcp
ufw reload
创建节点
添加入站
首先在入站点击添加入站
选择reality加密
添加客户端
我们需要关联刚才的入站
邮箱不用管(因为我们是自用不是卖梯子...)
然后编辑客户端
基本界面关联入站
凭据选择流控模式
这里有两种流控模式
| 对比 | xtls-rprx-vision | xtls-rprx-vision-udp443 |
|---|---|---|
| Vision 流控优化 | 支持 | 支持 |
| UDP 443 / QUIC | 拦截,促使浏览器回退到普通HTTPS | 不拦截 |
| 一般网页浏览 | 推荐 | 通常没必要特意使用 |
| 必须使用QUIC的应用 | 可能受影响 | 更适合 |
选择xtls-rprx-vision
减少性能开销: 在符合条件的 Linux + TCP + TLS/REALITY 场景中,Xray 可以利用内核的
splice机制转发加密数据,减少内存复制和上下文切换可能提高吞吐量: 对高流量传输有帮助,但不保证降低 ping
影响 UDP 443: 标准 Vision 模式会拦截目标端口为 443 的 UDP 流量,促使浏览器回退到普通 HTTPS;部分强制使用 QUIC 的应用可能受到影响
二维码分享使用
或者点击那个复制键复制链接导入也行
协议转换
由于不同的客户端对不同的协议的支持不同,如我们Clash/Mihomo就不能直接用vless的链接和二维码
所以我们需要转换协议
在较旧的版本我们需要使用一些转换器例如sub-web-modify,但是现在这个已失效
不过新版本的3X-UI面板自带了转化器
我们需要在面板设置->订阅设置里找到Clash/Mihomo选项并启用
防火墙设置
我们需要在防火墙放行2096端口,否则其他人扫码无法使用
ufw allow 2096/tcp
ufw reload
对于腾讯和阿里云服务器我们需要手动添加 例如在阿里云服务器防火墙控制台里添加如下端口白名单
然后我们点击刚创建的客户端
然后找到clash相关,直接扫码用即可
对于节点比较卡的解决方案
不过说实话,卡不卡很大程度取决于服务器配置和服务器厂商....
启用BBR TCP拥塞算法
检查当前 TCP 配置
执行:
sysctl net.ipv4.tcp_congestion_control net.core.default_qdisc
初始输出:
net.ipv4.tcp_congestion_control = cubic
net.core.default_qdisc = fq_codel
说明当前使用的是 CUBIC 拥塞控制算法,默认队列调度器为 fq_codel
检查内核是否支持 BBR
执行
sysctl net.ipv4.tcp_available_congestion_control
如果输出中没有 bbr,尝试加载 BBR 模块
modprobe tcp_bbr
sysctl net.ipv4.tcp_available_congestion_control
本机加载成功后,输出为:
net.ipv4.tcp_available_congestion_control = reno cubic bbr
说明系统现在可以使用 BBR
如果提示找不到模块,需要进一步检查内核版本及对应模块是否已安装
配置开机自动加载 BBR
创建模块自动加载配置:
cat > /etc/modules-load.d/tcp_bbr.conf <<'EOF'
tcp_bbr
EOF
这样系统启动时会尝试自动加载 tcp_bbr 模块。
启用 BBR 并持久化配置
创建 sysctl 配置文件
cat > /etc/sysctl.d/99-bbr.conf <<'EOF'
net.core.default_qdisc=fq
net.ipv4.tcp_congestion_control=bbr
EOF
应用配置
sysctl --system
这里设置了
net.ipv4.tcp_congestion_control=bbr:将 TCP 拥塞控制算法切换为 BBRnet.core.default_qdisc=fq:将默认队列调度器设置为fq
配置保存在 /etc/sysctl.d/99-bbr.conf,正常情况下重启后仍会生成
验证是否启用成功
执行
sysctl net.ipv4.tcp_congestion_control net.core.default_qdisc
成功后的输出
net.ipv4.tcp_congestion_control = bbr
net.core.default_qdisc = fq
看到这两个结果,即表示当前配置已经生效
注意事项
modprobe tcp_bbr负责加载模块,/etc/modules-load.d/tcp_bbr.conf负责设置开机自动加载/etc/sysctl.d/99-bbr.conf用于保存并持久化内核参数- 启用 BBR 可能改善部分网络环境下的 TCP 吞吐量,但不保证降低基础延迟或解决跨境线路绕路和丢包等问题
启用2G swap缓存
sudo fallocate -l 2G /swapfile
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile
echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab
检测是否开启
swapon --show
可以看到
NAME TYPE SIZE USED PRIO
/swapfile file 2G 0B -2













