sing-box的tun模式配置方法
sing-box配置(客户端用tun模式入站)
1 | "inbounds": [ |
设置一个名为 “tun-in” 的 TUN (隧道) 入站网络接口。解释一下每个参数的含义:
"type": "tun"
: 指定了入站接口的类型是 TUN 隧道接口。TUN 接口工作在 OSI 模型的第三层(网络层),处理 IP 数据包。它创建了一个虚拟的网络接口,可以用来路由网络流量。"tag": "tun-in"
: 这是这个入站配置的唯一标识符或名称。您可以在配置的其他部分使用这个标签来引用这个入站。"interface_name": ""
: 这个字段目前是空的,意味着系统会自动为这个 TUN 接口分配一个名称(例如,tun0
,tun1
等)。如果您有特定的偏好,可以在这里指定一个名称。"address": ["172.18.0.1/30", "fdfe:dcba:9876::1/126"]
: 定义了分配给这个 TUN 接口的 IP 地址。"172.18.0.1/30"
是一个 IPv4 地址,带有 /30 的子网掩码。这意味着这个子网中总共有 4 个可能的 IP 地址,其中172.18.0.1
被分配给了这个 TUN 接口。/30
表明网络前缀占用了 30 位,剩下 2 位用于主机地址(但在点对点的 TUN 连接中,通常只使用两个地址,分别分配给隧道的两端)。"fdfe:dcba:9876::1/126"
是一个 IPv6 地址,带有 /126 的前缀。这定义了一个非常小的 IPv6 子网。
"mtu": 9000
: 设置了该 TUN 接口的最大传输单元 (MTU) 为 9000 字节。MTU 是指在单个网络层事务中可以传输的最大协议数据单元 (PDU) 的大小。较大的 MTU 可能提高吞吐量,但需要路径中的所有设备都支持。"auto_route": true
: 当设置为true
时,系统将自动配置路由规则,将目标地址是隧道另一端的流量通过这个 TUN 接口进行转发。"strict_route": true
: 当启用此选项时,会更严格地执行与此 TUN 接口相关的路由规则。它可以防止流量意外地通过其他路由传输。"endpoint_independent_nat": false
: 这个设置控制了从此 TUN 接口发起的连接的网络地址转换 (NAT) 行为。当设置为false
时,NAT 映射通常取决于源 IP 地址和端口以及目标 IP 地址和端口。"stack": "mixed"
: 表明这个 TUN 接口将同时支持 IPv4 和 IPv6 流量。
总而言之,这段配置创建了一个可以处理 IPv4 和 IPv6 流量的虚拟网络接口,为其分配了特定的 IP 地址,设置了一个较大的 MTU,并配置了通过该隧道传输的流量的自动和严格路由。endpoint_independent_nat
设置为 false
表明,如果后续涉及到 NAT,则会采用更传统的 NAT 行为。
Tun模式需要开启ip转发
1 | echo 1 > /proc/sys/net/ipv4/ip_forward |
终止占用端口的进程
如果sing-box启动失败,提示有端口被占用,查看被占用端口的进程号,kill进程号(pid)
1 | ss -tulnp | grep <端口号> |
删除旧的虚拟网卡
1 | #列出tun网卡 |
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 马斯克的赛博空间!
评论