Обновить
1
Сергей@Wild99

Пользователь

Отправить сообщение

Классная схема, сам когда-то так мучился с двумя VPN. Накину пару моментов, может пригодится. Первое, мелочь но больно стреляет: git config --global http.proxy socks5h://... заворачивает в корп-VM весь git, включая личные репо на гитхабе. То есть то что вы разделяете тут обратно склеивается, личные пуши идут через корп-сеть, и при упавшем туннеле личный git тоже падает. Я в итоге ушёл на conditional includes (includeIf "gitdir:~/work/") и прокси прописываю только в рабочем конфиге. Рабочее через туннель, личное мимо. Второе что стоит явно отметить: ssh -D это SOCKS5 только по TCP, UDP ASSOCIATE там нет. Значит QUIC/HTTP3 через туннель не пойдёт (браузер просто откатится на TCP, обычно ок), а если какой-то внутренний сервис живёт на UDP то он будет недоступен. DNS кстати работает не из-за UDP, а потому что имя резолвит сам прокси внутри CONNECT, поэтому socks5h и спасает. Ну и в целом вы по сути руками собрали per-app роутинг. На линуксе то же самое делается нативно без VM и SSH: либо отдельный network namespace с корп-vpn внутри (ip netns exec corp firefox), либо роутинг движок типа sing-box где один TUN и правила по process_name/доменам сами гонят firefox и git в корп выход а остальное напрямую. Скорость нативная, udp работает, двойной инкапсуляции нет. VM хороша тем что кроссплатформенная и изолированная, но если только линукс то netns заметно легче. А так подход классный, разделять маршрутами а не переключателями это то к чему рано или поздно приходишь. Спасибо за статью)

Информация

В рейтинге
Не участвует
Зарегистрирован
Активность

Специализация

Фулстек разработчик, Системный администратор
Git
Linux
Docker
Redis
MySQL
Английский язык
C#
C++
PHP
Базы данных