LINUX.ORG.RU
ФорумAdmin

Wireguard: handshake есть, но интернета нет

 


0

5

Сразу скажу, что я полный нуб. Простите, пожалуйста, за тупость, если что.

Я купил VPS сервер, поставил туда Wireguard. Конфиг:

[Interface]
Address = 10.66.66.1/24
ListenPort = 65355
PrivateKey = ***
PostUp = iptables -I INPUT -p udp --dport 65355 -j ACCEPT
PostUp = iptables -I FORWARD -i ens3 -o wg0 -j ACCEPT
PostUp = iptables -I FORWARD -i wg0 -j ACCEPT
PostUp = iptables -t nat -A POSTROUTING -o ens3 -j MASQUERADE
PostDown = iptables -D INPUT -p udp --dport 65355 -j ACCEPT
PostDown = iptables -D FORWARD -i ens3 -o wg0 -j ACCEPT
PostDown = iptables -D FORWARD -i wg0 -j ACCEPT
PostDown = iptables -t nat -D POSTROUTING -o ens3 -j MASQUERADE

[Peer]
PublicKey = ***
PresharedKey = ***
AllowedIPs = 10.66.66.2/32

Поставил клиент на Linux десктоп. Конфиг

[Interface]
PrivateKey = ***
Address = 10.66.66.2/32
DNS = 1.1.1.1

[Peer]
PublicKey = ***
PresharedKey = ***
Endpoint = 185.39.163.103:65355
AllowedIPs = 0.0.0.0/0

Подключаюсь. Handshake происходит, но интернет трафика нет, ping 8.8.8.8 таймаут. На сервере `wg show` показывает, что handshake есть и данные идут, но очень медленно

interface: wg0
  public key: ***
  private key: (hidden)
  listening port: 65355

peer: ***
  preshared key: (hidden)
  endpoint: 176.44.251.213:28949
  allowed ips: 10.66.66.2/32
  latest handshake: 3 minutes, 7 seconds ago
  transfer: 488 B received, 8.82 KiB sent

Чтобы исключить мой домашний роутер, я поставил Андроид клиент Wireguard на телефон, конфиг тот же, но подключаюсь через мобильную сеть. Та же ситуация, я вижу handshake, как на сервере, так и на клиенте, данные очень медленно меняются и ни один сайт не открывается.

Вывод `ip route` на сервере:

default via 185.39.163.1 dev ens3 onlink
10.66.66.0/24 dev wg0 proto kernel scope link src 10.66.66.1
185.39.163.0/24 dev ens3 proto kernel scope link src 185.39.163.103

На клиенте:

default via 192.168.0.1 dev enp6s0 proto dhcp src 192.168.0.254 metric 1002
192.168.0.0/24 dev enp6s0 proto dhcp scope link src 192.168.0.254 metric 1002
где 192.168.0.0 это моя локалка с роутером.

Я пробовал подключатся к серверу через `nc -v -u 185.39.163.0 65355` (при выключенном wireguard на клиенте), `nc` пишет, что соединение установлено. При включенном wireguard я не могу подключится никуда, не пингуется ничего во внешней сети, даже ssh на сервер отваливается.

ЧЯДНТ?


Роскомнадзор у тебя происходит. Whois говорит что IPшник у твоей VPS польский, а значит ты пытаешься в окружающие нашу свободную страну враждебные интернеты тоннель пробить, нехороший ты человек. И чего тебе внутри цифрового забора не сидится?

Используй на клиенте амнезию вместо штатного вайргварда. Сервер переустанавливать не нужно, клиент амнезии работает и с обычным сервером, достаточно на клиента водрузить амнезию и добавить восемь строчек в уже существующий конфиг клиента в секцию [Interface]. У меня работает вот такое:

[Interface]
...
Jc = 3
Jmin = 40
Jmax = 70
S1 = 0
S2 = 0
H1 = 1
H2 = 2
H3 = 3
H4 = 4

Тайный смысл этих заклинаний в документации на амнезию. Возможно для твоего провайдера их придётся подкрутить.

