Repository navigation
新增dns协议隧道、新增p2p模式
DNS 隧道 (-m dns)
直连模式 (默认):客户端直接把查询发到服务端地址。
vps执行: ./buut -m dns -l 0.0.0.0:53 -k 密码 # Linux 绑 53 需 root, 也可高位端口
本机执行: ./buut -m dns -s vps:53 -k 密码 # socks5 与其它反向模式一样监听在 vps:10086中继模式 (--relay_server):客户端把查询发给公共递归解析器 (如 8.8.8.8),解析器递归
解析到你的权威服务器 —— 流量路径 客户端 <-> 解析器 <-> 服务端,两端没有任何直接连接,
适合服务端 IP 被封但域名解析可用的场景;-s 填隧道域名 (NS 指向权威服务端)。
# 前提 (一次性域名准备,在域名 DNS 服务商处配置):
# 1. 加 NS 记录: gw.example.com NS ns1.example.com
# 2. 加 A 记录: ns1.example.com A <vps_ip>
# 3. 域名不要启用 DNSSEC (无 DS 记录), 否则解析器校验失败返回 SERVFAIL
vps执行: ./buut -m dns -l 0.0.0.0:53 -k 密码 # 权威服务端, 必须 UDP 53
本机执行: ./buut -m dns -s gw.example.com --relay_server 8.8.8.8 -k 密码
# 正向模式同理,两端都加 -F (本机可加 -p 1080)P2P 模式 (-m p2p)
基于公钥身份的 P2P 隧道 (QUIC 栈):两端都在 NAT 内网时自动打洞升级直连,
打洞失败 (如对称 NAT) 退化为 relay 中继。
应用场景为
1、没有vps服务器两边都是nat内网的情况,
2、有vps 但是ip可能被封的情况。
连接生命周期:-s 地址可达时直接 UDP 直连;不可达时经 relay 中继,同时并行打洞,
成功后 QUIC 路径迁移为直连。
vps执行: ./buut -m p2p -l 4455 -k 密码
内网机器执行: ./buut -m p2p -s vps:4455 -k 密码
hacker连接socks5 vps:10086两端都在 NAT 内网时同样可用 (互连双方均无法被直接访问):任意一方当服务端 (-l),
另一方 (-s) 经 relay 完成握手与打洞后直连;对称 NAT 下保持 relay 中转。
注意 由于p2p模式可以不用指定正确的远程地址 校验是依赖于key生成公钥来实现,所以记得给每个客户端使用不同的key。