Search
Write a publication
Pull to refresh
0
0
Send message

Вы с dockerhub взяли? Я сам собирал. Там какой-то непонятный LOCAL_ROUTE

так происходит, потому что переменные окружения и маршруты остаются в памяти, на до перезагружать.

Его надо собирать самому, у вас какая платформа (arm, arm64) могу собрать.

name="hev_envs" key="SOCKS5_ADDR" value="192.168.254.5"
name="hev_envs" key="IPV4_INCLUDED_ROUTES" value="0.0.0.0/0"
name="hev_envs" key="IPV4_EXCLUDED_ROUTES" value="192.168.0.0/16"

Я перешёл с tun2socks на hev-socks5-tunnel, он гораздо быстрее и меньше нагрузки на процессор.

Если использовать статический список DNS и не включить DoH то указанный в поле Forward To: localhost приведёт к зацикливанию (петле), так как этот список будет полноценно работать. Чтобы этого избежать в поле Forward To: надо указывать адрес того DNS сервера к которому обращается MikroTik для разрешения имён. Есть причины по которым не нужно включать DoH, например настроен свой DNS сервер, к примеру Pi-hole.

/ip/dns/static/
add address-list=za_dpi_FWD forward-to=8.8.8.8 match-subdomain=yes name=googlevideo.com type=FWD

Нужен маршрут до шлюза, через который он будет соединяться с прокси.

Маршрут до socks прокси не нужен, не важно в какой он сети, прокси может быть вообще на другой железке.

Убрал этот маршрут echo "ip route add ${SOCKS5_ADDR} via ${IPV4GW} dev eth0" >> /route.sh из enrypoint.sh, заработало всё как с tun2socks, маршрутизация через таблицу clear_out, даже маскарад на бридже докеров стал не нужен. Тестировал производительность tun2socks и hev-socks5-tunnel пуская весь трафик через туннель, hev-socks5-tunnel минимум в 8 раз быстрее, при тарифе в 100 МБит hev-socks5-tunnel немного не дотягивает до сотки, а tun2socks режет на уровне 14-16 МБит.

В docker tun2socks есть переменные окружения весь список можно посмотреть в Dockerfile, в частности там есть EXTRA_COMMANDS с помощью неё можно запускать bash команды с некоторыми ограничениями. Я в добавил их в MikroTik и не пришлось подсовывать свой entrypoint.sh, что само по себе моветон и хардкодинг.

/container/envs

add name="tun2_envs" key="TABLE" value=""

add name="tun2_envs" key="EXTRA_COMMANDS" value="ip route del default table $TABLE; ip rule flush table $TABLE; ip rule del prohibit; ip route del default; ip route add default via ${ADDR%%/*} dev $TUN; ip route add 192.168.0.0/16 via 192.168.254.1 dev eth0"

add name="tun2_envs" key="PROXY" value="socks5://192.168.254.5:1080"

При создании контейнера из dockerhub добавил envlist=tun2_envs

P.S. Переменной TABLE там нет, но она объявлена в entrypoint.sh как TABLE="${TABLE:-0x22b}" и к ней есть доступ, чтобы было меньше жёстких привязок, я её добавил в список.

Information

Rating
Does not participate
Registered
Activity