https://github.com/amnezia-vpn/amnezia-client

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

Вы уверены, что на сервере ничего делать не нужно?

Как-то это ненадёжно... С таким же успехом можно и на bydpi параметры обфускации подбирать, бесплатно. Я-то надеялся с собственным VPS проблем не будет.

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

Да, уверен. Wireguard блокируется на уровне протокола, с помощью DPI. Да, bydpi делает то же самое, почти, потому что в обоих реализациях используется методика разработанная ValdikSS. На сервере ничего делать не нужно, во первых об этом написано где то в документации (не помню где), во вторых я лично цепляюсь амнезией к серверам wireguard моего коммерческого VPN провайдера, который про амнезию вообще не знает и не понимает зачем это нужно.

Это ненадёжно, да, но вариантов у тебя всего три: смириться и сидеть внутри загона, завернуть туннель в носки (vray\x2ray, stunnel, ssh, shadowsocks и т.п. но для этого нужны носки на обоих концах, это не всегда возможно), byedpi\amnezia. Я тебя не агитирую, моё дело предложить...

Про «параметры подбирать бесплатно» не понял. Амнезия тоже бесплатная, ты хочешь чтобы тебе платно их подобрали или что?

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

Спасибо. Попробовал, хорошо было. Но спустя пару часов стало тормозить. Скорость нерегулярная, от 1 МБ/с до 10 кБ/с. Я пробовал установить shadowsocks, так же тормозит. Сейчас даже если я просто на сервер захожу по ssh, то всё лагает, нажимаю клавишу, через пару-тройку секунд она появляется. Вначале такого не было.

Я не понимаю, это я что-то не так делаю, VPS такой, или это меня уже блочат?

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

Если интересно, когда я настраивал свой прокси для Китая, через ssh я вообще не заходил по открытому соединению. Есть инфа что если ты по ssh коннектиться куда-то то этот сервер сразу под карандаш берут и трафик туда тротлят. Я пользовался esim в роуминге и через неё делал все административные действия. Сервер настраивал на xray reality. У меня получилось в итоге пробиться через китайский файрволл, все работало хорошо.

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

Они уже на уровне уровне протокола блокируют?

Да, у меня где-то месяц назад WG отвалился. Используй клиент с обфускацией как уже советовали, или посылай пустые UDP пакеты перед началом сессии (исходящий порт должен быть фиксирован).

no-such-file ★★★★★
()
Ответ на: комментарий от Jameson

цепляюсь амнезией к серверам wireguard

Можно пример конфига? А то я попробовал добавить в секцию interface то, что ты запостил выше - пишет что неверный формат файла конфигурации. Если бы параметры были бы неправильные то врядли ругался бы на формат конфига.

Chord ★★★★
()
Последнее исправление: Chord (всего исправлений: 2)
Ответ на: комментарий от Chord
[Interface]
Address = XXX.XXX.XXX.XXX/32,XXXX:XXXX:XXXX:XXXX:XXXX:XXXX:XXXX:XXXX/128
PrivateKey = XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX=
MTU = 1320
DNS = XXX.XXX.XXX.XXX, XXXX:XXXX:XXXX:XXXX::1
Jc = 3
Jmin = 40
Jmax = 70
S1 = 0
S2 = 0
H1 = 1
H2 = 2
H3 = 3
H4 = 4

[Peer]
PublicKey = XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX=
PresharedKey = XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX=
Endpoint = at3.vpn.airdns.org:47107
AllowedIPs = 0.0.0.0/0,::/0
PersistentKeepalive = 15

Скорее всего ты просто не Амнезию пускаешь, а обычный WG. У амнезии свой модуль ведра, или как альтернатива юзерспйсная реализация интерфейса на Go. И свой набор тулзов, например awg-quick, а не wg-quick. Впрочем если у тебя systemd дистр проще amnezia-client заюзать, там демон на go уже в комплекте. Но если у тебя не systemd нужно скрипты перепахивать, клиент на механизмы systemd полагается. Впрочем amneziawg-go + amneziawg-tools прекрасно из сосноли работают без всякой гуйни и systemd.

