Linux vpn нет интернета

Проблема настройки своего VPN через WireGuard на VDS: подключается, но нет интернета

Велик соблазн написать «наконец-то нормальный» мануал для настройке wireguard. Но в итоге такой мануал станет очередным, который не решает все проблемы пользователя при настройке. Поэтому данная запись носит цель подсветить возможные проблемы, с которыми может столкнуться рядовой пользователь при настройке базового vpn через wireguard на типовом vds.

Использовал данный мануал по настройке:

Вполне возможно, что статья будет добавлять или в итоге в комментариях окажется больше полезной информации нежели в самом посте.

  • базовый VDS в DIgitalOcean за $4: 512 MB Memory / 10 GB Disk / SGP1 — Ubuntu 22.10 x64
  • регион Сингапур. Скорее всего не лучший вариант, но точно рабочий. Изначально пробовал другие регионы, но в процессе поиска проблем менял сервера. Встречал комменты, что для некоторых регионов не «заводилось». Пример замера скорости в конце статьи.

Примечание: при регистрации Digital Ocean предоставил пробный период с «$200.00 (expires in 59 days)». При этом DO сделал списание (и сразу возврат) тестовой суммы в $5 при регистрации. Если есть подходящая карта, то скорее всего есть рабочий вариант завести новый аккаунт и раскатать wireguard еще раз на два месяца. При необходимости повторить.

Пробовал настраивать VDS по нескольким инструкциям. Вцелом, они однотипны и по каждой из них была проблема на финальном шаге — подключаюсь в WireGuard через клиент, но интернета нет. Скорее всего если есть проблема, то она будет воспроизводиться именно на этом шаге.

Полагаю, что вы прошли инструкцию и понимаете о чем идет речь дальше.

Проверьте еще раз файлы конфигураций. При минимальной настройке файлов получается два:

  • первый файл wg0.conf располагается на самом VDS и задает настройки для wireguard
  • второй, к примеру, mac.conf в моем случае, в котором задаются настройки клиента

Пример моего файла wg0.conf

[Interface] Address = 10.0.0.1/24 PostUp = iptables -A FORWARD -i wg0 -j ACCEPT; iptables -A FORWARD -o %i -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE PostDown = iptables -D FORWARD -i wg0 -j ACCEPT; iptables -D FORWARD -o %i -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE ListenPort = 51830 PrivateKey = [Peer] PublicKey = AllowedIPs = 10.0.0.2/32

Читайте также:  Команда очистки окна терминала linux

Пройдемся по основным полям:

  1. PrivateKey & PublicKey. В процессе настройке можно вполне легко перепутать данные для вставки в поля PrivateKey и PublicKey при вставке в файлы конфигураций. Проверьте еще раз, что в этой части все правильно.
  2. ListenPort. У меня указан 51830, но вроде как 51820 согласно другим инструкциям тоже должен работать. Проблем тут быть не должно.
  3. AllowedIPs. По сути данное значение должно совпадать с указанным в файле настроек клиента.
  4. ⚡⚡⚡ PostUp & PostDown. Молния. Даже три. В инструкции указана такая строчка:

PostUp = iptables -A FORWARD -i %i -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE PostDown = iptables -D FORWARD -i %i -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE

Данные команды выполняются при старте/останове wireguard сервера. Здесь нас интересуют значения %i и eth0.

Так понял значение %i является шаблоном для сетевого интерфейса, вместо которого в итоге подставляется конкретное значение. В моем случаем указал хардкодом ‘wg0’. Без этого у меня не работало.

Также вместо eth0 иногда требуется указать ваше значение сетевого интерфейса. Для просмотра сетевых интерфейсов можно использовать команду ifconfig -a в терминале VDS. В моем случае eth0, но может быть ens3 или другое значение. Если здесь указан неправильный интерфейс, то при просмотре статуса через команду systemctl status [email protected] видел ошибку в консоли. В моем случае правка относительно инструкции не понадобилась.

Пример моего файла mac.conf (файл клиента)

[Interface] PrivateKey = Address = 10.0.0.2/32 # должно совпадать с указанным в wg0.cong в для настойки [Peer] DNS = 1.1.1.1 # сами задаем DNS, можно 8.8.8.8 или любой другой [Peer] PublicKey = Endpoint = :51830 # проверяем порт AllowedIPs = 0.0.0.0/0 # пропускаем весь трафик через wireguard PersistentKeepalive = 20

Основные момент прокомментировал по файлу.

Клиент настраивал на MacOS. Приложение WireGuard можно скачать из AppStore. Приложение в итоге рабочее, но не отличается многословностью в случае ошибок. Даже в кривыми конфигами подключается и горит зеленым. что появились строки — получено данных, отправлено данных, последнее рукопожатие. Пример скрина с удачно запущенным wireguard:

Источник

unixforum.org

Стоит задача подключиться к удалённому рабочему столу. Для этого использую Reminna.
Подключение происходит через vpn по L2TP / IPSEC . Мне удалось всё настроить и приконектиться, но при включённом vpn отваливается интернет на моей машине. Насколько я понял, это потому, что весь трафик начинает идти через vpn.

