








适用场景
libnep.so 为 arm64-v8a,无法在 x86_64 Linux 直接运行。核心思路(推荐)
127.0.0.1:18080),把请求通过隧道转到 Android 设备的 127.0.0.1:8080(即你 APK 的 POST /sign 服务)。https://<域名>/sign,并加一层鉴权(最简单用 Token Header)。本方案选型
你需要准备以下信息(填入本文的配置中):
<CLOUD_IP><TUN_PORT><DOMAIN><RATHOLE_TOKEN><API_TOKEN>端口规划建议
443(HTTPS),可选 80(跳转到 HTTPS)2333/tcp127.0.0.1:18080(Nginx 反代到这里)安全组/防火墙
2333/tcp(rathole)、443/tcp(HTTPS)18080(只监听 127.0.0.1)sudo dnf makecache
sudo dnf install -y nginx curl tar
sudo mkdir -p /opt/rathole
cd /opt/rathole
# 示例:从 GitHub Release 下载 Linux x86_64 二进制
# 若云服务器无法直连 GitHub,请在“下载机”下载后 scp 上传到此目录。
curl -L -o rathole.tar.gz <RATHOLE_LINUX_X86_64_TAR_GZ_URL>
tar -xzf rathole.tar.gz
# 期望得到可执行文件 rathole(或在解压目录中)
chmod +x rathole
sudo ln -sf /opt/rathole/rathole /usr/local/bin/rathole
rathole --version || true
/etc/rathole/server.tomlsudo mkdir -p /etc/rathole
sudo tee /etc/rathole/server.toml >/dev/null <<'EOF'
[server]
bind_addr = "0.0.0.0:2333"
[server.services.sign]
token = "RATHOLE_TOKEN_REPLACE"
bind_addr = "127.0.0.1:18080"
EOF
替换:
2333 改成你的 <TUN_PORT>(如需)RATHOLE_TOKEN_REPLACE 替换为 <RATHOLE_TOKEN>sudo tee /etc/systemd/system/rathole-server.service >/dev/null <<'EOF'
[Unit]
Description=rathole server
After=network-online.target
Wants=network-online.target
[Service]
Type=simple
ExecStart=/usr/local/bin/rathole /etc/rathole/server.toml
Restart=always
RestartSec=2
LimitNOFILE=1048576
[Install]
WantedBy=multi-user.target
EOF
sudo systemctl daemon-reload
sudo systemctl enable --now rathole-server
sudo systemctl status rathole-server --no-pager
ss -lntp | grep -E '(:2333|:18080)'
/sign(带 Token 鉴权)/etc/nginx/conf.d/sign.conf 为例)sudo tee /etc/nginx/conf.d/sign.conf >/dev/null <<'EOF'
server {
listen 80;
server_name _;
# 如你有域名与证书,建议这里做 80->443 跳转;没有域名则可直接用 80(不推荐明文)
location = /sign {
# 简单 Token 鉴权:客户端需带 header: X-Auth-Token: <API_TOKEN>
if ($http_x_auth_token = "") { return 401; }
if ($http_x_auth_token != "API_TOKEN_REPLACE") { return 403; }
proxy_http_version 1.1;
proxy_set_header Connection "";
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_connect_timeout 3s;
proxy_read_timeout 10s;
proxy_send_timeout 10s;
proxy_pass http://127.0.0.1:18080/sign;
}
location / { return 404; }
}
EOF
替换:
API_TOKEN_REPLACE 替换为 <API_TOKEN>sudo nginx -t
sudo systemctl enable --now nginx
sudo systemctl reload nginx
目标:让设备上的 APK 常驻运行并监听 8080;让设备侧 rathole client 常驻,把设备 127.0.0.1:8080 通过隧道暴露到云端 127.0.0.1:18080。
8080 并提供 POST /sign)建议(减少被系统杀死概率)
pkg update -y
pkg install -y curl tar
mkdir -p ~/rathole
cd ~/rathole
# 示例:从 GitHub Release 下载 Android aarch64 二进制
curl -L -o rathole.tar.gz <RATHOLE_ANDROID_AARCH64_TAR_GZ_URL>
tar -xzf rathole.tar.gz
chmod +x rathole
./rathole --version || true
写配置 ~/rathole/client.toml:
cat > ~/rathole/client.toml <<'EOF'
[client]
remote_addr = "<CLOUD_IP>:2333"
[client.services.sign]
token = "RATHOLE_TOKEN_REPLACE"
local_addr = "127.0.0.1:8080"
EOF
替换:
<CLOUD_IP>、端口 2333(改成你的 <TUN_PORT>)RATHOLE_TOKEN_REPLACE(改成你的 <RATHOLE_TOKEN>)启动:
cd ~/rathole
./rathole client.toml
看到已连接/无报错即可。
Termux 自启通常用 Termux:Boot 插件:
Termux:Bootmkdir -p ~/.termux/boot
cat > ~/.termux/boot/start-rathole.sh <<'EOF'
#!/data/data/com.termux/files/usr/bin/sh
cd $HOME/rathole
exec ./rathole client.toml
EOF
chmod +x ~/.termux/boot/start-rathole.sh
然后重启手机验证是否自动连上。
sudo journalctl -u rathole-server -n 200 --no-pager
ss -lntp | grep 18080
curl -sS http://127.0.0.1:18080/sign \
-H 'Content-Type: application/json' \
-d '{"url":"/v1/xxx","body":"...","headers":{"GL-Uid":"..."}}'
curl -sS http://<CLOUD_IP>/sign \
-H 'Content-Type: application/json' \
-H 'X-Auth-Token: <API_TOKEN>' \
-d '{"url":"/v1/xxx","body":"...","headers":{"GL-Uid":"..."}}'
/sign 403/401X-Auth-Token 是否正确sudo nginx -T | sed -n '1,200p'18080 无响应/超时sudo journalctl -u rathole-server -n 200 --no-pager<TUN_PORT>/tcphttp://127.0.0.1:8080/sign(若你有本机工具)或查看 App 日志/sign 增加限流(Nginx limit_req)此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。