Sing-box: пример конфига
Рабочий конфиг для sing-box https://sing-box.sagernet.org v.1.12.1
Если что-то не работает - авторы очень любят все переделывать, смотрим изменения тут: https://sing-box.sagernet.org/migration/
Обучающие видео по настройке sing-box можно посмотреть здесь: https://www.youtube.com/@linux_power_users
Что есть в этом простом конфиге:
- DNS:
- 8.8.8.8 через TLS (примечание: в этом случае адрес YOU.VPN-SERVER.COM должен быть прописан в виде IP-адреса)
- Входы:
- Socks на порту 1080
- TUN
- Выходы:
- VLESS
- GeoIP, GeoSite обновляются каждый 4 часа и кэшируются
Схема работы: все входящее через Socks и TUN заворачивается в VLESS
Этот кусок нужен чтобы FQDN резолвились в IP, иначе Geo не работает:
{
"action": "resolve",
"strategy": "prefer_ipv4"
}
Адресация:
- XXX.XXX.XXX.XXX - локальный адрес вашего прокси, через который будет идти трафик
- 192.168.22.1/30 - локальный адрес TUN-интерфейса, он не должен пересекаться с LAN адресацией в локальной сети
- YOU.VPN-SERVER.COM - FQDN адрес VPN сервера
- YYY.YYY.YYY.YYY - IP адрес VPN сервера
{
"log": {
"level": "warn",
"disabled": false,
"output": "/var/log/sing-box.log",
"timestamp": true
},
"dns": {
"strategy": "ipv4_only",
"servers": [
{
"type": "tls",
"server": "8.8.8.8",
"detour": "vless-out"
}
]
},
"inbounds": [
{
"type": "mixed",
"tag": "mixed-in",
"listen": "XXX.XXX.XXX.XXX",
"listen_port": 1080
},
{
"type": "tun",
"tag": "tun-in",
"interface_name": "tun0",
"address": [
"192.168.22.1/30"
],
"mtu": 1400,
"auto_route": true,
"route_exclude_address": [
"192.168.0.0/16",
"10.0.0.0/8",
"YYY.YYY.YYY.YYY/32"
]
}
],
"outbounds": [
{
"type": "block",
"tag": "block"
},
{
"type": "vless",
"tag": "vless-out",
"server": "YOU.VPN-SERVER.COM",
"server_port": 443,
"uuid": "UUID-YOU-SERVER",
"flow": "xtls-rprx-vision",
"packet_encoding": "xudp",
"tls": {
"enabled": true,
"insecure": false,
"server_name": "YOU.VPN-SERVER.COM",
"utls": {
"enabled": true,
"fingerprint": "chrome"
}
}
},
{
"type": "direct",
"tag": "direct"
}
],
"route": {
"auto_detect_interface": true,
"rules": [
{
"ip_is_private": true,
"outbound": "direct"
},
{
"action": "resolve",
"strategy": "prefer_ipv4"
},
{
"inbound": "mixed-in",
"rule_set": "geoip-ru-blocked",
"outbound": "vless-out"
},
{
"inbound": "mixed-in",
"rule_set": "geosite-ru-blocked",
"outbound": "vless-out"
},
{
"inbound": "mixed-in",
"outbound": "direct"
},
{
"inbound": "tun-in",
"rule_set": "geoip-ru-blocked",
"outbound": "vless-out"
},
{
"inbound": "tun-in",
"rule_set": "geosite-ru-blocked",
"outbound": "vless-out"
},
{
"inbound": "tun-in",
"outbound": "direct"
}
],
"rule_set": [
{
"type": "remote",
"tag": "geoip-ru-blocked",
"format": "binary",
"url": "https://raw.githubusercontent.com/runetfreedom/russia-v2ray-rules-dat/refs/heads/release/sing-box/rule-set-geoip/geoip-ru-blocked.srs",
"download_detour": "direct",
"update_interval": "4h"
},
{
"type": "remote",
"tag": "geosite-ru-blocked",
"format": "binary",
"url": "https://raw.githubusercontent.com/runetfreedom/russia-v2ray-rules-dat/refs/heads/release/sing-box/rule-set-geosite/geosite-ru-blocked.srs",
"download_detour": "direct",
"update_interval": "4h"
}
]
},
"experimental": {
"cache_file": {
"enabled": true
}
}
}