标签 服务器搭建 下的文章

白嫖雨云游戏云

根据佬友 fatekey 的帖子 雨云无限白嫖 FRP 服务器攻略(无 aff) 白嫖雨云的游戏云

雨云游戏云你需要知道的

首先雨云的游戏云类似 NAT,你可以在管理面板增加端口映射。其次最重要的是雨云游戏云的终端和普通的 shell 终端不同,它是 Minecraft 服务器控制台,所以不支持一般的 Linux 指令。 那我们要如何让它可以像一个普通 VPS 运行一些我们想要的服务呢?雨云游戏云有一个启动脚本,你可以修改这个脚本,所以你可以通过修改启动脚本进而运行一些我们想要的服务,这个教程带佬们利用启动脚本搭建 Alist

搭建 Alist

  1. 上传 Alist 可执行文件到游戏云中
    你可以通过 https://github.com/AlistGo/alist/releases/download/v3.55.0/alist-linux-amd64.tar.gz 这个链接将 alist 压缩文件下载到本地电脑上,然后在电脑上把这个文件解压,解压后得到 alist 可执行文件,把这个文件上传到游戏云中,并添加执行权限

    修改启动脚本并重新启动终端
    白嫖雨云服务器搭建 alist2
    改成下面内容并重新启动终端(建议终止再开启,直接用重启按钮可能会卡住)
    # 下方编写启动语句 echo "----------------启动alist-----------------"
    ./alist start
    echo 
    java -Xms128M -XX:MaxRAMPercentage=95.0 -jar Paper-1.21.10.jar
    
  2. 修改 Alist 的配置文件,再次修改启动脚本,然后重启游戏云
    当你重启终端后,看到如下就表示 Alist 就成功了

    Alist 默认监听端口是 5244,但是这个端口我们用不了,我们要修改 Alist 的配置文件,将 Alist 端口改成我们在管理面板添加的某个端口。Alist 启动成功后,会在跟目录生成 data 目录,里面的 config.json 文件是 Alist 的配置文件


    修改启动脚本,因我我们修改里 Alist 的配置文件,我们要重启 Alist 才可以让修改的配置文件生效。这里我们还要多做一点,修改一下 Alist 的管理员登录密码,一会登录要用。你可以把启动脚本修改如下,然后重启云游戏服务器
    # 下方编写启动语句 echo "----------------启动alist-----------------"
    ./alist restart # 重启Alist
    ./alist admin set 12345 # 设置Alist管理员密码,你可以设置自己的密码 echo 
    java -Xms128M -XX:MaxRAMPercentage=95.0 -jar Paper-1.21.10.jar
    

    当你看到如下就表示成功了

登录 Alist

通过 xm.rainplay.cn: 你配置文件修改的端口 访问 Alist,然后你就会看到熟悉的 Alist 登录界面


这里用户名 admin,密码 12345,看到下面就表示登录成功了,然后你就可以挂载云盘了

Alist 搭建后可以做什么

  1. 网盘文件互传(可以用 Alist 将一个网盘文件传到另一网盘中)
  2. Alist 提供文件直链下载链接,有了直链,你把直链给别人,别人就可以直接下载这个文件

📌 转载信息
原作者:
nianzhibai
转载时间:
2025/12/31 12:45:46

注册 wispbyte

记得选 python.

在控制台记住 ip 和端口号,别忘了改代码里的信息。

然后

import os
import subprocess
import urllib.request
import zipfile
import json
import uuid
import stat
import time
import shutil

# --- 【配置区域】 ---
PORT = 10312                    # 端口
SERVER_IP = "x.x.x.x"   # 你的IP
TARGET_SNI = "www.microsoft.com" 
LINK_NAME = "My-Reality-Final"   
# --------------------

XRAY_DOWNLOAD_URL = "https://github.com/XTLS/Xray-core/releases/download/v1.8.4/Xray-linux-64.zip" 
# 注意:我锁定了一个稳定版本 v1.8.4,防止 latest 版本出幺蛾子
BIN_PATH = "./xray"
CONFIG_PATH = "./config.json"
KEY_INFO_FILE = "./node_info.json"

# --- 备用密钥 (万一生成失败就用这组,保证能启动) ---
FALLBACK_PRIVATE = "mMzV5L6X9J5t1Kj8oO-0z9J594tj599fj9gd1Kj8oO-0z9J5t1Kj8k"
FALLBACK_PUBLIC = "Z80rIqjV1e9XvJ9mK4lN6qR5sT49rj0j24trjddB89_8rJk7XFp"
# ------------------------------------------------