Погуглив, поставил в настройках vpn подключения галку «использовать это подключение только для ресурсов в этой сети».
При таком варианте интернет появляется, но Reminna отказывается подключаться к RDP. Может в ремине можно как-то в настройках сказать, чтоб она ходила через VPN ?

Читайте также:  Установочная флешка линукс убунту

Re: При подключении VPN отваливается интернет

Сообщение sinestro » 17.02.2021 15:00

есть предположение, что нужно сделать «forwarding route» через 192.168.0.0 / 16. Но как это сделать в линухе ?

Bizdelnick Модератор Сообщения: 20387 Статус: nulla salus bello ОС: Debian GNU/Linux

Re: При подключении VPN отваливается интернет

Сообщение Bizdelnick » 17.02.2021 15:12

в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик

Re: При подключении VPN отваливается интернет

Сообщение sinestro » 17.02.2021 17:57

решил проблему. что нужно было делать :
1) подключить VPN
2) открыть консоль и выполнить nslookup . таким образом получаем IP вашей машины и IP сервера.
3) открыть «параметры сети» -> vpn -> настройки -> IPv4
4) в разделе «маршруты» вписать address — ip вашей машины в сети vpn, шлюз — IP сервера.
ставим галку «использовать это подключение только для ресурсов в этой сети» и жмём применить
5) в ремине ставим в поле server ip вашей машины в сети vpn

Источник

После старта openvpn клиента пропадает доступ через интернет

И успешно — локальные хосты на той стороне доступны, могу подключиться к нем через ssh, например. Но вот беда: сразу после старта клиента не могу никуда зайти через браузер — все страницы оказываются недоступны. До этого ни разу не пользовался openvpn — подскажите хотя бы с чего начать поиск проблемы? Спасибо.

попробуйте настроить подключение через графический интерфейс, скорее всего у вас появится возможность через настройки подключиться по VPN с указанием протокола OpenVPN. и там есть галочка, она называется примерно как «Использовать это соединение только для ресурсов этой сети», отмечаете эту галку для вашего VPN-соединения и проблема скорее всего будет решена.

также в конфиге можно попробовать добавить строку «route-method exe» (без кавычек) по моему это тоже решает проблему

в данном случае как настроен сервер не имеет особого значения, так как у вас уже клиент пытается добавить в роутинг данные с сервера, а там видимо запрещено трафик через него гонять (по умолчанию вроде так и работает) и эта галочка дает понять клиенту, чтобы он роутинг добавлял не для всего подряд, а только для IP из сети VPN.. примерно так.

Читайте также:  Linux bash математические операции

1 ответ 1

Столкнулся с такой же проблемой. Ubuntu 20.04, OpenVPN, использую настройки через GUI, хотя разницы по проблеме не заметил, запускать через консоль или интерфейс.

Можно предположить, что на это влияют настройки сервера VPN, к которому идет подключение. Он отправляет конфигурацию для автоматической настройки вашей сети (маршруты, DNS, шлюзы) и отсюда появляются проблемы.

Я нашел 4 варианта исправления проблемы, я воспользовался сначала третьим, затем вторым:

Использовать это подключение только для этой сети

  1. Обратиться к админам VPN и сообщить о проблеме. Если это их работа, то они должны помочь. Конфигурация той сети не должна влиять на вашу (ее решаете не вы, а администратор сети, к которой подключаетесь).
  2. В настройках VPN в GUI (если через GUI идет подключение) указать «Использовать это подключение только для ресурсов в этой сети» («Use only for resources on this connection»). Нужные маршруты заработают, и интернет будет работать. НО! Если вы используете не IP-адреса, а именованные адреса серверов, например, myhost.host.local, то они скорее всего не будут работать. Вместо этого, для подключения нужно использовать IP-адреса этих хостов. Чтобы получить IP-адреса, можно использовать команду traceroute , который выведет конечный IP-адрес хоста, если он доступен. Чтобы получить его адрес, у вас должна быть отключена галочка «Использовать это подключение только для ресурсов этой сети». Получив список IP-адресов вы можете указать их в файле /etc/hosts в соответствии с адресом или же везде, где вы используете именованные адреса, заменить их на IP-адреса. Эффект будет такой же, но во втором случае не требуются права root. Вы также можете спросить у администраторов уже готовый список этих именованных хостов и адресов.
  3. Эффекта, который был достигнут в пункте 2, можно достигнуть путем указания конкретных маршрутов для конкретных IP-адресов. Для этого можно воспользоваться той же командой traceroute , а также route -n . В результате этих команд вы получите список нужных вам адресов, как в решении 2 и укажите их в маршрутах для настройки сети. Можно также попробовать указать целую подсеть, если для вашей сети это актуально.
  4. Можно в ваш файл конфигурации VPN указать опцию pull-filter ignore «dhcp-option DNS» . В этом случае вы столкнетесь с такими же проблемами как и в пункте 2 и решить их нужно будет также.

Источник

Оцените статью
Adblock
detector