在测试和输入此命令期间
curl -x socks5://<user>:<pass>@<ip>:<port> ifconfig.co
它返回一条错误消息
Can't complete SOCKS5 connection to <ip address v6>
当我们禁用 ipv6 时,curl 测试就可以工作,但这不是正确的方法。尝试应用本教程但仍然没有成功
http://www.inet.no/dante/doc/latest/config/ipv6.html
=================================================== ===========
但丁配置文件
logoutput: /var/log/socks.log
internal: enp0s3 port = 1080
external: enp0s3
clientmethod: none
socksmethod: none
user.privileged: root
user.notprivileged: nobody
client pass {
from: 0.0.0.0/0 to: 0.0.0.0/0
log: error connect disconnect
}
client block {
from: 0.0.0.0/0 to: 0.0.0.0/0
log: connect error
}
socks pass {
from: 0.0.0.0/0 to: 0.0.0.0/0
log: error connect disconnect
}
socks block {
from: 0.0.0.0/0 to: 0.0.0.0/0
log: connect error
}
答案1
来自https://www.inet.no/dante/doc/1.4.x/config/ipv6.html
仅当使用接口名称(例如,外部:eth0)或主机名(例如,内部:dante-int)在 sockd.conf 中指定 Dante 的内部或外部接口地址时,才需要在仅 IPv4 使用场景中对 sockd.conf 进行更改。 example.com),这些接口名或主机名现在或将来可能将包含 IPv6 地址。
如果内部接口是通过其名称(而不是其 IP 地址之一)指定的,Dante 服务器将默认使用在内部接口上找到的所有地址。如果接口有一个或多个 IPv6 地址,这将导致 Dante 服务器也使用 IPv6 地址。
检查接口是否enp0s3
已分配 ipv6 地址,如果是,则 dante 正在尝试使用它。考虑到这一点,enp03s
用 ipv4 地址替换 应该可以解决这个问题。
例子:
internal: 10.2.4.6 port = 1080
答案2
要使 Dante 服务器接受 IPv4 和 IPv6 地址上的请求,必须指定具有两种类型地址的网络接口作为内部 sockd.conf 关键字的参数,或者使用不同的地址多次指定该关键字。例如:
#accept SOCKS requests on 10.0.0.1 (IPv4) and fc00::01 (IPv6)
internal: 10.0.0.1 port = 1080
internal: fc00::1 port = 1080
Dante 的配置文件还需要两种地址类型的规则。
#accept connections from any IPv4 client
client pass {
from: 0.0.0.0/0 to: 0.0.0.0/0
}
以上是 IPv4 地址规则的示例,该规则将允许任何 IPv4 客户端连接到 Dante 服务器。 IPv6 的等效规则如下所示:
#accept connections from any IPv6 client
client pass {
from: ::/0 to: ::/0
}
上述两条规则仅匹配一种地址类型,第一个仅匹配 IPv4,第二个仅匹配 IPv6。要添加接受任何地址(无论地址族如何)的规则,可以使用以下特殊的 Dante 特定地址语法 (0/0):
#accept connections from any client
client pass {
from: 0/0 to: 0/0
}