本文介绍sing-box(或mihomo)搭配mosdns的fakeip科学方案,sing-box(或mihomo)实现全家设备透明代理,mosdns实现国内外精确分流一、基础知识
此方案的分流策略是DNS分流,或者说域名分流,第一部分先介绍下DNS解析的基础知识,本文只从实际操作方面做简略的非专业介绍,详细的进阶知识请翻阅skk大佬博客
https://blog.skk.moe/post/what-happend-to-dns-in-proxy/
首先,当你在浏览器中输入 www.google.com 打开后,浏览器实际需要通过IP与google服务器连接,进而首先需要知道 www.google.com 的ip地址,这就引出了DNS解析这一概念
浏览器通过操作系统向本地设置的DNS服务器(例如mosdns)发起解析请求,mosdns返回了www.google.com 的IP(如172.217.31.132),下一步浏览器向172.217.31.132发起请求
传统的CNIP分流法,通过在主路由中添加中国IP列表,判断IP是否属于CN列表进行分流,如刚才的172.217.31.13 ...
RouterOS
未读本文介绍如何在RouterOS中配置wireguard,包括两个ROS之间通过wireguard异地组网(1)最常用的ros中的wireguard作为服务端,手机等设备作为客户端通过wireguard接入家庭局域网
添加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地址(段) ...
RouterOS
未读本文介绍如何在RouterOS中使用脚本完成动态域名解析DDNS先祭出ddns脚本,仅提供解析至cf的脚本。自行准备好“你的DDNS token”“你的ZONEID””你的RECORD6ID“或”RECORD4ID“以及域名(支持ddns泛解析)。文末提供”ZONEID“、”RECORD4ID”等所需参数获取教程。
此模板为先更新IPV6记录,等待300s后更新IPV4记录
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391 ...
通过部署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,f ...
本文介绍家庭宽带环境下,使用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
未读特别注意!!配置动态源地址伪装时若未限制出接口,则回流已自动生效,无需参考本文设置本文介绍动态源地址伪装时限制出接口为pppoe-out1的情况下,如何在动态公网IP环境中,为ROS配置域名的本地网络回流。以动态公网IPv6为例,IPv4同理注:先做好域名的DDNS
在/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
添加来自内网(bridge1接口)的端口映射注:Dst.Address List选择第一步添加的域名,转发端口依然是8443
1 ...
RouterOS
未读本教程介绍使用queue tree开启ros的流控功能
介绍两种流量整形,第一种适用于家庭普通用户,第二种适用经常有于BT PT等大流量应用占用带宽的用户
1、为DNS、web等小包流量设置更高优先级,提高网页响应速度,适合一般用户使用
添加queue type
12345678910/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_ ...
RouterOS
未读本文介绍使用FakeIP分流法,实现局域网内设备透明代理中,主路由部分的设置sing-box及mosdns的使用方法不在本文讨论范围内
介绍3种将FakeIP流量导入sing-box的方案
默认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
1.使用mangle打标签的方式IPv4部分
添加sing-box-v4路由表
1/routing table add name=sing-box-v4 fib
地址列表中新增proxy_ipv4列表,填入fakeip网段、tg v4网段、奈菲v4网段
123456789101112131415161718192021222324252627282930313233343536373839404142/ip firewall address-list add list=proxy_ipv4 address=28 ...
RouterOS
未读本文介绍RouterOS如何开启IPV6以NAT6模式为例,ipv6内网网段默认为dc00::/64,Routeros bridge1的IPv6内网地址为dc00::1111/64。桥接接口bridge1、拨号接口pppoe-out1名称若不同则自行替换
开启ipv6
1/ipv6 settings set disable-ipv6=no
获取ipv6前缀
1/ipv6 dhcp-client add interface=pppoe-out1 pool-name=dhcpv6-gua-pool1 pool-prefix-length=60 request=prefix
添加局域网ULA地址池
1/ipv6 pool add name=dhcpv6-ula-pool1 prefix=dc00::/64 prefix-length=64
使用wan网卡的MAC地址计算标准EUI-64地址(非必须,简单操作则在下一步中输入::1即可)
https://eui64-calc.princelle.org/
使用上面计算得到的后缀(例如::BF24:12FF: ...
RouterOS
未读本文介绍RouterOS拨号、配置DHCP服务器、配置DNS、开启IPv4防火墙等通网的基础配置。桥接接口bridge1、拨号接口pppoe-out1名称若不同则自行替换
手动配置pppoe-out1接口拨号,User填入宽带账号,Password填入宽带密码。如果不使用运营商提供的DNS可不勾选User Peed DNS。注:接口前出现“R”代表拨号成功。拨号成功后建议先禁用,待防火墙配置完毕后再开启!
配置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 add address=10.0.0.0/2 ...
RouterOS
未读本文介绍RouterOS初始化后的一些基础配置。第一次进入RouterOS先恢复原厂设置,Winbox以mac地址登录
恢复出厂设置
1/system reset-configuration
确认接口,区分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
注:如果双网口,可不建bridge,直接使用lan口,并接入物理交换机。但为方便管理,并为后期vlan等虚拟接口并入bridge做准备,建议建立bridge
为bridge1设置IP。本教程以bridge1为例,即ros本机ip为10.0.0.1/24
1/ip address add interface=bridge1 address=10.0.0. ...