def force_cleanup():
    """强制清理旧文件"""
    print("正在清理环境...")
    try:
        if os.path.exists(BIN_PATH): os.remove(BIN_PATH)
        if os.path.exists("xray.zip"): os.remove("xray.zip")
        # 也要删除旧的密钥文件,防止读取到错误数据
        if os.path.exists(KEY_INFO_FILE): os.remove(KEY_INFO_FILE)
    except Exception as e:
        print(f"清理警告: {e}")

def download_xray():
    print(f"正在下载 Xray Core (v1.8.4) ...")
    zip_path = "xray.zip"
    try:
        opener = urllib.request.build_opener()
        opener.addheaders = [('User-agent', 'Mozilla/5.0')]
        urllib.request.install_opener(opener)
        urllib.request.urlretrieve(XRAY_DOWNLOAD_URL, zip_path)
        
        with zipfile.ZipFile(zip_path, 'r') as zip_ref:
            zip_ref.extractall(".")
            
        st = os.stat(BIN_PATH)
        os.chmod(BIN_PATH, st.st_mode | stat.S_IEXEC)
        os.remove(zip_path)
        print("Xray 安装完成。")
    except Exception as e:
        print(f"❌ 下载失败: {e}")
        exit(1)

def get_keys():
    print("正在准备 Reality 密钥...")
    private_key = FALLBACK_PRIVATE
    public_key = FALLBACK_PUBLIC
    
    # 尝试生成新密钥
    try:
        process = subprocess.Popen([BIN_PATH, "x25519"], stdout=subprocess.PIPE, stderr=subprocess.PIPE, text=True)
        stdout, stderr = process.communicate()
        
        if "Private key:" in stdout and "Public key:" in stdout:
            # 标准格式解析
            private_key = stdout.split("Private key:")[1].split("Public key:")[0].strip()
            public_key = stdout.split("Public key:")[1].strip()
            print("✅ 成功生成新密钥。")
        else:
            print("⚠️ 密钥生成输出格式异常,切换至【备用密钥】模式。")
            print(f"异常输出内容: {stdout}")
            
    except Exception as e:
        print(f"⚠️ 生成过程出错 ({e}),切换至【备用密钥】模式。")

    # 生成 UUID
    user_uuid = str(uuid.uuid4())
    short_id = "".join(list(map(lambda x: hex(x)[2:], os.urandom(4))))

    info = {
        "uuid": user_uuid,
        "private_key": private_key,
        "public_key": public_key,
        "short_id": short_id
    }
    
    # 保存
    with open(KEY_INFO_FILE, 'w') as f:
        json.dump(info, f, indent=4)
        
    return info

def create_config(info):
    config = {
        "log": {"loglevel": "warning"},
        "inbounds": [{
            "port": PORT,
            "protocol": "vless",
            "settings": {
                "clients": [{"id": info["uuid"], "flow": "xtls-rprx-vision"}],
                "decryption": "none"
            },
            "streamSettings": {
                "network": "tcp",
                "security": "reality",
                "realitySettings": {
                    "show": False,
                    "dest": f"{TARGET_SNI}:443",
                    "xver": 0,
                    "serverNames": [TARGET_SNI],
                    "privateKey": info["private_key"],
                    "shortIds": [info["short_id"]]
                }
            }
        }],
        "outbounds": [{"protocol": "freedom", "tag": "direct"}]
    }
    with open(CONFIG_PATH, "w") as f:
        json.dump(config, f, indent=4)
    print("配置文件已就绪。")

def print_share_link(info):
    link = (f"vless://{info['uuid']}@{SERVER_IP}:{PORT}"
            f"?security=reality&encryption=none&pbk={info['public_key']}"
            f"&headerType=none&fp=chrome&type=tcp&flow=xtls-rprx-vision"
            f"&sni={TARGET_SNI}&sid={info['short_id']}#{LINK_NAME}")
    
    print("\n" + "="*60)
    print(f"🚀 节点已启动!请复制下方链接:")
    print("-" * 20)
    print(link)
    print("-" * 20)
    print("="*60 + "\n")

def main():
    force_cleanup()
    download_xray()
    info = get_keys()
    create_config(info)
    print_share_link(info)
    
    print(f"正在启动 Xray Core (Port {PORT})...")
    sys_env = os.environ.copy()
    process = subprocess.Popen([BIN_PATH, "run", "-c", CONFIG_PATH], 
                               stdout=subprocess.PIPE, 
                               stderr=subprocess.STDOUT,
                               text=True,
                               env=sys_env)
    for line in process.stdout:
        print(line, end='')
    process.wait()

if __name__ == "__main__":
    main()

创建 main.py,把上面代码放进去并修改对应的信息,完事。
补一个测速。

值得点赞吗

如果赞够多我就再多研究一下


📌 转载信息
转载时间:
2025/12/30 15:30:22