Dante 能听到 IPv6 客户端,却仍然拒绝它们
在添加 IPv6 客户端时,同时检查 Dante 的监听地址选择以及能识别地址族的访问规则。
Dante 的接口名称可能同时展开为 IPv4 和 IPv6 地址。但这并不会让现有的仅限 IPv4 的访问规则匹配 IPv6 客户端。
这是一种常见的半成品双栈改造:SOCKS 监听器在 IPv6 地址上变得可达,但规则仍然只描述 IPv4 的源和目的范围。
分别检查地址和规则
Dante 可以为监听地址使用重复的 internal 条目或合适的接口名称。实际地址取决于服务配置它们时接口上可用的地址。
然后检查客户端规则和 SOCKS 规则。像 0.0.0.0/0 这样的地址表达式是 IPv4,而不是适用于所有地址族的通用写法。Dante 记录了与地址族无关的形式,但当只应允许某个特定客户端子网时,不要使用宽泛的形式。
在修改地址族的同时保留身份验证和目的地限制。添加 IPv6 不应意外移除对 IPv4 用户有效的限制。
启动时机也可能有影响。如果地址是在服务启动后才分配的,请检查 Dante 实际绑定到了什么,而不是假定接口名称总是包含后来才出现的地址。
最后,IPv6 客户端连接和 IPv6 网站连接是两项独立的要求。目标客户端可能通过一种地址族连接,而代理通过另一种地址族访问目的地。要诊断失败连接的地址族,而不只是看机器是否被称为双栈。