Вопрос или проблема
Я установил Wireguard с помощью следующих команд:
sudo apt update
sudo apt install wireguard
Затем я установил resolvconf
:
sudo apt install resolvconf
Создал ключи:
umask 077
wg genkey | sudo tee /etc/wireguard/private.key
sudo cat /etc/wireguard/private.key | wg pubkey | sudo tee /etc/wireguard/public.key
Наконец, создал конфигурацию:
sudo nano /etc/wireguard/wg0.conf
# ниже находится содержимое конфигурационного файла
[Interface]
PrivateKey = omitted
Address = 10.9.0.7/32
DNS = 1.0.0.1
[Peer]
PublicKey = omitted
AllowedIPs = 0.0.0.0/0, ::/0
Endpoint = 95.87.101.10:51820
После выполнения sudo wg-quick up wg0
все мои приложения остались без интернета.
Интернет возвращается после того, как я выполняю sudo wg-quick down wg0
для Wireguard.
У меня нет доступа к серверу, им занимается компания.
Я могу изменять только свой собственный компьютер.
Я не разбираюсь в сетях, моя компания сказала просто следовать вышеуказанным инструкциям, и всё будет работать, но вот что я попробовал сделать для решения проблемы:
Я попробовал предложения из этого вопроса, но безуспешно.
sudo wg
выдал следующий результат:
интерфейс: wg0
публичный ключ: y5ZpnepnWHWBOvm04iDUh/+XgLIZKSOClI4It5D/ESU=
приватный ключ: (скрыт)
порт прослушивания: 43460
fwmark: 0xca6c
партнер: KIkiNWfiSEGYbXAGvNau8kOlG8rqFfEFeNzPjnUzz0Q=
конечная точка: 95.87.101.10:51820
разрешенные IP: 0.0.0.0/0, ::/0
передано: 0 B получено, 296 B отправлено
Я предположил, что рукопожатие работает, но что-то другое мешает интернет-соединению.
ip route show
выдал следующее:
default via 192.168.1.1 dev wlx3c7c3f49907c proto dhcp metric 600
169.254.0.0/16 dev wlx3c7c3f49907c scope link metric 1000
192.168.1.0/24 dev wlx3c7c3f49907c proto kernel scope link src 192.168.1.7 metric 600
После поиска в интернете, я пришел к выводу, что DHCP портит маршрут по умолчанию, но я не знаю, как это исправить. Я пытался использовать sudo ip route add default via 192.168.1.1
, но это тоже не помогло. ip route
в то время как Wireguard включен, выдает следующий результат:
default via 192.168.1.1 dev wlx3c7c3f49907c
default via 192.168.1.1 dev wlx3c7c3f49907c proto dhcp metric 600
169.254.0.0/16 dev wlx3c7c3f49907c scope link metric 1000
192.168.1.0/24 dev wlx3c7c3f49907c proto kernel scope link src 192.168.1.6 metric 600
Я попробовал sudo cat /proc/sys/net/ipv4/ip_forward
, но это тоже не помогло.
Это лучшее, что я могу сделать, так как я не сильно разбираюсь в сетях. Я наткнулся на этот сайт после поиска в интернете, поэтому решил попросить о помощи, в отчаянной надежде, что решение будет найдено.
Если вам нужна дополнительная информация, оставьте комментарий, и я отвечу.
… возможно, вы могли бы попробовать тут
sudo nano /etc/wireguard/wg0.conf
ниже находится содержимое конфигурационного файла
[Interface]
PrivateKey = omitted
Address = 10.9.0.7/32
DNS = 1.0.0.1
указать для DNS ваш собственный интернет-шлюз или локальный сервер dns/dhcp (например, 192.168.110.1
) вместо DNS = 1.0.0.1
или другой публичный DNS-сервер.
Ответ или решение
Если клиент WireGuard не может подключиться к интернету, стоит проанализировать несколько аспектов, которые могут быть причиной проблемы. Давайте подробно рассмотрим возможные источники проблемы и шаги по их решению.
Анализ проблемы
-
Конфигурация маршрутизации (routing):
- Согласно предоставленному выводу команды
ip route
, у вас указаны два одинаковых маршрута по умолчанию через один и тот же шлюз192.168.1.1
, что может быть следствием неправильной настройки маршрутизации при активации WireGuard. - В конфигурационном файле WireGuard вы задали
AllowedIPs = 0.0.0.0/0, ::/0
, что означает, что весь трафик проходит через VPN. Это может вызвать конфликты, особенно если трафик не направляется через правильные шлюзы.
- Согласно предоставленному выводу команды
-
DNS-сервисы:
- Вы используете публичный DNS-сервер
1.0.0.1
, предоставляемый Cloudflare. Возможной причиной может быть проблема с разрешением имен доменов через этот сервер. Попробуйте изменить DNS на локальный (например,192.168.1.1
) или на другой публичный DNS-сервер, например Google (8.8.8.8
).
- Вы используете публичный DNS-сервер
-
Связь и канал связи (handshake):
- Вы видите, что есть передача данных (296 B sent), но нет получения (0 B received), что указывает на потенциальную блокировку входящего трафика.
Шаги по разрешению проблемы
-
Настройка маршрутизации:
- Попробуйте добавить пользовательский маршрут для вашего устройства:
sudo ip rule add from 10.9.0.7 table 200 sudo ip route add default via 192.168.1.1 dev wlx3c7c3f49907c table 200
- Перезапустите интерфейс WireGuard с измененной конфигурацией:
sudo wg-quick down wg0 sudo wg-quick up wg0
- Попробуйте добавить пользовательский маршрут для вашего устройства:
-
Изменение DNS:
- Скорректируйте ваш файл
/etc/wireguard/wg0.conf
, заменив строкуDNS = 1.0.0.1
на:DNS = 8.8.8.8
- Сохраните изменения и перезапустите WireGuard:
sudo wg-quick down wg0 sudo wg-quick up wg0
- Скорректируйте ваш файл
-
Проверка состояния сети:
- Убедитесь, что ваша сеть позволяет передавать весь необходимый трафик через UDP порт
51820
, так как это порт WireGuard. - Если у вас есть доступ к роутеру, проверьте настройки NAT и firewall.
- Убедитесь, что ваша сеть позволяет передавать весь необходимый трафик через UDP порт
-
Использование логов для диагностики:
- Выполните диагностику через логи
sudo journalctl -xe
для получения дополнительных данных об ошибках и предупреждениях.
- Выполните диагностику через логи
Каждый шаг описан так, чтобы минимизировать сетевые конфликты и улучшить работоспособность VPN-соединения с учетом предоставленных ограничений и возможностями для ожидаемого результата. Настройки могут варьироваться в зависимости от сетевого окружения, поэтому важно применять изменения аккуратно и при необходимости обратитесь к специалистам.