Модуль ведра = https://github.com/amnezia-vpn/amneziawg-linux-kernel-module

Юзерспейсная реализация (модуль ведра не нужен) = https://github.com/amnezia-vpn/amneziawg-go

Утилиты = https://github.com/amnezia-vpn/amneziawg-tools

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

В секции [Interface ] у меня отсутствует MTU, в секции {Peer] отсутствует PresharedKey b PersistentKeepalive = 15, в остальном всё то же самое.

Может ошибка из-за того, что у меня клиент не с амнезия-го с гитхаба, а с амнезия.орг?

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

Ненене, ты не путай. С amnezia.org раздают amnezia-client, это гуйня с amneziawg-go внутри, оно так то рабочее, но без systemd жить не может, оно использует механизмы systemd чтобы amneziawg-go от юзера через dbus запустить и интерфейс родить. Если у тебя нет systemd, и гуй тебе не принципиален, достаточно скачать отдельно amneziawg-go и amneziawg-tools, сначала как там в инструкции написано родить сетевой интерфейс через amneziawg-go, а потом его настроить через awg-quick например. Вместо amneziawg-go можно скачать и собрать ядрёный модуль, его достаточно в ядро вставить и awg-quick родит интерфейс сам.

По идее нужны всего две команды:

$ amneziawg-go wg0
$ awg-quick up wg0

При условии что конфиг у тебя лежит в /etc/amnezia/wg0.conf

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

Ну смотри, нативный конфиг можно экспортировать в базу, где гуишный WG остальные конфиги хранит, но прежде его надо под амнезию редактировать и всё заведется.

Я раскатывал в обратную сторону, брал amnezia-tools ставил, редачил нативный конфиг (серверный) и поднимал awg-quick up inf_name, ибо админка написана на команду wg-quick и она его тогда поднять не может, ибо не может параметры распарсить((

MostovoyBogdan
()
Ответ на: комментарий от no-such-file

Правильно понял, что ты вызываешь nping в сторону клиента?

А как быть если со стороны клиента порт для подключения статический, а порт интерфейса клиента - динамика?

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

Можете пояснить, нужно просто в конфиге добавить вот этим строчки и предполагается, что через него удастся законнектиться через обычный клиент или это работает только с помощью их фирменного приложения?

С ним и у меня работает, но на роутер можно поместить только классический файл конфига.

bundess
()
Ответ на: комментарий от Jameson

Можете пояснить, нужно просто в конфиге добавить вот этим строчки и предполагается, что через него удастся законнектиться через обычный клиент или это работает только с помощью их фирменного приложения?

С ним и у меня работает, но на роутер можно поместить только классический файл конфига.

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

Поясняю, клиент должен быть от Амнезии. Или тот который с GUI, или консольный. Для консольных клиентских утилит так же нужны модули ядра Амнезии, или её юзерспейсная реализация на GO. Тот клиент который с GUI уже её в кишках имеет, но без systemd запустить её не может, так что работает только на дистрибутивах с systemd.

А вот СЕРВЕР, то есть то к чему клиент коннектится, не обязан быть сервером Амнезии, годится обычный wireguard. Собственно у меня так и работает с коммерческим VPN провайдером который про Амнезию вообще ничего не знает (и знать не хочет, так как это локальные проблемы индейцев).

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

Спасибо, тогда могу переформулировать вопрос.

На моем роутере по умолчанию есть возможность поставить опенвпн и ваергард.

На одном из сервером поставил обычный ваергард и он почему-то работает, блока нет. Но мне нужно в другой стране.

Точно такими же способами ставлю эти протоколы на сервере в нужной мне стране от разных провайдеров - всегда блок. Ставлю амнезию или прошу друзей из другого региона подключиться - работает.

Видимо, блокировка.

В моем случае есть возможность стандартным клиентом оживить подключения или искать другой роутер и рассматривать другие протоколы, как поступить?

bundess
()