LINUX.ORG.RU
ФорумAdmin

Пропал доступ в интернет через wireguard

 ,


0

1

Настроил wireguard на vps пару дней назад по этой инструкции: https://www.cyberciti.biz/faq/how-to-set-up-wireguard-firewall-rules-in-linux/

В качестве клиента выступает мобилка с официальным приложением. В секции Peer в AllowedIPs как положено 0.0.0.0/0. Сразу после настройки интернет работал. И вот спустя пару дней я решил подконнектиться снова, но теперь доступа в интернет не наблюдается. При этом IP пиров пингуются в обоих направлениях.

iptables-save на vps:

# Generated by iptables-save v1.8.9 (nf_tables) on Wed Dec 25 15:25:56 2024
*filter
:INPUT ACCEPT [1457:236490]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [2125:5452042]
-A INPUT -i eth0 -p udp -m udp --dport 41194 -j ACCEPT
-A INPUT -i wg0 -j ACCEPT
-A FORWARD -i wg0 -o eth0 -j ACCEPT
-A FORWARD -i eth0 -o wg0 -j ACCEPT
COMMIT
# Completed on Wed Dec 25 15:25:56 2024
# Generated by iptables-save v1.8.9 (nf_tables) on Wed Dec 25 15:25:56 2024
*nat
:PREROUTING ACCEPT [90:7653]
:INPUT ACCEPT [79:6993]
:OUTPUT ACCEPT [5:873]
:POSTROUTING ACCEPT [5:873]
-A POSTROUTING -s 192.168.6.0/24 -o eth0 -j MASQUERADE
COMMIT
# Completed on Wed Dec 25 15:25:56 2024

IP сервака: 192.168.6.1 Мобилки: 192.168.6.2

# sysctl net.ipv4.ip_forward
net.ipv4.ip_forward = 1

Что это может быть? Провайдер VPS может вставлять палки в колеса?

★★★

Последнее исправление: Olegymous (всего исправлений: 2)
Ответ на: комментарий от Olegymous

Но тогда бы не было и пинга?

С чего бы ему не быть? Это dpi так работает - распознает и блочит отдельные протоколы.

И не коннектилось к 192.168.6.1:80 (на vps есть сервер на 80 порту)? А вот это все работает.

Во внутренней сети, естественно работает.

А внешний интернет нет.

Так и задумано чиновниками. Ищи как завести vless/x-ray - может поможет. Но у «них» с некоторых пор появилась мода временами блочить целыми IP-ками, если с них однажды засекли «запрещенные» протоколы работы.

praseodim ★★★★★
()
Ответ на: комментарий от praseodim

Во внутренней сети, естественно работает.

Там же должно быть все зашифровано. Как они могут отличить коннект к 192.168.6.1 от 64.233.162.103?

На том же МТС, где wireguard действительно заблокирован не идёт даже пинг.

Olegymous ★★★
() автор топика
Ответ на: комментарий от Olegymous

Там же должно быть все зашифровано. Как они могут отличить коннект к 192.168.6.1 от 64.233.162.103?

Не понял? 192.168.6.1 - это по определению локалнет. Ты к нему извне что ли коннектишься? O_o

На том же МТС, где wireguard действительно заблокирован не идёт даже пинг.

Везде может быть по-разному. Но я совершенно точно говорю, что dpi часто так и работает: пинги и соединения, например, по http проходят, а wg или опенвпн - нет или быстро рвутся.

praseodim ★★★★★
()
Последнее исправление: praseodim (всего исправлений: 1)
Ответ на: комментарий от praseodim

192.168.6.1 это ip сервера внутри vpn, коннект к которому на 80 tcp порт проходит успешно с мобилки после поднятия vpn

Olegymous ★★★
() автор топика
Последнее исправление: Olegymous (всего исправлений: 1)
Ответ на: комментарий от no-such-file

Лимитированный, но лимит не превышен. С самого vps весь интернет работает. Ещё из интересного обнаружилось, что коннект при включенном vpn нормально проходит и к внешнему ip сервера по ssh и http. А также в хроме каким-то образом открывается google.com и можно искать разное. Но ничего более открывающегося не обнаружилось. Запустил клиента на Винде - там ещё cloudflare открылся. В общем мистика какая-то.

Olegymous ★★★
() автор топика
Ответ на: комментарий от anonymous

Или зарубежная VPS русских банит..

Как такое вообще верифицировать?

Инвентаризировать CA сертификаты для HTTPS:

Надо ещё дополнительную верификацию провайдера VPS.

anonymous
()

Как я и предполагал проблема в самом VPS. Потому как я поднял там же второй VPS и подключился через wireguard из него к первому. Картина ровно та же: доступа в интернет нет.

Потом я сделал второй VPS сервером и указал его в клиентах. Всё заработало.

Olegymous ★★★
() автор топика
Ответ на: комментарий от anc

У того же. Но второй я заказал в другой стране (DC) и там заработало. Для чистоты эксперимента создал и 3-й в той же стране, что у нерабочего первого — на нем тоже не работает.

У меня пока единственное предложение, что в DC, где не работает режут натированный трафик. В поддержке ответили, что они не при делах и настройка сервера полностью в ответственности клиента.

Как доберусь попробую поможет ли вот такой хак: https://gist.github.com/jkullick/f1f3c1b601596ec7093c1399f0667305

Olegymous ★★★
() автор топика
Последнее исправление: Olegymous (всего исправлений: 2)
Ответ на: комментарий от anc

Может дело в mtu?

В самом клиенте wireguard есть такая опция. Поставил там 1436 — легче не стало.

https://gist.github.com/jkullick/f1f3c1b601596ec7093c1399f0667305

Изменение TTL тоже не помогло, хотя по tcpdump вижу, что оно поменялось и правильное.

Вообще по tcpdump видно, что TCP пакет c eth0 до тестового сервера улетает, но ACK на него не приходит. А на инициированный непосредственно с сервера соответственно приходит. Из явных отличий в пакетах по tcpdump:

Window Size: 64620 с сервера, 65535 через VPN
Maximum Segment Size: 1436 с сервера, 1240 через VPN

пока не понял как их модифицировать средствами iptables.

Olegymous ★★★
() автор топика
Последнее исправление: Olegymous (всего исправлений: 1)