# Лог диагностики: исходящий порт 22 заблокирован > Отчёт о том, почему `git push` не работает ни с VPN, ни без него. > Чувствительные данные (ключи, preshared-key) удалены. ## Вывод - **Без VPN:** российский провайдер режет исходящий порт 22 → `Network is unreachable`. - **С VPN (WireGuard):** сам провайдер VPN-сервиса **в целом запрещает исходящий порт 22** (порт 22 к `github.com`, `gitlab.com` и `git.sr.ht` — timeout, при этом порт 443 открыт ко всем). Итог: git по SSH (использует порт 22) не может соединиться ни в одном состоянии. --- ## 1. Конфигурация интерфейса WireGuard (без секретов) Из `/etc/wireguard/wg.conf`: ```ini [Interface] PrivateKey = [Скрыто] Address = 10.233.10.237/32 DNS = 1.1.1.1, 8.8.4.4 MTU = 1380 [Peer] PublicKey = +ickp+Ceu/QcMW7pTA1is4ZcUSzglHuyuBRq0QeQ5D0= PresharedKey = [Скрыто] AllowedIPs = 0.0.0.0/0, ::/0 PersistentKeepalive = 25 Endpoint = nl01w-dp.kcufwfgnkr.net:62233 ``` `AllowedIPs = 0.0.0.0/0` → туннель должен заворачивать весь трафик (все маршруты в таблице 52219). --- ## 2. Состояние туннеля Интерфейс `wg` поднят, адрес и DNS настроены, маршрут по умолчанию через туннель существует: ```text $ ip -brief addr enp42s0 UP 192.168.1.40/24 fd55:69a6:a86:0:.../64 ... throne-tun DOWN ... wg UP 10.233.10.237/32 # специфичная для wg-QUICK таблица маршрутов: $ ip route show table 52219 default dev wg proto static scope link metric 50 # DNS на туннеле: $ resolvectl status wg Link 18 (wg) Current DNS Server: 1.1.1.1 DNS Servers: 1.1.1.1 8.8.4.4 Default Route: yes ``` IP-адрес в туннеле: `10.233.10.237/32`. --- ## 3. Туннель работает (проверка `ping` через VPN) ```text $ ping -c 2 1.1.1.1 2 пакета передано, 2 получено, 0% потерь rtt min/avg/max/mdev = 114/115/118 ms ← задержка самого VPN ``` --- ## 4. Порт 443 открыт (HTTPS работает) ```text $ ssh -vv -p 443 git@git.sr.ht (только проверка соединения) Connecting to git.sr.ht [46.23.81.155] port 443 banner: HTTP/1.1 400 Bad Request / Server: nginx → порт 443 доступен (это обычный HTTPS/nginx, никакого SSH-сервиса на 443 у git.sr.ht нет) ``` --- ## 5. Порт 22 заблокирова ### 5.1 Без VPN — `Network is unreachable` ```text $ ssh -p 22 git@git.sr.ht ssh: connect to host git.sr.ht port 22: Network is unreachable ``` ### 5.2 С VPN — таймаут на исходящем 22 ```text $ /dev/tcp/46.23.81.155/22 → FAIL (connection timed out) $ ssh -4 -p 22 git@46.23.81.155 → Connection timed out $ /dev/tcp/140.82.121.4/22 (github.com:22) → FAILED $ /dev/tcp/172.65.251.78/22 (gitlab.com:22) → FAILED ``` Порт 22 таймаутится ко **всем** хостам через туннель, а порт 443 — открыт: ```text $ /dev/tcp/172.65.251.78/443 (gitlab.com:443) → OPEN ``` ### 5.3 DNS (спойлер: отвечал IPv6 без маршрута) ```text $ getent hosts git.sr.ht 2a03:6000:1813:1337::155 (IPv6 — без глобального маршрута) 46.23.81.155 (IPv4 — нужный адрес) ``` --- ## 6. Итоговая таблица | Состояние | git.sr.ht:22 | git.sr.ht:443 | Вердикт | |-----------|--------------|---------------|---------| | Без VPN | недоступен (ISP) | — | порт 22 режется провайдером | | С VPN | таймаут (VPN) | открыт | VPN-сервис запрещает исходящий 22 | **Причина:** VPN-сервис на стороне выхода `nl01w-dp.kcufwfgnkr.net` запрещает исходящие соединения по порту 22. Поэтому git-по-SSH не работает.