При подключении к серверу Wireguard на вашем компьютере с Linux открывается новый сетевой интерфейс, и весь трафик перенаправляется через него.
Обычно, чтобы соединить два интерфейса вместе, вы просто настроили мост и соединили два интерфейса между собой.
Однако мосты работают на уровне 2 OSI (пересылка кадров, которые направляются на MAC-адреса назначения), а Wireguard — это протокол уровня 3 (пересылка IP-пакетов с IP-адресами назначения) (больше информации).
Таким образом, вы не можете подключить интерфейс, работающий на L3, мостом. Итак, у вас есть несколько вариантов:
- Используйте туннель VPN уровня 2 (например, L2TP + IPSec) с возникающими трудностями при настройке.
- Настройте Raspberry Pi в качестве прокси-сервера Socks, который туннелирует трафик в Wireguard и передает полное интернет-соединение на подключенное устройство. Это будет означать трафик не будет пройти через VPN по умолчанию, что, скорее всего, не то, что вам нужно.
- Настройте Raspberry Pi в качестве маршрутизатора-шлюза и перенаправляйте IP-пакеты в VPN:
Для этого вам понадобится следующее:
- Включите пересылку пакетов на клиенте Pi (установите
сеть.ipv4.ip_forward=1
в /etc/sysctl.conf
и обновить его с помощью sysctl -p
- Настройте NAT на вашем клиенте Pi между обоими интерфейсами. Это будет пересылать пакеты из вашей подсети WG (т.
10.0.0.0/24
в новую подсеть, о которой позаботится ваш Raspberry Pi, и вы настроите DHCP-сервер (т.е. 10.10.0.0/24
).
Есть несколько способов настроить это, но в 2022 году, используя Ubuntu, вы должны дать Сетевой план попробовать, который позволяет интуитивно настроить все эти сети с файлом YAML. Есть пример на веб-сайте Netplan, достигнув именно этого.
- Настройте raspberry pi в качестве DHCP-сервера (чтобы конфигурация IP была автоматической, а устройства без ручной настройки также перенаправляли трафик): установите
опция роутера yourRaspberryPisWireguardIP;
в /etc/dhcp/dhcpd.conf
и выберите новую подсеть для назначения IP-адресов клиентам. гид. Вы должны подготовиться к совершению isc-dhcp-сервер
играть хорошо с Сетевой план
. Этот аскубунту ответ делает именно это.
- Помните, что использование Netplan, вероятно, переопределит вашу настройку сети Wg-Quick, но это не проблема. Только добавьте свою конфигурацию клиента WG в том же файле Netplan в
туннели:
раздел.
- Возможно, вы захотите настроить DNS-сервер на Raspberry Pi, который указывает на DNS вашего сервера WG, чтобы избежать утечек.
Как вы могли догадаться, с этим последним подходом все клиенты, подключенные к вашей малине, будут, по-видимому, исходить из одного и того же клиентского IP-адреса (вашей малины) из-за NAT. Возможно, вы сможете изменить это (конфигурация сервера Wireguard Разрешенные IP-адреса
можно установить в диапазоне, но я не уверен, как именно этого добиться.
TLDR: Настройте клиентский туннель wg с помощью Netplan. Настраивать NAT с использованием Netplan между клиентским интерфейсом WG и дополнительным ethernet-интерфейсом, на котором вы планируете использовать своих клиентов. Настроить DHCP-сервер на вашем пи в отдельной подсети для ваших клиентов. По сути, создай свой роутер.