R
描述
一个轻量级高性能的NAT穿透反向代理,使用Rust编写。是frp和ngrok的替代方案。
114 浏览
4 下载
2026-06-30
更新于 11 小时前
预设配置详情
Rathole
一个用 Rust 编写的安全、稳定且高性能的 NAT 穿透反向代理
rathole 与 frp 和 ngrok 类似,可以通过具有公网 IP 的服务器,将位于 NAT 后的设备上的服务暴露到互联网。
此 Egg 仅包含 rathole 的服务端
关于 rathole 的更多信息,请参考 https://github.com/rapiz1/rathole
registry.cn-shanghai.aliyuncs.com/pterodactyl-images/yolks:rust_latest
./rathole server.toml
| 变量名 | 变量 | 描述 | 默认值 | 规则 | 可查看 | 可编辑 |
|---|---|---|---|---|---|---|
| 秘密 | TOKEN |
您的随机令牌 | |
required|string|min:5|max:60
必填 字符串 最大 60 最小 5
|
||
| 版本 | VERSION |
latest |
required|string|max:20
必填 字符串 最大 20
|
镜像
registry.cn-shanghai.aliyuncs.com/pterodactyl-images/installers:debian
入口
bash
#!/bin/bash
## get release info and download links
cd /mnt/server
LATEST_JSON=$(curl --silent "https://api.github.com/repos/rathole-org/rathole/releases/latest")
RELEASES=$(curl --silent "https://api.github.com/repos/rathole-org/rathole/releases")
ARCH=$([[ "$(uname -m)" == "x86_64" ]] && echo "amd64" || echo "aarch64")
if [ "${ARCH}" == "aarch64" ]; then
MATCH=rathole-aarch64-unknown-linux-musl.zip
else
MATCH=rathole-x86_64-unknown-linux-gnu.zip
fi
if [ -z "${VERSION}" ] || [ "${VERSION}" == "latest" ]; then
DOWNLOAD_URL=$(echo ${LATEST_JSON} | jq .assets | jq -r .[].browser_download_url | grep -i ${MATCH})
else
VERSION_CHECK=$(echo ${RELEASES} | jq -r --arg VERSION "${VERSION}" '.[] | select(.tag_name==$VERSION) | .tag_name')
if [ "${VERSION}" == "${VERSION_CHECK}" ]; then
DOWNLOAD_URL=$(echo ${RELEASES} | jq -r --arg VERSION "${VERSION}" '.[] | select(.tag_name==$VERSION) | .assets[].browser_download_url' | grep -i ${MATCH})
else
echo -e "defaulting to latest release"
DOWNLOAD_URL=$(echo "${LATEST_JSON}" | jq -r ".assets[].browser_download_url" | grep -i "${MATCH}")
fi
fi
echo "Download url: ${DOWNLOAD_URL}"
curl -ssL -o rathole.zip ${DOWNLOAD_URL}
unzip -o rathole.zip
rm rathole.zip
cat <<EOF > server.toml
[server]
bind_addr = "0.0.0.0:${SERVER_PORT}"
[server.services.my_nas_ssh]
token = "${TOKEN}"
bind_addr = "0.0.0.0:${SERVER_PORT}"
EOF
chmod +x rathole
## install end
echo "-----------------------------------------"
echo "Installation completed..."
echo "-----------------------------------------"
{
"_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO",
"meta": {
"version": "PTDL_v2",
"update_url": "https://eggs.pterodactyl.top/eggs/14/download/egg-rathole.json"
},
"exported_at": "2026-01-03T15:04:48+00:00",
"name": "Rathole",
"author": "tunayada@gmail.com",
"description": "一个轻量级高性能的NAT穿透反向代理,使用Rust编写。是frp和ngrok的替代方案。",
"features": null,
"docker_images": {
"Rust_latest": "registry.cn-shanghai.aliyuncs.com/pterodactyl-images/yolks:rust_latest"
},
"file_denylist": [],
"startup": "./rathole server.toml",
"config": {
"files": "{\n \"server.toml\": {\n \"parser\": \"file\",\n \"find\": {\n \"token = \\\"(.*)\\\"\": \"token = \\\"{{server.build.env.TOKEN}}\\\"\",\n \"bind_addr = \\\"0.0.0.0:(.*)\\\"\": \"bind_addr = \\\"0.0.0.0:{{server.build.default.port}}\\\"\"\n }\n }\n}",
"startup": "{\n \"done\": [\n \"Listening at \"\n ]\n}",
"logs": "{}",
"stop": "^C"
},
"scripts": {
"installation": {
"script": "#!/bin/bash\r\n\r\n## get release info and download links\r\ncd /mnt/server\r\n\r\nLATEST_JSON=$(curl --silent \"https://api.github.com/repos/rathole-org/rathole/releases/latest\")\r\nRELEASES=$(curl --silent \"https://api.github.com/repos/rathole-org/rathole/releases\")\r\nARCH=$([[ \"$(uname -m)\" == \"x86_64\" ]] && echo \"amd64\" || echo \"aarch64\")\r\n\r\nif [ \"${ARCH}\" == \"aarch64\" ]; then\r\n MATCH=rathole-aarch64-unknown-linux-musl.zip\r\nelse\r\n MATCH=rathole-x86_64-unknown-linux-gnu.zip\r\nfi\r\n\r\nif [ -z \"${VERSION}\" ] || [ \"${VERSION}\" == \"latest\" ]; then\r\n DOWNLOAD_URL=$(echo ${LATEST_JSON} | jq .assets | jq -r .[].browser_download_url | grep -i ${MATCH})\r\nelse\r\n VERSION_CHECK=$(echo ${RELEASES} | jq -r --arg VERSION \"${VERSION}\" '.[] | select(.tag_name==$VERSION) | .tag_name')\r\n if [ \"${VERSION}\" == \"${VERSION_CHECK}\" ]; then\r\n DOWNLOAD_URL=$(echo ${RELEASES} | jq -r --arg VERSION \"${VERSION}\" '.[] | select(.tag_name==$VERSION) | .assets[].browser_download_url' | grep -i ${MATCH})\r\n else\r\n echo -e \"defaulting to latest release\"\r\n DOWNLOAD_URL=$(echo \"${LATEST_JSON}\" | jq -r \".assets[].browser_download_url\" | grep -i \"${MATCH}\")\r\n fi\r\nfi\r\n\r\necho \"Download url: ${DOWNLOAD_URL}\"\r\ncurl -ssL -o rathole.zip ${DOWNLOAD_URL}\r\nunzip -o rathole.zip\r\nrm rathole.zip\r\n\r\ncat <<EOF > server.toml\r\n[server]\r\nbind_addr = \"0.0.0.0:${SERVER_PORT}\"\r\n\r\n[server.services.my_nas_ssh]\r\ntoken = \"${TOKEN}\"\r\nbind_addr = \"0.0.0.0:${SERVER_PORT}\"\r\nEOF\r\n\r\nchmod +x rathole\r\n\r\n## install end\r\necho \"-----------------------------------------\"\r\necho \"Installation completed...\"\r\necho \"-----------------------------------------\"",
"container": "registry.cn-shanghai.aliyuncs.com/pterodactyl-images/installers:debian",
"entrypoint": "bash"
}
},
"variables": [
{
"name": "秘密",
"description": "您的随机令牌",
"env_variable": "TOKEN",
"default_value": "",
"user_viewable": true,
"user_editable": true,
"rules": "required|string|min:5|max:60",
"field_type": "text"
},
{
"name": "版本",
"description": "",
"env_variable": "VERSION",
"default_value": "latest",
"user_viewable": true,
"user_editable": true,
"rules": "required|string|max:20",
"field_type": "text"
}
]
}附属文件
暂无附属文件
提交历史
v1.0.6
● 当前
[AI翻译] 描述、说明、JSON描述、变量
飒爽师叔
提交于 4 个月前
v1.0.5
[AI翻译] 名称、描述、说明、JSON描述、变量
飒爽师叔
提交于 4 个月前
v1.0.4
[AI翻译] 名称、描述、说明、JSON描述、变量
飒爽师叔
提交于 4 个月前
v1.0.3
[AI翻译] 名称、描述、说明、JSON描述、变量
飒爽师叔
提交于 4 个月前
v1.0.2
[AI翻译] 名称、描述、说明、JSON描述、变量
飒爽师叔
提交于 4 个月前
v1.0.1
[AI翻译] 名称、描述、说明、JSON描述、变量
飒爽师叔
提交于 4 个月前
v1.0.0
批量导入
飒爽师叔
提交于 4 个月前
Fork 关系
查看关系图暂无 Fork,成为第一个 Fork 的人吧!
统计
114
浏览
4
下载
0
星标
0
复刻
作者
飒
飒爽师叔
UID: 1
279 预设
·
2026-06