Есть простой конфиг:
"outbounds": [
{
"tag": "some-vless",
"protocol": "vless",
"settings": {
"vnext": [
{
"address": "some-name.tld.org",
"port": 443,
"users": [
...
После запуска xray-core идёт за адресом имени some-name.tld.org в системный DNS. Для Linux это то, что написано в /etc/resolv.conf, для Windows вызов какого-то API. Если системный DNS по какой-то причине недоступен, то xray-core не может подняться. Как сделать, что бы он ресолвил адреса outbound через сервера, которые я укажу?
Из разных инструкций в интернете, в том числе и здесь, а так же советов ИИшенок попробовал такое:
"outbounds": [
{
"tag": "direct",
"protocol": "freedom",
"settings": {
"domainStrategy": "AsIs",
"redirect": "",
"noises": []
}
},
...
{
"tag": "resolver01",
"protocol": "dns",
"settings": {
"network": "udp",
"address": "1.1.1.1",
"port": 53,
"nonIPQuery": "drop",
"blockTypes": []
}
},
...
"routing": {
"domainStrategy": "IPIfNonMatch",
"rules": [
...
{
"type": "field",
"port": "53",
"network": "UDP",
"outboundTag": "resolver01"
},
...
{
"type": "field",
"inboundTag": [
"dns_inbound"
],
"outboundTag": "direct"
},
...
"dns": {
"servers": [
"1.0.0.1",
"1.1.1.1",
"8.8.4.4",
"8.8.8.8",
"9.9.9.9"
],
"queryStrategy": "UseIPv4",
"tag": "dns_inbound"
},
Но нет, не помогает. Проверяю очень просто – останавливаю системный DNS, xray-core становится бесполезным с руганью:
WARNING - XRAY: app/observatory: the outbound some-vless is dead: GET request failed:app/observatory: outbound failed to relay connection > Get "https://www.gstatic.com/generate_204": io: read/write on closed pipewith outbound handler report underlying connection failed > app/observatory: underlying connection error > app/proxyman/outbound: failed to process outbound traffic > proxy/vless/outbound: failed to find an available destination > common/retry: [dial tcp: lookup some-name.tld.org on [::1]:53: read udp [::1]:40333->[::1]:53: read: connection refused dial tcp: lookup some-name.tld.org on [::1]:53: read udp [::1]:50115->[::1]:53: read: connection refused dial tcp: lookup some-name.tld.org on [::1]:53: read udp [::1]:50297->[::1]:53: read: connection refused dial tcp: lookup some-name.tld.org on [::1]:53: read udp [::1]:45542->[::1]:53: read: connection refused dial tcp: lookup some-name.tld.org on [::1]:53: read udp [::1]:39453->[::1]:53: read: connection refused] > common/retry: all retry attempts failed