iOS小火箭Shadowrocket百度直连方法(附Clash用法)
本帖最后由 btpan 于 2026-1-23 01:54 编辑最近看大家都在讨论百度直连?讲个好玩的,我对HTTP代理服务器(proxy)还停留在7-8年前,当时人手一个CCProxy还去找透明代理翻。不过现在大家都人手一个Clash配上 127.0.0.1:7890 的本地proxy了,这些过时的技术好像又在论坛里复兴起来了!之前论坛分享的180.101.50.208只是cloudnproxy.baidu.com的其中一个解析,如果要特定IP可以把图中的域名改成 https://www.itdog.cn/ping/cloudnproxy.baidu.com 结果中的任意IP。刚刚换了个网连接,发现IP地址又变了,可以靠手动解析出IP设置锁落地
static/image/hrline/5.gif
昨天在摸索小火箭Shadowrocket时发现内置的lua脚本来利用百度直连好像行得通,而对于百度服务器来说只是加一个header验证,大概是这样
接下来讲实操
首先新建一个lua脚本的代理服务器配置
然后填入代理服务器的ip地址和端口,method选none;再点进File去修改
结尾我会留下Clash用法,总之出国的时候还能解锁下国内流媒体(翻回去)
在这里我们需要用lua脚本做header验证。我写的脚本有问题,感谢奶友提供的修改。
他的帖子地址:https://forum.naixi.net/thread-9195-1-1.html-- file: lua/backend-baidu.lua
local http = require 'http'
local backend = require 'backend'
local char = string.char
local byte = string.byte
local find = string.find
local sub = string.sub
local ADDRESS = backend.ADDRESS
local PROXY = backend.PROXY
local DIRECT_WRITE = backend.SUPPORT.DIRECT_WRITE
local SUCCESS = backend.RESULT.SUCCESS
local HANDSHAKE = backend.RESULT.HANDSHAKE
local DIRECT = backend.RESULT.DIRECT
local ctx_uuid = backend.get_uuid
local ctx_proxy_type = backend.get_proxy_type
local ctx_address_type = backend.get_address_type
local ctx_address_host = backend.get_address_host
local ctx_address_bytes = backend.get_address_bytes
local ctx_address_port = backend.get_address_port
local ctx_write = backend.write
local ctx_free = backend.free
local ctx_debug = backend.debug
local flags = {}
local kHttpHeaderSent = 1
local kHttpHeaderRecived = 2
function wa_lua_on_flags_cb(ctx)
return DIRECT_WRITE
end
function wa_lua_on_handshake_cb(ctx)
local uuid = ctx_uuid(ctx)
if flags == kHttpHeaderRecived then
return true
end
if flags ~= kHttpHeaderSent then
local host = ctx_address_host(ctx)
local port = ctx_address_port(ctx)
local res = 'CONNECT ' .. host .. ':' .. port .. ' HTTP/1.1\r\n' ..
'Host: ascdn.baidu.com\r\n' ..
'Proxy-Connection: Keep-Alive\r\n'..
'X-T5-Auth: 1951164069\r\n' ..
'User-Agent: okhttp/3.11.0 SP-engine/2.71.0 Dalvik/2.1.0 (Linux; U; Android 9; HMA-AL00 Build/PQ3B.190801.002) baiduboxapp/13.33.0.11 (Baidu; P1 9)\r\n\r\n'
ctx_write(ctx, res)
flags = kHttpHeaderSent
end
return false
end
function wa_lua_on_read_cb(ctx, buf)
ctx_debug('wa_lua_on_read_cb')
local uuid = ctx_uuid(ctx)
if flags == kHttpHeaderSent then
flags = kHttpHeaderRecived
return HANDSHAKE, nil
end
return DIRECT, buf
end
function wa_lua_on_write_cb(ctx, buf)
ctx_debug('wa_lua_on_write_cb')
return DIRECT, buf
end
function wa_lua_on_close_cb(ctx)
ctx_debug('wa_lua_on_close_cb')
local uuid = ctx_uuid(ctx)
flags = nil
ctx_free(ctx)
return SUCCESS
end
点右上角的+号,添加lua脚本,填入 https://raw.githubusercontent.com/imPrk0/connect-to-baidu-server-proxy/refs/heads/main/Shadowrocket.lua
点击这个远程lua文件,选择下载,得到一个本地lua文件(注意,你得到的文件名中的数字可能和我不一样),并选中它。
然后返回上一个界面,最终结果如下:
最后点击右上角的done就可以使用了
如果你的卡对百度应用(定向)免费,那可以直接用这个免。
如何在Clash上使用百度直连
众所周知,Clash是支持header的代理工具之一,此时我们只需要添加http代理:- name: 南京电信
server: 180.101.50.208
type: http
port: 443
headers:
Host: "ascdn.baidu.com"
X-T5-Auth: "1951164069"
User-Agent: "okhttp/3.11.0 SP-engine/2.71.0 Dalvik/2.1.0 (Linux; U; Android 9; HMA-AL00 Build/PQ3B.190801.002) baiduboxapp/13.33.0.11 (Baidu; P1 9)"如开头所说,我们可以修改上面的180.101.50.208为cloudnproxy.baidu.com或任意该域名解析出的IP,这样就能得到这些节点:
上面有些参数可能有些佬看不懂,没事。这是因为百度直连最近升级了验证程序,目前需要验证UA(useragent中包含“baiduboxapp”即可),如果你用tiny做前置代理,后置v2。v2的端口必须为80或443。 本帖最后由 xiaoguiday 于 2025-8-26 22:45 编辑
小火箭打开网页提示错误:Internal Error: Missing Template ERR_INVALID_URL
我二次修改了一下配置,可以用了
讲实话看到这个标题的第一眼:百度这种国内网址大部分代理工具大家应该都是直连规则啊,怎么还要配置。打开以后发现不是一回事 ethanhooks 发表于 2025-8-26 21:38
小火箭打开网页提示错误:Internal Error: Missing Template ERR_INVALID_URL
我二次修改了一下配置,可以 ...
老哥稳! 优秀{tieba14} 百度直连一直这个样子没变吧 看看 学习一下 学习一下 学习一下 学习一下多谢大佬 厉害👍学习一下~ 过来学习学习 用上去了 但是为啥我这用不了啊
学习一下~ 看看学学 看看内容 谢谢大侠分享 学习一下 感谢感谢感谢感谢感谢 看看怎么玩 看看呢 看看教学