summaryrefslogtreecommitdiff
path: root/nixos/vpn-port-22-log.md
diff options
context:
space:
mode:
authorseraphim <18ycm9tx@anonaddy.me>2026-08-06 19:33:33 +0700
committerseraphim <18ycm9tx@anonaddy.me>2026-08-06 19:33:33 +0700
commitfbbd81232e3918113386f5343262a224c3bee401 (patch)
tree5e1b5fea2bf23c7fb9a9f542295904d54a2ebb7d /nixos/vpn-port-22-log.md
parentc806cf66db7eb7eeee37ea267d25bda7800a0235 (diff)
niri keybinds upd
Diffstat (limited to 'nixos/vpn-port-22-log.md')
-rw-r--r--nixos/vpn-port-22-log.md125
1 files changed, 125 insertions, 0 deletions
diff --git a/nixos/vpn-port-22-log.md b/nixos/vpn-port-22-log.md
new file mode 100644
index 0000000..1466296
--- /dev/null
+++ b/nixos/vpn-port-22-log.md
@@ -0,0 +1,125 @@
+# Лог диагностики: исходящий порт 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 не работает.