本文介绍 sing-box(或 mihomo)搭配 mosdns 的 fakeip 方案,实现全家设备透明代理和国内外精确分流
[TOC]
一、基础知识此方案的分流策略是 DNS 分流(域名分流)。本文从实际操作方面做简略介绍,详细进阶知识请参考 skk 大佬的博客。
DNS 解析基本原理
在浏览器输入 www.google.com 后,浏览器需要知道其 IP 地址才能建立连接
操作系统向本地 DNS 服务器(如 mosdns)发起解析请求
mosdns 返回 www.google.com 的 IP(如 172.217.31.132)
浏览器向该 IP 发起请求并建立连接
传统 CNIP 分流法在主路由中添加中国 IP 列表:
IP 不属于 CN 列表 → 流量导向代理软件
IP 属于 CN 列表 → 通过主路由 WAN 口直连
二、FakeIP 分流的流量走向工作原理FakeIP 分流法在 DNS 解析阶段 将 Google 等国外域名解析为不存在于公网的虚假 IP,常用网段:
198.18.0.0/18
28.0.0.0/8
完整流量路径12345678910111 ...
RouterOS
未读本文介绍如何在RouterOS中配置wireguard,包括两个ROS之间通过wireguard异地组网1. 客户端接入家庭局域网
添加wireguard。名字(Name)及监听端口(Listen Port)可自定义
为wireguard接口配置ip。网段不可与现有局域网网段相同。以 10.20.30.1/24 为例
添加客户端(peer)配置
双击建好的peer1,拉到最下面,使用客户端(如ios的wireguard)扫描二维码导入配置
客户端点击 编辑,对端填入”ddns域名+wireguard监听的端口(即第一步创建时的Listen Port)”。如果想要手机所有流量均通过wireguard回家,则”路由的IP地址(段)”使用默认值”0.0.0.0/0, ::/0”,点击”存储“,开启wireguard即可
如果使用fakeip方案,可以选择仅出国及访问局域网流量通过wireguard到达家里的ros再出去。前提客户端的DNS使用mosdns,将”路由的IP地址(段)”改为wireguard的IP段,fakeip段、家里局域网段(v4+v6)、TG的 ...
RouterOS
未读本文介绍如何在RouterOS中使用脚本完成动态域名解析DDNS1. Cloudflare DDNS 脚本
先祭出ddns脚本,仅提供解析至cf的脚本。自行准备好“你的DDNS token”“你的ZONEID””你的RECORD6ID“或”RECORD4ID“以及域名(支持ddns泛解析)。文末提供”ZONEID“、”RECORD4ID”等所需参数获取教程。
1.1 完整脚本模板
此模板为先更新IPV6记录,等待300s后更新IPV4记录
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128 ...
一、通过部署tailscale,内网穿透到家中,使用家里的mosdns分流。国内流量走客户端直连,国外流量(fakeip)通过tailscale回家后再通过家里的singbox走代理。适用于无公网ip无法使用hy2回家的小朋友~pve中使用vm虚拟机(推荐debian12)部署tailscale1curl -fsSL https://tailscale.com/install.sh | sh
开启流量转发
使用nano编辑/etc/sysctl.conf文件
1sudo nano /etc/sysctl.conf
找到net.ipv4.ip_forward=1去掉#注释,修改为
1net.ipv4.ip_forward=1
使修改生效
1sysctl --system
先关闭tailscale1tailscale down
加参数启动tailscale自行修改示例中的内网ip段和fakeip段,添加后tailscale将允许上述流量通过
1tailscale up --advertise-routes=dc00::/64,10.0.0.0/24, ...
本文介绍家庭宽带环境下,使用traefik部署反向代理,实现自动申请证书、自动续签、反代局域网内服务等功能注:1.目前traefik仅能通过docker部署 2. 后附unraid使用的traefik模板
以下教程以在pve的lxc中安装为例(一)lxc环境准备
pve中以ubuntu22.04或debian12为模板,创建lxc
修改/etc/ssh/sshd_config,找到并改为 PermitRootLogin yes ,允许root登录
ssh登录lxc,更换国内源(有科学环境可不用换源)
123456bash <(curl -sSL https://linuxmirrors.cn/main.sh) \ --source mirrors.tuna.tsinghua.edu.cn \ --web-protocol https \ --backup true \ --ignore-backup-tips \ --updata-software false
更新软件包,安装必要依赖(若弹出选择框直接回 ...
网络部署
未读本文介绍家庭宽带及VPS中部署caddy,实现反向代理、自动申请并续签证书、http自动跳转https等功能,可通过docker或裸跑二进制的方式部署① 家庭宽带中通过docker部署由于家庭宽带80 443端口被封,无法通过DNS验证的方式申请证书,需配合cloudflare DNS token申请证书,故只推荐通过docker安装使用docker官方脚本一键安装docker,已安装docker的跳过1curl -fsSL https://get.docker.com | bash -s docker
可选用阿里镜像仓库加速安装1curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun
创建好容器所需文件夹及文件123mkdir -p /root/docker/caddy/datatouch /root/docker/caddy/data/caddyfile.txttouch /root/docker/caddy/compose.yml
compose.yml内容如下,使用host模式会自动占用8080和55 ...
RouterOS
未读特别注意!!配置源地址伪装时若未限制出接口,则回流已自动生效,无需参考本文设置1. 适用条件本文介绍动态源地址伪装时限制出接口为pppoe-out1的情况下,如何在动态公网IP环境中,为ROS配置域名的本地网络回流。以动态公网IPv6为例,IPv4同理
注:先做好域名的DDNS
2. 公网入口映射
在/ipv6/firewall/address-list中添加域名(任意一个能解析到ros的域名均可),以 ros.11111.xyz 为例
添加来自公网(pppoe-out1接口)的端口映射注:dc00::6666为内网反向代理服务(caddy)的ip,8443为转发的端口
1/ipv6 firewall nat add action=dst-nat chain=dstnat dst-port=8443 in-interface=pppoe-out1 protocol=tcp to-address=dc00::6666/128 to-ports=8443
3. 内网回流映射
添加来自内网(bridge1接口)的端口映射注:Dst.Address Lis ...
使用 queue tree 配置 RouterOS 流控
介绍两种流量整形,第一种适用于家庭普通用户,第二种适用经常有于BT PT等大流量应用占用带宽的用户
1. 低延迟优先级流控1.1 添加 queue type12345678910/queue type add fq-codel-flows=128 fq-codel-interval=30ms fq-codel-limit=128 fq-codel-memlimit=4096.0KiB fq-codel-quantum=512 fq-codel-target=3ms kind=fq-codel name=Fq_Codel_Dns_Up/queue type add fq-codel-flows=256 fq-codel-interval=30ms fq-codel-limit=128 fq-codel-memlimit=8.0MiB fq-codel-quantum=512 fq-codel-target=3ms kind=fq-codel name=Fq_Codel_Dns_Down/queue type add fq-cod ...
RouterOS
未读本文介绍使用FakeIP分流法,实现局域网内设备透明代理中,主路由部分的设置sing-box及mosdns的使用方法不在本文讨论范围内
1. 三种方案总览
默认sing-box的ipv4为10.0.0.2,ipv6为dc00::2222,Fake v4网段为28.0.0.0/8,Fake v6网段为f2b0::/18。特别注意:ros开启fasttrack,mangle会失效,只能采取route的方式路由fakeip
小tips:添加完下方的proxy_ipv4和proxy_ipv6列表后,在源地址伪装中排除掉目标地址是代理列表的IP,即可实现在代理程序(sing-box或mihomo)中正确显示连接的源IP
1.1 方案一:使用 mangle 打标签的方式IPv4 部分
添加sing-box-v4路由表
1/routing table add name=sing-box-v4 fib
地址列表中新增proxy_ipv4列表,填入fakeip网段、tg v4网段、奈菲v4网段
12345678910111213141516171819202122232425 ...
RouterOS
未读本文介绍RouterOS如何开启IPV6以NAT6模式为例,ipv6内网网段默认为dc00::/64,Routeros bridge1的IPv6内网地址为dc00::1111/64。桥接接口bridge1、拨号接口pppoe-out1名称若不同则自行替换
1. 开启 IPv61/ipv6 settings set disable-ipv6=no
2. 获取 IPv6 前缀1/ipv6 dhcp-client add interface=pppoe-out1 pool-name=dhcpv6-gua-pool1 pool-prefix-length=60 request=prefix
3. 添加 ULA 地址池1/ipv6 pool add name=dhcpv6-ula-pool1 prefix=dc00::/64 prefix-length=64
4. 计算并配置地址使用wan网卡的MAC地址计算标准EUI-64地址(非必须,简单操作则在下一步中输入::1即可)https://eui64-calc.princelle.org/
使用上面计算得到的后缀(例如::B ...
RouterOS
未读本文介绍RouterOS拨号、配置DHCP服务器、配置DNS、开启IPv4防火墙等通网的基础配置。桥接接口bridge1、拨号接口pppoe-out1名称若不同则自行替换1. PPPoE 拨号手动配置pppoe-out1接口拨号,User填入宽带账号,Password填入宽带密码。如果不使用运营商提供的DNS可不勾选User Peed DNS。注:接口前出现“R”代表拨号成功。拨号成功后建议先禁用,待防火墙配置完毕后再开启!
2. DHCP 服务器配置DHCP服务器,DHCP IP范围为10.0.0.100-10.0.0.250,网关和DNS默认为ROS。如果希望全局配置透明代理,dns-server可配置为mosdns
123/ip pool add name=dhcpv4-pool1 ranges=10.0.0.100-10.0.0.250/ip dhcp-server add name=dhcpv4-server1 interface=bridge1 address-pool=dhcpv4-pool1 lease-time=1d/ip dhcp-server network ad ...
RouterOS
未读本文介绍RouterOS初始化后的一些基础配置。第一次进入RouterOS先恢复原厂设置,Winbox以mac地址登录1. 恢复出厂设置1/system reset-configuration
2. 接口命名与桥接确认接口,区分lan,wan,更改名称为方便以后操作(建议手动操作)
12/interface set ether1 name=lan/interface set ether2 name=wan
建立bridge1,并将所有lan接口添加进桥
12/interface bridge add name=bridge1/interface bridge port add bridge=bridge1 interface=lan
注:如果双网口,且不打算用ros的容器,可不建bridge,直接使用lan口,并接入物理交换机
3. 本机地址为bridge1设置IP。本教程以bridge1为例,即ros本机ip为10.0.0.1/24
1/ip address add interface=bridge1 address=10.0.0.1/24 network=10.0. ...












