Всем привет.
Есть домашний сервер, решил на нём поднять xray, а уже к нему подключаться с роутера по wireguard.
Пытаюсь настроить обход блокировок по следующей схеме:
- xray работает как dns сервер, и для нужных доменов возвращает ip адреса из подсети 10.30.0.0
- роутер подключен к xray по wireguard, и пересылает запросы к 10.30.0.0 в этот интерфейс wg
- xray резолвит fake ip адреса в реальные домены, и делает запросы по правилам роутинга
Пункты 1-2 работают, а вот с пунктом 3 довести до ума не получается: xray не резолвит адреса обратно, и пытается делать запросы по ip адресам вида 10.30.100.60, из-за чего всё ломается.
config.json
{
“log”: {
“loglevel”: “info”
},
“dns”: {
“servers”: [
// Это мой домашний adguard home
{
“address”: “192.168.1.12”,
“port”: 6053
},
// Для примера несколько правил. DNS сервер работает отлично
{
“address”: “fakedns”,
“domains”: [
“domain:youtube.ru”,
“domain:2ip.ru”
]
}
]
},
“fakedns”: [
{
“ipPool”: “10.30.0.0/16”,
“poolSize”: 65535
}
],
“routing”: {
“domainStrategy”: “IPIfNonMatch”,
“rules”: [
{
“inboundTag”: [ “dns-input” ],
“outboundTag”: “dns-output”
},
// Правила ниже не работают
{
"domain": ["domain:2ip.ru"],
"outboundTag": "xray-amsterdam"
},
{
"domain": ["domain:youtube.ru"],
"outboundTag": "wg-russia"
},
// Это добавлял для тестов. Что с ним, что без него - не работает
{
"ip": ["10.30.0.0/16"],
"outboundTag": "fakedns-resolver"
}
]
},
“inbounds”: [
{
“tag”: “dns-input”,
“port”: 5053,
“network”: “udp”,
“protocol”: “dokodemo-door”,
“settings”: {
“address”: “192.168.1.12”,
“port”: 6053,
“network”: “udp”
},
“sniffing”: {
“enabled”: true,
“destOverride”: [“http”, “tls”, “fakedns”, “fakedns+others”],
“metadataOnly”: false
}
},
{
"tag": "wg-in",
"port": 51820,
"protocol": "wireguard",
"settings": {
"secretKey": "<ключ>",
"peers": [
{
"publicKey": "<ключ>",
"allowedIPs": ["172.20.82.2/24"]
}
]
},
"sniffing": {
"enabled": true,
"destOverride": [ "fakedns" ],
"metadataOnly": true
}
}
],
“outbounds”: [
{
“tag”: “direct”,
“protocol”: “freedom”
},
{
"protocol": "dns",
"tag": "dns-output",
"settings": {
"address": "192.168.1.12",
"network": "udp",
"port": 6053
}
},
{
"tag": "xray-amsterdam",
"protocol": "vmess",
"settings": {
"vnext": [
{
"address": "<ip-адрес>",
"port": 443,
"users": [
{
"id": "<ключ>",
"alterId": 0,
"security": "auto"
}
]
}
]
},
"streamSettings": {
"network": "ws",
"wsSettings": {
"path": "/xray"
}
}
},
{
"tag": "wg-russia",
"protocol": "wireguard",
"settings": {
"secretKey": "<ключ>",
"address": [ "<адрес>" ],
"dns": ["1.1.1.1"],
"peers": [
{
"publicKey": "<ключ>",
"presharedKey": "<ключ>",
"endpoint": "<ip-адрес>",
"allowedIPs": ["0.0.0.0/0", "::/0"],
"keepAlive": 20
}
]
}
},
{
"tag": "fakedns-resolver",
"protocol": "freedom",
"settings": {
"domainStrategy": "UseIPv4"
}
},
{
"tag": "block",
"protocol": "blackhole"
}
]
}
Возможно ли вообще через wg подключение резолвить fake ip адреса обратно в настоящие домены, чтобы через routing удобно перенаправлять трафик куда нужно?