<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
    <channel>
        <title>Reality on 小布分享站</title>
        <link>https://smallstep.one/tags/reality/</link>
        <description>Recent content in Reality on 小布分享站</description>
        <generator>Hugo -- gohugo.io</generator>
        <language>zh</language>
        <lastBuildDate>Wed, 30 Sep 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://smallstep.one/tags/reality/index.xml" rel="self" type="application/rss+xml" /><item>
            <title>2026.9 最新版 3X-UI 安装教程：Oracle ARM 实例 &#43; Reality 节点，避开 5 个大坑</title>
            <link>https://smallstep.one/oracle-3x-ui-reality/</link>
            <pubDate>Wed, 30 Sep 2026 00:00:00 +0000</pubDate>
            <guid>https://smallstep.one/oracle-3x-ui-reality/</guid>
            <description>&lt;img src=&#34;https://smallstep.one/&#34; alt=&#34;Featured image of post 2026.9 最新版 3X-UI 安装教程：Oracle ARM 实例 + Reality 节点，避开 5 个大坑&#34; /&gt;&lt;div class=&#34;video-wrapper&#34;&gt;&#xA;    &lt;iframe loading=&#34;lazy&#34; &#xA;            src=&#34;https://www.youtube.com/embed/i3nYnbZvmYw&#34; &#xA;            allowfullscreen &#xA;            title=&#34;YouTube Video&#34;&#xA;    &gt;&#xA;    &lt;/iframe&gt;&#xA;&lt;/div&gt;&#xA;&#xA;&lt;p&gt;安全列表里 80 端口开了，域名也解析好了，一点申请证书——失败。再试一次，还是失败。&lt;/p&gt;&#xA;&lt;p&gt;如果你用的是 Oracle，问题多半不在你操作错了，而是 &lt;strong&gt;Oracle 有两道锁，大部分教程只告诉你开一道&lt;/strong&gt;。更麻烦的是，3X-UI 经过几轮大更新，面板布局、入站和客户端的设置方式都变了，老教程基本对不上号。&lt;/p&gt;&#xA;&lt;p&gt;这篇从头装一遍最新版 3X-UI，在甲骨文实例上建好一个 VLESS + Reality 节点，导进 v2rayN 和 Shadowrocket 能用。路上我踩过的 5 个坑都会标出来，其中一个能把你直接锁在自己服务器外面。本来想在 ARM 实例上演示的，但第二台 ARM 实例没开出来，整个安装过程就移到了 Micro 实例上了，操作步骤是一样的。这里提醒一下刚刚拿下甲骨文账户的小伙伴，抓紧在免费试用期内申请 ARM 实例，成功几率会高很多。&lt;/p&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;🕳️ &lt;strong&gt;本篇 5 个坑速览&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Cloudflare 小黄云没关 → Reality 连不上&lt;/li&gt;&#xA;&lt;li&gt;只开了安全列表、没开 iptables → 证书申请失败&lt;/li&gt;&#xA;&lt;li&gt;iptables 规则加在 REJECT 后面 → 加了等于没加&lt;/li&gt;&#xA;&lt;li&gt;用 3X-UI 自带的防火墙菜单（ufw）→ 被锁在服务器外面&lt;/li&gt;&#xA;&lt;li&gt;建完客户端不重启 Xray → 订阅是空的&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;开工前准备好这三样&#34;&gt;开工前准备好这三样&#xA;&lt;/h2&gt;&lt;ol&gt;&#xA;&lt;li&gt;&lt;strong&gt;一台 Oracle 实例&lt;/strong&gt;：本文演示改用 Micro 实例、Ubuntu 系统。ARM 实例申请过程看系列前几篇：&lt;a class=&#34;link&#34; href=&#34;https://smallstep.one/oracle-arm-instance-guide/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;创建第一个 ARM Ampere A1 实例&lt;/a&gt;、&lt;a class=&#34;link&#34; href=&#34;https://smallstep.one/oracle-instance-first-boot/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;新实例开机第一件事&lt;/a&gt;。抢不到 ARM 的话，可以先开一天普通的 Micro 机器，也可以先用 &lt;a class=&#34;link&#34; href=&#34;https://www.vultr.com/?ref=9905832&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;Vultr&lt;/a&gt; 的按小时计费实例过渡，流程基本一样（防火墙那部分更简单）。&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;一个 Cloudflare 账户&lt;/strong&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;一个已经托管到 Cloudflare 的域名&lt;/strong&gt;。还没托管的看这几篇：&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://smallstep.one/spaceship-domain-on-cloudflare/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;Cloudflare 上托管 Spaceship 域名的方法&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://smallstep.one/turkey-google-workspace-cheap-domain/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;每年不到 11 元的 .com 域名（Google Workspace）&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://smallstep.one/managed-domain-mail-forwarding/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;Cloudflare 上托管 Namesilo 域名并设置邮件转发&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;p&gt;整个过程要开放的端口，先列在这里心里有个数：&lt;/p&gt;&#xA;&lt;table&gt;&#xA;  &lt;thead&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;th&gt;端口&lt;/th&gt;&#xA;          &lt;th&gt;干什么用&lt;/th&gt;&#xA;          &lt;th&gt;不开会怎样&lt;/th&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/thead&gt;&#xA;  &lt;tbody&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;22&lt;/td&gt;&#xA;          &lt;td&gt;SSH 登录&lt;/td&gt;&#xA;          &lt;td&gt;默认已开&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;80&lt;/td&gt;&#xA;          &lt;td&gt;申请域名证书&lt;/td&gt;&#xA;          &lt;td&gt;证书申请失败&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;443&lt;/td&gt;&#xA;          &lt;td&gt;Reality 入站&lt;/td&gt;&#xA;          &lt;td&gt;节点连不上&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;2096&lt;/td&gt;&#xA;          &lt;td&gt;订阅链接&lt;/td&gt;&#xA;          &lt;td&gt;订阅无法更新，SUB 页面打不开&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;面板端口&lt;/td&gt;&#xA;          &lt;td&gt;登录 3X-UI 面板&lt;/td&gt;&#xA;          &lt;td&gt;面板打不开（安装完才知道是多少）&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/tbody&gt;&#xA;&lt;/table&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;⚠️ &lt;strong&gt;特别注意顺序&lt;/strong&gt;：80 端口必须在&lt;strong&gt;运行安装脚本之前&lt;/strong&gt;就两道锁都开好。因为新版 3X-UI 把证书申请&lt;strong&gt;做进了安装流程里&lt;/strong&gt;，装到一半就会问你要不要申请证书——那时候再去开端口就来不及了。&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;第一步先把域名指到你的服务器&#34;&gt;第一步：先把域名指到你的服务器&#xA;&lt;/h2&gt;&lt;p&gt;后面申请证书要用到域名（主域名或二级域名都行），所以先把解析做好，免得到时候手忙脚乱。&lt;/p&gt;&#xA;&lt;h3 id=&#34;在-cloudflare-里加一条-a-记录&#34;&gt;在 Cloudflare 里加一条 A 记录&#xA;&lt;/h3&gt;&lt;p&gt;进 Cloudflare 后台 → 点你的域名 → 左侧 &lt;strong&gt;DNS&lt;/strong&gt; → &lt;strong&gt;记录&lt;/strong&gt; → &lt;strong&gt;添加记录&lt;/strong&gt;：&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;类型：&lt;strong&gt;A&lt;/strong&gt;&lt;/li&gt;&#xA;&lt;li&gt;名称：&lt;code&gt;3xui&lt;/code&gt;（访问地址就是 &lt;code&gt;3xui.你的域名.com&lt;/code&gt;，直接用主域名也行）&lt;/li&gt;&#xA;&lt;li&gt;IPv4 地址：你 Oracle 实例的&lt;strong&gt;公网 IP&lt;/strong&gt;&lt;/li&gt;&#xA;&lt;li&gt;代理状态：&lt;strong&gt;⚠️ 关掉，点成灰色云朵（仅 DNS）&lt;/strong&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;保存。&lt;/p&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;🕳️ &lt;strong&gt;坑 1：小黄云一定要关&lt;/strong&gt;&#xA;橙色云朵开着，流量会先绕到 Cloudflare 再转给你的服务器。证书申请会验证到 Cloudflare 的 IP 上，后面的 Reality 节点也会连不上。口诀：&lt;strong&gt;灰云直连，橙云绕路&lt;/strong&gt;，我们这套全程要直连。&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&lt;h3 id=&#34;确认解析对不对&#34;&gt;确认解析对不对&#xA;&lt;/h3&gt;&lt;p&gt;等一两分钟，SSH 登录服务器，跑下面&lt;strong&gt;两条&lt;/strong&gt;命令，缺一条说明不了问题：&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;&#xA;&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;&#xA;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2&#xA;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&#xA;&lt;td class=&#34;lntd&#34;&gt;&#xA;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;dig +short 3xui.你的域名.com    &lt;span class=&#34;c1&#34;&gt;# 域名解析到了哪个 IP&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;curl -s ifconfig.me              &lt;span class=&#34;c1&#34;&gt;# 这台机器的公网 IP 是多少&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&#xA;&lt;/div&gt;&#xA;&lt;/div&gt;&lt;p&gt;&lt;code&gt;ifconfig.me&lt;/code&gt; 卡住没反应就换一个：&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;&#xA;&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;&#xA;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1&#xA;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&#xA;&lt;td class=&#34;lntd&#34;&gt;&#xA;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;curl -s https://api.ipify.org&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&#xA;&lt;/div&gt;&#xA;&lt;/div&gt;&lt;p&gt;&lt;strong&gt;两个输出完全一样，解析就成功了。&lt;/strong&gt; 如果 &lt;code&gt;dig&lt;/code&gt; 返回的是一个陌生 IP（常见的是 104.x 或 172.x 开头），那就是小黄云还开着，回去关掉。不一致就别急着往下走，改好、等生效了再继续，这样证书能一次过。&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;第二步打开端口oracle-的两道锁&#34;&gt;第二步：打开端口——Oracle 的两道锁&#xA;&lt;/h2&gt;&lt;p&gt;先说清楚为什么 Oracle 比别家麻烦。谷歌云、亚马逊这些，开端口只需要在控制台操作一次。而甲骨文有&lt;strong&gt;两道锁&lt;/strong&gt;：&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;strong&gt;网页控制台里的安全列表&lt;/strong&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;实例系统里自带的 iptables 规则&lt;/strong&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;p&gt;关键是它们是&lt;strong&gt;串联&lt;/strong&gt;的：数据包先过安全列表，再过 iptables，两关都过了才能到你的程序。只开一道，等于没开。&lt;/p&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;🕳️ &lt;strong&gt;坑 2：只开了安全列表&lt;/strong&gt;&#xA;这就是开头那个&amp;quot;80 端口明明开了，证书还是失败&amp;quot;的原因——你开的是第一道锁，第二道还锁着。&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&lt;h3 id=&#34;第一道锁安全列表&#34;&gt;第一道锁：安全列表&#xA;&lt;/h3&gt;&lt;p&gt;最快的路径：控制台顶部搜索框输入 &lt;strong&gt;VCN&lt;/strong&gt; → 点进你的 VCN → &lt;strong&gt;安全列表&lt;/strong&gt; → 点默认安全列表 → &lt;strong&gt;安全规则&lt;/strong&gt; → &lt;strong&gt;入站规则&lt;/strong&gt; → &lt;strong&gt;添加入站规则&lt;/strong&gt;。&lt;/p&gt;&#xA;&lt;p&gt;（也可以走：左上角三条杠 → 实例 → 点你的实例 → 网络 → 子网 → 安全 → 安全列表）。&lt;/p&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;&lt;strong&gt;这里注意，免费账户可以创建多个 VCN，如果你创建过其他的 VCN，要看清不要选错&lt;/strong&gt;。&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&lt;p&gt;每条规则这样填：&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;源 CIDR：&lt;code&gt;0.0.0.0/0&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;IP 协议：TCP&lt;/li&gt;&#xA;&lt;li&gt;目的地端口范围：&lt;code&gt;80&lt;/code&gt;（443、2096 同样各加一条，或者写成 &lt;code&gt;80,443,2096&lt;/code&gt;）&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h3 id=&#34;第二道锁iptables&#34;&gt;第二道锁：iptables&#xA;&lt;/h3&gt;&lt;p&gt;先看看现在有哪些规则：&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;&#xA;&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;&#xA;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1&#xA;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&#xA;&lt;td class=&#34;lntd&#34;&gt;&#xA;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sudo iptables -L INPUT -n --line-numbers&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&#xA;&lt;/div&gt;&#xA;&lt;/div&gt;&lt;p&gt;你会在靠后的位置看到一条 &lt;code&gt;REJECT&lt;/code&gt;，它负责把前面没匹配上的包全部挡掉。&lt;/p&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;🕳️ &lt;strong&gt;坑 3：规则要加在 REJECT 前面&lt;/strong&gt;&#xA;iptables 从上往下匹配，撞上 REJECT 就不往下看了。规则加在它后面，等于没加。&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&lt;p&gt;最省心的办法是用 &lt;code&gt;-I&lt;/code&gt;，它会把规则&lt;strong&gt;插到第一行&lt;/strong&gt;，自然在 REJECT 前面：&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;&#xA;&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;&#xA;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4&#xA;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&#xA;&lt;td class=&#34;lntd&#34;&gt;&#xA;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sudo iptables -I INPUT -p tcp --dport &lt;span class=&#34;m&#34;&gt;80&lt;/span&gt; -j ACCEPT&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sudo iptables -I INPUT -p tcp --dport &lt;span class=&#34;m&#34;&gt;443&lt;/span&gt; -j ACCEPT&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sudo iptables -I INPUT -p tcp --dport &lt;span class=&#34;m&#34;&gt;2096&lt;/span&gt; -j ACCEPT&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sudo netfilter-persistent save&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&#xA;&lt;/div&gt;&#xA;&lt;/div&gt;&lt;p&gt;最后一行是把规则存下来，不然重启就没了。&lt;/p&gt;&#xA;&lt;p&gt;再跑一次查看命令，确认这几条出现在 REJECT 上面：&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;&#xA;&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;&#xA;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1&#xA;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&#xA;&lt;td class=&#34;lntd&#34;&gt;&#xA;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sudo iptables -L INPUT -n -v --line-numbers&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&#xA;&lt;/div&gt;&#xA;&lt;/div&gt;&lt;details&gt;&#xA;&lt;summary&gt;另一种方法：直接改规则文件（进阶，可跳过）&lt;/summary&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;&#xA;&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;&#xA;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1&#xA;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&#xA;&lt;td class=&#34;lntd&#34;&gt;&#xA;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sudo nano /etc/iptables/rules.v4&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&#xA;&lt;/div&gt;&#xA;&lt;/div&gt;&lt;p&gt;找到 SSH 那行：&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;&#xA;&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;&#xA;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1&#xA;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&#xA;&lt;td class=&#34;lntd&#34;&gt;&#xA;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-fallback&#34; data-lang=&#34;fallback&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;-A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&#xA;&lt;/div&gt;&#xA;&lt;/div&gt;&lt;p&gt;在它下面照葫芦画瓢加上要开的端口，&lt;strong&gt;一定要在 &lt;code&gt;-A INPUT -j REJECT ...&lt;/code&gt; 那行上面&lt;/strong&gt;：&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;&#xA;&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;&#xA;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2&#xA;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&#xA;&lt;td class=&#34;lntd&#34;&gt;&#xA;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-fallback&#34; data-lang=&#34;fallback&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;-A INPUT -p tcp -m state --state NEW -m tcp --dport 80 -j ACCEPT&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;-A INPUT -p tcp -m state --state NEW -m tcp --dport 443 -j ACCEPT&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&#xA;&lt;/div&gt;&#xA;&lt;/div&gt;&lt;p&gt;&lt;code&gt;Ctrl+O&lt;/code&gt; 回车保存，&lt;code&gt;Ctrl+X&lt;/code&gt; 退出，然后让规则生效：&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;&#xA;&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;&#xA;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1&#xA;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&#xA;&lt;td class=&#34;lntd&#34;&gt;&#xA;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sudo iptables-restore &amp;lt; /etc/iptables/rules.v4&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&#xA;&lt;/div&gt;&#xA;&lt;/div&gt;&lt;/details&gt;&#xA;&lt;h3 id=&#34;开错了怎么删&#34;&gt;开错了怎么删&#xA;&lt;/h3&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;&#xA;&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;&#xA;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4&#xA;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&#xA;&lt;td class=&#34;lntd&#34;&gt;&#xA;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sudo iptables -L INPUT -n -v --line-numbers          &lt;span class=&#34;c1&#34;&gt;# 查看所有规则和行号&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sudo iptables -L INPUT -n -v --line-numbers &lt;span class=&#34;p&#34;&gt;|&lt;/span&gt; grep &lt;span class=&#34;m&#34;&gt;80&lt;/span&gt;  &lt;span class=&#34;c1&#34;&gt;# 只看 80 端口在第几行&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sudo iptables -D INPUT &lt;span class=&#34;m&#34;&gt;5&lt;/span&gt;                              &lt;span class=&#34;c1&#34;&gt;# 删除第 5 行（换成你查到的行号）&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sudo netfilter-persistent save                        &lt;span class=&#34;c1&#34;&gt;# 保存&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&#xA;&lt;/div&gt;&#xA;&lt;/div&gt;&lt;hr&gt;&#xA;&lt;h2 id=&#34;第三步一行命令装好-3x-ui&#34;&gt;第三步：一行命令装好 3X-UI&#xA;&lt;/h2&gt;&lt;p&gt;装最新版：&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;&#xA;&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;&#xA;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1&#xA;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&#xA;&lt;td class=&#34;lntd&#34;&gt;&#xA;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;bash &amp;lt;&lt;span class=&#34;o&#34;&gt;(&lt;/span&gt;curl -Ls https://raw.githubusercontent.com/mhsanaei/3x-ui/master/install.sh&lt;span class=&#34;o&#34;&gt;)&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&#xA;&lt;/div&gt;&#xA;&lt;/div&gt;&lt;p&gt;装指定版本：&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;&#xA;&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;&#xA;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1&#xA;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&#xA;&lt;td class=&#34;lntd&#34;&gt;&#xA;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;bash &amp;lt;&lt;span class=&#34;o&#34;&gt;(&lt;/span&gt;curl -Ls https://raw.githubusercontent.com/mhsanaei/3x-ui/master/install.sh&lt;span class=&#34;o&#34;&gt;)&lt;/span&gt; v3.7.0&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&#xA;&lt;/div&gt;&#xA;&lt;/div&gt;&lt;p&gt;末尾的 &lt;code&gt;v3.7.0&lt;/code&gt; 是指定版本，本文就是按这个版本演示的，界面和你看到的对得上。想装最新版就把它去掉。3X-UI 更新比较快，目前已经更新到 v3.10.2 版本，感兴趣可尝试安装最新版本。&lt;/p&gt;&#xA;&lt;h3 id=&#34;安装过程会问你这些按顺序走一遍&#34;&gt;安装过程会问你这些（按顺序走一遍）&#xA;&lt;/h3&gt;&lt;p&gt;新版把&lt;strong&gt;证书申请也做进了安装流程&lt;/strong&gt;，所以这一路问下来，装完证书就一起配好了，不用再单独跑一次菜单。下面是完整顺序：&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;1. 选数据库&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;p&gt;3X-UI 支持两种后端：&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;SQLite&lt;/strong&gt;（默认）— 位于 &lt;code&gt;/etc/x-ui/x-ui.db&lt;/code&gt; 的单个文件，无需配置，适合中小型部署&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;PostgreSQL&lt;/strong&gt; — 推荐用于大量客户端或多节点设置，安装程序可以为你在本地安装 PostgreSQL&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;自己用选 &lt;strong&gt;SQLite&lt;/strong&gt; 就行。&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;2. 选择是否自定义面板端口&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;p&gt;可以自定义，也可以让它随机生成。记住你的选择，&lt;strong&gt;装完要把这个端口加进两道锁&lt;/strong&gt;。&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;3. 选择证书方式&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;p&gt;这里会列出几个选项，选 &lt;strong&gt;Let&amp;rsquo;s Encrypt for domain（90-day validity, auto-renews）&lt;/strong&gt; 这一项，开始申请域名证书。&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;4. 填入要绑定的域名&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;p&gt;填你第一步解析好的那个，比如 &lt;code&gt;3xui.你的域名.com&lt;/code&gt;。&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;5. 确认使用 80 端口&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;p&gt;直接确认。这一步就是前面反复强调 80 端口的原因——&lt;strong&gt;两道锁都得开好，不然这里会失败&lt;/strong&gt;。&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;6. &lt;code&gt;Would you like to modify --reloadcmd for ACME? (y/n)&lt;/code&gt;&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;p&gt;选 &lt;strong&gt;n&lt;/strong&gt;，或者直接回车。这是给需要自定义续期后重载命令的高级场景用的，我们用不上。&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;7. &lt;code&gt;Would you like to set this certificate for the panel? (y/n)&lt;/code&gt;&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;p&gt;选 &lt;strong&gt;y&lt;/strong&gt;，同意把证书直接设置到面板上。&lt;/p&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;这一步很关键。选了 y，面板就直接用上 HTTPS 了；选 n 的话证书虽然申请下来了，但面板还是 http，你得事后手动去菜单里挂一次。&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&lt;p&gt;&lt;strong&gt;8. 完成&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;p&gt;屏幕上会打印出面板地址、端口、用户名和密码，&lt;strong&gt;截图或复制保存好&lt;/strong&gt;。&lt;/p&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;📝 证书也可以用 Cloudflare API 方式申请，不需要开 80 端口。这个方法单讲一期，感兴趣的在评论区说一声。&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&lt;h3 id=&#34;装完只剩一件事&#34;&gt;装完只剩一件事&#xA;&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;把面板端口加进两道锁里&lt;/strong&gt;（安全列表 + iptables，方法同第二步）。&lt;/p&gt;&#xA;&lt;p&gt;然后浏览器打开 &lt;code&gt;https://3xui.你的域名.com:面板端口/面板路径&lt;/code&gt;，能看到登录页、地址栏有小锁头，就说明装好了。&lt;/p&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;🕳️ &lt;strong&gt;坑 4：别碰主菜单第 23 项「Firewall Management」&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;p&gt;在 SSH 里敲 &lt;code&gt;x-ui&lt;/code&gt; 打开管理菜单，第 &lt;strong&gt;23. Firewall Management&lt;/strong&gt; 就是这个坑。它底下七个子项&lt;strong&gt;全部是在调用 ufw&lt;/strong&gt;，没有一条会去动 Oracle 那套 iptables 规则。&lt;/p&gt;&#xA;&lt;p&gt;&lt;img src=&#34;https://smallstep.one/oracle-3x-ui-reality/images/3x-002.webp&#34;&#xA;&#x9;width=&#34;470&#34;&#xA;&#x9;height=&#34;216&#34;&#xA;&#x9;loading=&#34;lazy&#34;&#xA;&#x9;&#xA;    &#xA;&#x9;&#xA;&#x9;&#x9;class=&#34;gallery-image&#34; &#xA;&#x9;&#x9;data-flex-grow=&#34;217&#34;&#xA;&#x9;&#x9;data-flex-basis=&#34;522px&#34;&#xA;&#x9;&#xA;&gt;&lt;img src=&#34;https://smallstep.one/oracle-3x-ui-reality/images/3x-003.webp&#34;&#xA;&#x9;width=&#34;473&#34;&#xA;&#x9;height=&#34;220&#34;&#xA;&#x9;loading=&#34;lazy&#34;&#xA;&#x9;&#xA;    &#xA;&#x9;&#xA;&#x9;&#x9;class=&#34;gallery-image&#34; &#xA;&#x9;&#x9;data-flex-grow=&#34;215&#34;&#xA;&#x9;&#x9;data-flex-basis=&#34;516px&#34;&#xA;&#x9;&#xA;&gt;&lt;/p&gt;&#xA;&lt;p&gt;危险程度不一样，分开说：&lt;/p&gt;&#xA;&lt;table&gt;&#xA;  &lt;thead&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;th&gt;子项&lt;/th&gt;&#xA;          &lt;th&gt;实际执行什么&lt;/th&gt;&#xA;          &lt;th&gt;风险&lt;/th&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/thead&gt;&#xA;  &lt;tbody&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;1. Install Firewall&lt;/td&gt;&#xA;          &lt;td&gt;装 ufw → 先放行 ssh、http、https、2053、2096 → &lt;code&gt;ufw --force enable&lt;/code&gt;&lt;/td&gt;&#xA;          &lt;td&gt;中&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;2. Port List&lt;/td&gt;&#xA;          &lt;td&gt;&lt;code&gt;ufw status numbered&lt;/code&gt;&lt;/td&gt;&#xA;          &lt;td&gt;无&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;3. Open Ports&lt;/td&gt;&#xA;          &lt;td&gt;&lt;code&gt;ufw allow &amp;lt;端口&amp;gt;&lt;/code&gt;&lt;/td&gt;&#xA;          &lt;td&gt;低，但在 Oracle 上&lt;strong&gt;是白干&lt;/strong&gt;&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;4. Delete Ports&lt;/td&gt;&#xA;          &lt;td&gt;&lt;code&gt;ufw delete&lt;/code&gt;&lt;/td&gt;&#xA;          &lt;td&gt;中，&lt;strong&gt;不拦着你删掉 22 端口的规则&lt;/strong&gt;&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;&lt;strong&gt;5. Enable Firewall&lt;/strong&gt;&lt;/td&gt;&#xA;          &lt;td&gt;&lt;strong&gt;只跑 &lt;code&gt;ufw enable&lt;/code&gt;，不加任何放行规则&lt;/strong&gt;&lt;/td&gt;&#xA;          &lt;td&gt;&lt;strong&gt;最高&lt;/strong&gt;&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;6. Disable Firewall&lt;/td&gt;&#xA;          &lt;td&gt;&lt;code&gt;ufw disable&lt;/code&gt;&lt;/td&gt;&#xA;          &lt;td&gt;无（这是救命的那个）&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;7. Firewall Status&lt;/td&gt;&#xA;          &lt;td&gt;&lt;code&gt;ufw status verbose&lt;/code&gt;&lt;/td&gt;&#xA;          &lt;td&gt;无&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/tbody&gt;&#xA;&lt;/table&gt;&#xA;&lt;p&gt;&lt;strong&gt;真正会把你锁在外面的是第 5 项。&lt;/strong&gt; 它不做任何检查，直接 &lt;code&gt;ufw enable&lt;/code&gt;，而 ufw 默认拒绝所有入站——你的 SSH 连接在回车那一刻就断了。&lt;/p&gt;&#xA;&lt;p&gt;第 1 项其实会先 &lt;code&gt;ufw allow ssh&lt;/code&gt; 再启用，不至于立刻断线。但在 Oracle 上它同样不该碰，原因是另一个：&lt;strong&gt;你机器里本来就跑着一套 iptables 规则，再启用 ufw 等于两套规则体系在管同一个内核&lt;/strong&gt;，之后你改哪边都可能不生效，排查起来极其痛苦。&lt;/p&gt;&#xA;&lt;p&gt;第 3 项「Open Ports」在 Oracle 上更是白忙一场——你以为端口开了，云平台那层的安全列表还锁着呢。另外它默认放行的是 &lt;code&gt;2053&lt;/code&gt;，那是 3X-UI 的旧默认面板端口，你随机生成的那个它压根没放行。&lt;/p&gt;&#xA;&lt;p&gt;在 Oracle 上，开端口就老老实实用第二步的方法。&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;另外如果安装中途退出或中断，安装完成后看不到用户名和密码，需要在 SSH 中运行 &lt;code&gt;x-ui&lt;/code&gt; 重置用户名密码。&#xA;&lt;img src=&#34;https://smallstep.one/oracle-3x-ui-reality/images/3x-001.webp&#34;&#xA;&#x9;width=&#34;1196&#34;&#xA;&#x9;height=&#34;343&#34;&#xA;&#x9;loading=&#34;lazy&#34;&#xA;&#x9;&#xA;    &#xA;&#x9;&#xA;&#x9;&#x9;class=&#34;gallery-image&#34; &#xA;&#x9;&#x9;data-flex-grow=&#34;348&#34;&#xA;&#x9;&#x9;data-flex-basis=&#34;836px&#34;&#xA;&#x9;&#xA;&gt;&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&lt;details&gt;&#xA;&lt;summary&gt;如果安装时跳过了证书这一步，怎么补申请（可跳过）&lt;/summary&gt;&#xA;&lt;p&gt;在 SSH 里输入 &lt;code&gt;x-ui&lt;/code&gt; 打开管理菜单，找到 &lt;strong&gt;SSL 证书管理&lt;/strong&gt;，选择为域名申请证书，填入你的域名，流程跟安装时那几步是一样的。申请完别忘了在同一个子菜单里把证书路径设置到面板上。&lt;/p&gt;&#xA;&lt;/details&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;第四步创建-reality-入站&#34;&gt;第四步：创建 Reality 入站&#xA;&lt;/h2&gt;&lt;p&gt;登录面板 → 左侧 &lt;strong&gt;入站列表&lt;/strong&gt; → &lt;strong&gt;添加入站&lt;/strong&gt;。协议选 &lt;strong&gt;VLESS&lt;/strong&gt;，下面按选项卡一项项来。&lt;/p&gt;&#xA;&lt;h3 id=&#34;基础配置端口用-443&#34;&gt;基础配置：端口用 443&#xA;&lt;/h3&gt;&lt;p&gt;443 是 HTTPS 的默认端口，用它能让连接看起来更像正常的网页访问。&lt;strong&gt;如果这台 VPS 上已经跑了网站或 Nginx，就别用 443&lt;/strong&gt;，在 1024～65535 之间随便挑一个，记得去两道锁里把它打开。&lt;/p&gt;&#xA;&lt;h3 id=&#34;协议配置&#34;&gt;协议配置&#xA;&lt;/h3&gt;&lt;p&gt;保持默认。&lt;/p&gt;&#xA;&lt;h3 id=&#34;传输配置&#34;&gt;传输配置&#xA;&lt;/h3&gt;&lt;p&gt;选 &lt;strong&gt;RAW&lt;/strong&gt;（新版的叫法，老版本叫 TCP），其他默认。&lt;/p&gt;&#xA;&lt;h3 id=&#34;安全配置选-reality&#34;&gt;安全配置：选 Reality&#xA;&lt;/h3&gt;&lt;p&gt;Reality 不用像普通 HTTPS 网站那样单独配 SSL 证书，它借一个真实网站当伪装目标，让你的连接看起来像在正常访问那个网站。&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;uTLS&lt;/strong&gt;：伪装成某个浏览器的 TLS 指纹。默认是 Chrome，兼容性最好，不用改。&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;目标网站&lt;/strong&gt;：这是 Reality 配置里最重要的一项。老版本要自己找，新版本点 &lt;strong&gt;查找目标&lt;/strong&gt;，挑一个延迟低的点 &lt;strong&gt;使用&lt;/strong&gt;，SNI 会自动填好。本文用 &lt;code&gt;www.microsoft.com&lt;/code&gt; 演示。想自己挑目标网站的，看这篇：&lt;a class=&#34;link&#34; href=&#34;https://smallstep.one/reality-domain/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;Reality 回落域名怎么选&lt;/a&gt;。&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;最小 / 最大客户端版本&lt;/strong&gt;：保持默认。如果后面导入客户端连不上，可以把最小客户端版本改成 &lt;code&gt;0.0.0&lt;/code&gt; 再试。&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;💡 以后哪天突然连不上了，先别急着重装，回到这里换一个目标网站试试。&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&lt;h3 id=&#34;嗅探配置可选&#34;&gt;嗅探配置（可选）&#xA;&lt;/h3&gt;&lt;p&gt;嗅探提升的是按域名分流的能力，属于调优，关着也不影响使用。想开的话：勾选 &lt;strong&gt;HTTP、TLS、QUIC&lt;/strong&gt;，&lt;strong&gt;不要&lt;/strong&gt;勾 FAKEDNS；&amp;ldquo;仅元数据&amp;quot;保持关闭，&amp;ldquo;仅路由&amp;quot;打开，其余默认。&lt;/p&gt;&#xA;&lt;h3 id=&#34;高级配置&#34;&gt;高级配置&#xA;&lt;/h3&gt;&lt;p&gt;保持默认，点 &lt;strong&gt;创建&lt;/strong&gt;。&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;第五步添加客户端&#34;&gt;第五步：添加客户端&#xA;&lt;/h2&gt;&lt;p&gt;新版 3X-UI 把客户端单独拎出来了，入站建好之后还要再加客户端。&lt;/p&gt;&#xA;&lt;p&gt;左侧点 &lt;strong&gt;客户端&lt;/strong&gt; → &lt;strong&gt;添加客户端&lt;/strong&gt;：&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;基本&lt;/strong&gt;：邮箱可以自定义，也可以用默认的；备注填个自己认得出的名字。&lt;strong&gt;关联入站&lt;/strong&gt;选刚才建的 Reality 入站。以后建了更多入站，都能关联到同一个客户端，相当于一个用户下有多条线路，跟机场订阅一样。&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;凭据&lt;/strong&gt;：Flow 选 &lt;strong&gt;xtls-rprx-vision&lt;/strong&gt;。&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;💡 下拉里还有一个 &lt;code&gt;xtls-rprx-vision-udp443&lt;/code&gt;。普通 vision 会拦掉 UDP 443（QUIC）流量，让浏览器退回 TCP；udp443 版本则放行。一般用普通 vision 就好。&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&lt;p&gt;点 &lt;strong&gt;创建&lt;/strong&gt;。&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;第六步重启-xray再导入节点&#34;&gt;第六步：重启 Xray，再导入节点&#xA;&lt;/h2&gt;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;🕳️ &lt;strong&gt;坑 5：建完客户端千万别马上导入&lt;/strong&gt;&#xA;先重启 Xray，刚才的配置才会加载。跳过这一步，订阅链接要么是空的，要么是旧的。&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;&#xA;&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;&#xA;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1&#xA;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&#xA;&lt;td class=&#34;lntd&#34;&gt;&#xA;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sudo x-ui restart xray&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&#xA;&lt;/div&gt;&#xA;&lt;/div&gt;&lt;p&gt;重启后确认端口在监听：&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;&#xA;&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;&#xA;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2&#xA;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&#xA;&lt;td class=&#34;lntd&#34;&gt;&#xA;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sudo ss -lntp &lt;span class=&#34;p&#34;&gt;|&lt;/span&gt; grep &lt;span class=&#34;s2&#34;&gt;&amp;#34;:443&amp;#34;&lt;/span&gt;                        &lt;span class=&#34;c1&#34;&gt;# 看一个端口&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sudo ss -lntp &lt;span class=&#34;p&#34;&gt;|&lt;/span&gt; grep -E &lt;span class=&#34;s1&#34;&gt;&amp;#39;:(443|2096)\b&amp;#39;&lt;/span&gt;             &lt;span class=&#34;c1&#34;&gt;# 同时看多个端口&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&#xA;&lt;/div&gt;&#xA;&lt;/div&gt;&lt;p&gt;有输出就说明 Xray 已经在这个端口上跑起来了。&lt;/p&gt;&#xA;&lt;h3 id=&#34;拿到节点链接&#34;&gt;拿到节点链接&#xA;&lt;/h3&gt;&lt;p&gt;回面板刷新页面，有两个入口：&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;二维码图标&lt;/strong&gt;：上面一组是&lt;strong&gt;订阅链接&lt;/strong&gt;，像机场订阅一样包含所有线路；下面一组是&lt;strong&gt;单条节点链接&lt;/strong&gt;，可以单独导入。&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;右侧的圆圈图标&lt;/strong&gt;：除了同样两组链接，还能看到节点的具体参数。&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;订阅信息里新增了一个 &lt;strong&gt;SUB 链接&lt;/strong&gt;，点开是一个新页面，里面有 &lt;strong&gt;复制全部配置&lt;/strong&gt;，线路多的时候一键全部复制很方便。&lt;/p&gt;&#xA;&lt;p&gt;页面最下面还有 &lt;strong&gt;Android&lt;/strong&gt; 和 &lt;strong&gt;iOS&lt;/strong&gt; 两个按钮，点开能看到 V2Box、v2rayNG、sing-box、Shadowrocket、Streisand 等工具，点哪个就生成哪个工具能直接导入的格式，解决了一条链接在不同客户端不兼容的老问题。&lt;/p&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;想用订阅功能，&lt;strong&gt;2096 端口必须两道锁都开&lt;/strong&gt;，不然客户端里的订阅无法更新，SUB 链接也打不开。&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;第七步导进客户端测一测&#34;&gt;第七步：导进客户端测一测&#xA;&lt;/h2&gt;&lt;h3 id=&#34;windowsv2rayn&#34;&gt;Windows：v2rayN&#xA;&lt;/h3&gt;&lt;ol&gt;&#xA;&lt;li&gt;在面板复制单条节点链接&lt;/li&gt;&#xA;&lt;li&gt;打开 v2rayN → &lt;strong&gt;服务器&lt;/strong&gt; → &lt;strong&gt;从剪贴板导入分享链接&lt;/strong&gt;&lt;/li&gt;&#xA;&lt;li&gt;选中这个节点，右键 &lt;strong&gt;测试真连接延迟&lt;/strong&gt;，出现毫秒数就说明通了&lt;/li&gt;&#xA;&lt;li&gt;设为活动服务器，打开系统代理，浏览器访问 Google 试试&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;h3 id=&#34;iosshadowrocket&#34;&gt;iOS：Shadowrocket&#xA;&lt;/h3&gt;&lt;p&gt;需要外区 Apple ID 才能下载。复制节点链接后打开 Shadowrocket，会自动提示添加，确认后点一下节点测延迟，有数字就是通的。&lt;/p&gt;&#xA;&lt;h3 id=&#34;连不上按这个顺序查&#34;&gt;连不上？按这个顺序查&#xA;&lt;/h3&gt;&lt;ol&gt;&#xA;&lt;li&gt;服务器上 &lt;code&gt;sudo ss -lntp | grep &amp;quot;:443&amp;quot;&lt;/code&gt; 有没有输出？没有 → 重启 Xray&lt;/li&gt;&#xA;&lt;li&gt;443 端口两道锁是不是都开了？&lt;/li&gt;&#xA;&lt;li&gt;Cloudflare 那条记录是不是灰云？&lt;/li&gt;&#xA;&lt;li&gt;把入站里的最小客户端版本改成 &lt;code&gt;0.0.0&lt;/code&gt; 试试&lt;/li&gt;&#xA;&lt;li&gt;换一个目标网站&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;常见报错与解决&#34;&gt;常见报错与解决&#xA;&lt;/h2&gt;&lt;p&gt;&lt;strong&gt;安装到证书那步失败了&lt;/strong&gt;&#xA;→ 原因：80 端口没开透，或者域名没解析到这台机器&#xA;→ 解决：① 用 &lt;code&gt;dig&lt;/code&gt; + &lt;code&gt;curl ifconfig.me&lt;/code&gt; 确认两个 IP 一致；② 安全列表和 iptables 都放行 80；③ 确认 iptables 里 80 的规则在 REJECT 上面；④ 排完之后不用重装，跑 &lt;code&gt;x-ui&lt;/code&gt; 进菜单里的 SSL 证书管理补申请就行&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;证书申请成功了，但面板还是 http&lt;/strong&gt;&#xA;→ 原因：安装时最后那个 &lt;code&gt;Would you like to set this certificate for the panel?&lt;/code&gt; 选了 n&#xA;→ 解决：&lt;code&gt;x-ui&lt;/code&gt; → SSL 证书管理 → 把证书路径设置到面板，然后 &lt;code&gt;x-ui restart&lt;/code&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;面板打不开&lt;/strong&gt;&#xA;→ 原因：面板端口只开了一道锁&#xA;→ 解决：安全列表 + iptables 都加上面板端口&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;订阅导入后是空的 / 节点还是旧配置&lt;/strong&gt;&#xA;→ 原因：改完配置没重启 Xray&#xA;→ 解决：&lt;code&gt;sudo x-ui restart xray&lt;/code&gt;，再重新导入&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;客户端订阅无法更新&lt;/strong&gt;&#xA;→ 原因：2096 端口没开&#xA;→ 解决：两道锁都放行 2096&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;SSH 突然连不上了&lt;/strong&gt;&#xA;→ 原因：多半是在 &lt;code&gt;x-ui&lt;/code&gt; 菜单第 23 项里点了 &lt;strong&gt;5. Enable Firewall&lt;/strong&gt;，ufw 启用后默认拒绝所有入站，把 22 端口也挡了&#xA;→ 解决：Oracle 控制台 → 实例 → 控制台连接 → 串行控制台登录，执行 &lt;code&gt;sudo ufw disable&lt;/code&gt;。进不去串行控制台的话，只能另开一台实例把硬盘挂过去救，所以这一项真的别点&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;附重启服务器&#34;&gt;附：重启服务器&#xA;&lt;/h2&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;&#xA;&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;&#xA;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1&#xA;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&#xA;&lt;td class=&#34;lntd&#34;&gt;&#xA;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sudo reboot&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&#xA;&lt;/div&gt;&#xA;&lt;/div&gt;&lt;p&gt;SSH 会立刻断开，等几十秒再连就行。&lt;/p&gt;&#xA;&lt;table&gt;&#xA;  &lt;thead&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;th&gt;命令&lt;/th&gt;&#xA;          &lt;th&gt;作用&lt;/th&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/thead&gt;&#xA;  &lt;tbody&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;&lt;code&gt;sudo reboot&lt;/code&gt;&lt;/td&gt;&#xA;          &lt;td&gt;立即重启，最常用&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;&lt;code&gt;sudo shutdown -r now&lt;/code&gt;&lt;/td&gt;&#xA;          &lt;td&gt;立即重启&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;&lt;code&gt;sudo shutdown -r +5&lt;/code&gt;&lt;/td&gt;&#xA;          &lt;td&gt;5 分钟后重启&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;&lt;code&gt;sudo systemctl reboot&lt;/code&gt;&lt;/td&gt;&#xA;          &lt;td&gt;用 systemd 重启&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/tbody&gt;&#xA;&lt;/table&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;收个尾&#34;&gt;收个尾&#xA;&lt;/h2&gt;&lt;p&gt;到这里，你的甲骨文机器上已经跑着最新版 3X-UI，有一个自己域名加证书的面板，一个 VLESS + Reality 节点，电脑和手机都能连。回头看，真正卡人的不是步骤多，而是那两道锁、小黄云和重启 Xray 这几个地方，记住它们，以后换台机器重装也就十几分钟的事。&lt;/p&gt;&#xA;&lt;p&gt;证书的 Cloudflare API 申请方式（不用开 80 端口），想看的评论区告诉我，人多就单独出一期。&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;系列导航&#34;&gt;系列导航&#xA;&lt;/h2&gt;&lt;ul&gt;&#xA;&lt;li&gt;上一篇：Oracle 开实例遇到的问题：Out of Capacity 与 Pay As You Go 升级（即将发布）&lt;/li&gt;&#xA;&lt;li&gt;下一篇：（待定）&lt;/li&gt;&#xA;&lt;li&gt;返回系列目录：Oracle VPS 系列目录（【待补链接】）&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;</description>
        </item></channel>
</rss>
