В статье описана настройка клиента и сервера.
На момент осени 2024 года не получается подключиться к зарубежным серверам через российских провайдеров домашнего интернета. Однако, можно соединять сервера, находящиеся в датацентрах или цепляться к серверам, находящимся в датацентрах РФ.
Часть 1. Настройка wireguard-сервера
1. Протокол wireguard поддерживается "из коробки" в версиях 14.x, в конфиг ядра добавлять ничего не надо.
2. Сама программа находится в /usr/ports/net/wireguard-tools. Для удобства дальнейшего удобства отметьте опцию WGQUICK.
3. В /etc/rc.conf добавьте строки wireguard_enable="YES"
wireguard_interfaces=”wg0”
Перейдите в каталог /usr/local/etc/wireguard и создайте ключи для сервера и клиентов:# cd /usr/local/etc/wireguard
# wg genkey > wg-server.private
# wg pubkey < wg-server.private > wg-server.public
# wg genkey > wg-client1.private
# wg pubkey < wg-client1.private > wg-client1.public
# wg genkey > wg-client2.private
# wg pubkey < wg-client2.private > wg-client2.public
...
Создаём конфиг сервера и пишем туда:
# edit wg0.conf
[Interface]
Address = 192.168.80.1/24
PrivateKey = содержимое wg-server.private
ListenPort = 53820
# Client1
[Peer]
PublicKey = содержимое wg-client1.public
AllowedIPs = 192.168.80.2
Endpoint = ip-адрес-wg-сервера:53820
# Client2
[Peer]
PublicKey = содержимое wg-client2.public
AllowedIPs = 192.168.80.3
Endpoint = ip-адрес-wg-сервера:53820
...
Запускаем сервер# cd /usr/local/etc/rc.d
# ./wireguard start
Если вам надо через ваш wireguard-сервер выйти в интернет, то необходимо:
В /etc/rc.conf добавить строку gateway_enable="YES"
Если у вас фаерволом стоит packet filter, то в /etc/pf.conf добавьте nat on vtnet0 from wg0:network to any -> (vtnet0)
Часть 2. Настройка wireguard-клиента
Выполните 2 и 3-й пункты из первой части.
Создаём конфиг клиента и пишем туда:
# cd /usr/local/etc/wireguard
# edit wg0.conf
[Interface]
PrivateKey = содержимое wg-client1.private
Address = 192.168.80.2/24 # Это если вам не нужен доступ в интернет через этот сервер
Address = 0.0.0.0/8 # Это если нужен доступ в интернет через этот сервер
DNS = 1.1.1.1,8.8.8.8 # или любые другие DNS-сервера
[Peer]
PublicKey = содержимое wg-server.public
AllowedIPs = 192.168.80.0/24
Endpoint = ip-адрес-wg-сервера:53820
PersistentKeepalive = 600
Запускаем клиента# cd /usr/local/etc/rc.d
# ./wireguard start
Проверяем: ping 192.168.80.1
Команды wg
wg show - посмотреть подключенных пользователей.