Чтобы лишний раз не отнимать чужое время, уточню сразу: в принципе я добился того, что мне нужно, и текущая ситуация (с учётом нулевых затрат) меня вполне устраивает. Тем не менее, рассказываю, что в итоге получилось (спойлер: получилось странное) с ноткой некоторого недоумения.
В iptables следующее:
sudo iptables -t nat -A PREROUTING -s 192.168.1.36/32 -p tcp -j REDIRECT --to-port 100
sudo iptables -A FORWARD -p udp --dport 443 -j DROP
(Разницы между DROP и REJECT не увидел, да и дело по-моему совсем не в QUIC, я не вижу udp запросов с телевизора на 443 порт ни в логах, ни в tcpdump. Также прописал редиректы для ПК и смартфона, но об этом потом.)
Ваш конфиг тоже не заработал, но вы подбросили мне идею: я действительно забыл про sniff
в инбаунде redirect. Если добавить sniff
и sniff_override_destination
, то что-то слегка меняется, по крайней мере приложение начинает открываться, но по-прежнему как будто бы идет через РФ. К тому моменту я уже почитал тему о маркировке российских IP гуглом и от греха подальше решил перейти к обычной гео фильтрации, которой уже сто лет пользуюсь во всех клиентах. Ссылки на srs украл из hiddify:
"route": {
"rules": [
{
"protocol": "dns",
"outbound": "dns-out"
},
{
"ip_is_private": true,
"outbound": "direct"
},
{
"rule_set": [
"geoip-ru",
"geosite-ru"
],
"outbound": "direct"
}
],
"rule_set": [
{
"type": "remote",
"tag": "geoip-ru",
"format": "binary",
"url": "https://raw.githubusercontent.com/Chocolate4U/Iran-sing-box-rules/rule-set/geoip-ru.srs"
},
{
"type": "remote",
"tag": "geosite-ru",
"format": "binary",
"url": "https://raw.githubusercontent.com/Chocolate4U/Iran-sing-box-rules/rule-set/geosite-category-ru.srs"
}
],
"final": "vless-out",
"auto_detect_interface": true
}
Но и это ничего не изменило.
А потом я вспомнил, что во всех клиентах на ПК у меня всегда был прописан DoH без условий, да и в Firefox по вашему совету тоже. И наконец-то получил рабочий конфиг:
{
"log": {
"disabled": false,
"level": "debug",
"output": "/tmp/sing-box.log",
"timestamp": true
},
"dns": {
"servers": [
{
"tag": "google",
"address": "https://8.8.8.8/dns-query"
},
{
"tag": "block",
"address": "rcode://success"
}
],
"final": "google",
"strategy": "ipv4_only"
},
"inbounds": [
{
"type": "tun",
"interface_name": "tun0",
"domain_strategy": "ipv4_only",
"inet4_address": "172.16.250.1/30",
"mtu": 1500,
"auto_route": true,
"strict_route": false,
"sniff": true,
"sniff_override_destination": true
},
{
"type": "redirect",
"tag": "redirect-in",
"listen": "0.0.0.0",
"listen_port": 100,
"domain_strategy": "ipv4_only",
"sniff": true,
"sniff_override_destination": true
}
],
"outbounds": [
{
# vless-out
},
{
"type": "direct",
"tag": "direct"
},
{
"type": "block",
"tag": "block"
},
{
"type": "dns",
"tag": "dns-out"
}
],
"route": {
"rules": [
{
"protocol": "dns",
"outbound": "dns-out"
},
{
"ip_is_private": true,
"outbound": "direct"
},
{
"rule_set": [
"geoip-ru",
"geosite-ru"
],
"outbound": "direct"
}
],
"rule_set": [
{
"type": "remote",
"tag": "geoip-ru",
"format": "binary",
"url": "https://raw.githubusercontent.com/Chocolate4U/Iran-sing-box-rules/rule-set/geoip-ru.srs"
},
{
"type": "remote",
"tag": "geosite-ru",
"format": "binary",
"url": "https://raw.githubusercontent.com/Chocolate4U/Iran-sing-box-rules/rule-set/geosite-category-ru.srs"
}
],
"final": "vless-out",
"auto_detect_interface": true
}
}
Я не знаю, почему, но в отличие от всего остального оно работает.
Веселье, брызги шампанского, тему можно закрывать? Не совсем 
Осталась крайне загадочная проблема, корни которой я понять не могу. Скорость на ТВ действительно становится выше - ну, типа, с 8 - 9 Mbps по speedtest она вырастает до 13 - 14 Mbps (upload всегда на 1 - 2 мегабита выше, чем download, хотя в тестах без sing-box обычно наоборот). В приложении youtube изменения примерно такие же. В то же время на ПК с Windows 10 скорость становится намного выше, упираясь только в обычную ширину канала по wi-fi, а youtube без проблем открывает 4K 60 fps. Все тесты на speedtest делаются до одного и того же сервера, во всех случаях верно определяется удаленный IP-адрес.
Аналогичную проблему вижу на смартфоне с Android, для которого я тоже прописал редирект в iptables: там скорость опять-таки бьется в потолок 13 - 14 Mbps, и youtube тоже не воспроизводит 4K.
Что общего между смартфоном на Android и ТВ Samsung, чего нет у Windows - я понять не могу. Пробовал отключать в Firefox DoH и чистить кэш запросов, отключать http3 и даже http2, тестировать через Chrome, прописывать одни и те же dns-серверы на всех устройствах (8.8.8.8, или роутер, или малина) - и неизменно получаю высокую скорость на ПК, а на телевизоре и смартфоне неизменно упираюсь в 13 - 14 Mbps (с той же небольшой разницей в пользу upload). Единственная особенность ПК - то, что он подключен к Wi-Fi через Keenetic Start в режиме адаптера, но не уверен, что это как-то может влиять на ситуацию.