|
|
3 дней назад | |
|---|---|---|
| scripts | 3 дней назад | |
| .gitignore | 4 дней назад | |
| README.md | 3 дней назад | |
| __init__.py | 1 неделя назад | |
| __main__.py | 1 неделя назад | |
| cli.py | 3 дней назад | |
| config.json | 3 дней назад | |
| config.jsonbak | 6 дней назад | |
| config.py | 3 дней назад | |
| demo-config copy.json | 1 неделя назад | |
| protocol.py | 1 неделя назад | |
| relay_client.py | 4 дней назад | |
| relay_server.py | 4 дней назад | |
| scheduler.py | 4 дней назад | |
| socks_edge.py | 3 дней назад | |
| transparent_edge.py | 3 дней назад |
mynetspeeder 现在支持 透明接管当前服务器的 direct TCP 出站。
目标场景:
sing-box 的 hy2 19887/19888 入站使用外网sing-box 出站仍然保持 directmynetspeeder 在系统层透明接管这些 direct TCP 流量relay:子节点 VPS 中继edge:主 VPS 透明接管 direct TCP 出站probe:查看节点探测与在线状态OUTPUT 链中的 TCP 连接ESTABLISHED,RELATED 回包,避免本机入站/回包再次被 OUTPUT 重定向到 19080 形成自环示例 /home/mynetspeeder/config.json:
{
"strategy": "top3",
"redundancy": 3,
"direct_redundancy": 2,
"direct_max_redundancy": 3,
"direct_redundancy_v6": 3,
"tcp_warmup_bytes": 1048576,
"tcp_loser_grace_ms": 1500,
"probe_interval": 15,
"relays": [
{"name": "hk1", "host": "1.2.3.4", "port": 9009, "token": "demo", "weight": 100},
{"name": "jp1", "host": "5.6.7.8", "port": 9009, "token": "demo", "weight": 95}
]
}
说明:
relays 可以为空,空时只走当前主 VPS 直接出站把项目目录复制到子节点后,直接执行:
sudo /home/mynetspeeder/scripts/install.sh /opt/mynetspeeder
安装完成后可直接使用全局命令:
mynetspeeder --help
子节点启动 relay:
sudo /opt/mynetspeeder/scripts/start-relay.sh 你的token
子节点停止 relay:
sudo /opt/mynetspeeder/scripts/stop-relay.sh
python3 -m mynetspeeder relay --listen-port 9009 --token demo
准备配置:
cp /home/mynetspeeder/demo-config.json /home/mynetspeeder/config.json
启动透明接管:
sudo /home/mynetspeeder/scripts/start-transparent.sh --kernel auto --capture-uid <sing-box运行UID> /home/mynetspeeder/config.json
不指定 --capture-uid 时,默认接管所有用户发起的流量:
sudo /home/mynetspeeder/scripts/start-transparent.sh /home/mynetspeeder/config.json
停止透明接管:
sudo /home/mynetspeeder/scripts/stop-transparent.sh
查看节点状态:
python3 -m mynetspeeder probe --config /home/mynetspeeder/config.json --once
汇总透明模式胜率:
python3 -m mynetspeeder summary --log-file /var/log/mynetspeeder-edge.log
当前版本新增 --kernel auto|20|24:
auto:默认,根据系统自动判断20:更保守的兼容模式24:更积极的 Ubuntu 24 优化模式Ubuntu 24 模式会额外:
iptables 后端类型(nf_tables / legacy)happy eyeballs 建连参数如需手动指定:
sudo /home/mynetspeeder/scripts/start-transparent.sh --kernel 24 --capture-uid $(id -u singbox) /home/mynetspeeder/config.json
配置文件还支持:
{
"kernel_mode": "auto",
"direct_open_timeout": 6.0,
"relay_open_timeout": 6.0,
"tcp_connect_happy_eyeballs_delay": 0.25,
"relay_reconnect_delay": 3.0,
"relay_tcp_nodelay": true
}
当前版本新增更激进的主节点 direct 冗余能力,默认保持 relay 逻辑不变:
direct_redundancy:默认 direct 并发连接数direct_max_redundancy:当某目标或某地址族近期更偏向 relay 胜出时,允许自动放大到的最大 direct 并发数direct_redundancy_v4:可单独指定 IPv4 目标的 direct 并发数direct_redundancy_v6:可单独指定 IPv6 目标的 direct 并发数示例:
{
"direct_redundancy": 2,
"direct_max_redundancy": 3,
"direct_redundancy_v4": 2,
"direct_redundancy_v6": 3
}
说明:
direct 连接direct 副本会按现有 tcp_loser_grace_ms 延迟关闭direct_max_redundancy透明模式启动后:
sing-box 的 direct 出站配置iptables 会把系统的 TCP 出站重定向到 mynetspeeder edgeedge 会同时尝试:
tcp_warmup_bytes 的上行数据会更积极地并发发给所有候选路径tcp_loser_grace_ms 毫秒,再关闭start-transparent.sh 会自动:
只接管指定 UID 的 TCP 出站,避免影响整机连接
创建运行用户 mynetspeeder
以该用户启动 edge
自动排除:
127.0.0.0/8mynetspeeder 自己发起的连接接管全局 OUTPUT 的 TCP 出站流量
iptables 规则是全局级别,除 mynetspeeder 自己和 relay IP 外,其他本机 TCP 流量也会被接管当前服务器已将 sing-box 改为 singbox 用户运行,因此透明接管请直接使用:
sudo /home/mynetspeeder/scripts/start-transparent.sh --capture-uid $(id -u singbox) /home/mynetspeeder/config.json
停止:
sudo /home/mynetspeeder/scripts/stop-transparent.sh
当前版本新增:
iptables + ip6tables 的 TCP REDIRECT 规则,UDP 仅在显式开启时生效说明:
当前版本已支持:
singbox 用户的透明 TCP 接管direct推荐启动命令:
sudo /home/mynetspeeder/scripts/start-transparent.sh --capture-uid 996 /home/mynetspeeder/config.json
当前已发现 UDP 透明接管在部分环境下会产生自环(例如日志里目标变成 127.0.0.1:19080)。
因此当前默认:
如果你要实验 UDP,再显式加:
sudo /home/mynetspeeder/scripts/start-transparent.sh --enable-udp --capture-uid 996 /home/mynetspeeder/config.json
当前版本新增更激进的 UDP 冗余参数:
{
"udp_redundancy": 1,
"udp_direct_redundancy": 2,
"udp_always_broadcast": true,
"udp_copy_interval_ms": 8
}
说明:
udp_redundancy:每个 UDP 包额外重复发送的次数udp_direct_redundancy:本地 direct UDP 并发副本数udp_always_broadcast:即使已有 winner,后续包仍持续并发发往所有可用路径udp_copy_interval_ms:多副本之间的间隔,单位毫秒默认策略更偏向抗丢包和稳态可用,而不是节省流量。
如果你希望同时启用本机显式 SOCKS5 出站入口,只需要在 config.json 增加端口:
{
"socks_host": "127.0.0.1",
"socks_port": 19180
}
说明:
socks_port 为 0 或不填:不启动socks_port 大于 0:start-transparent.sh 会自动一并启动sing-box 把指定 UDP/QUIC 流量显式交给 mynetspeeder