Cuando esto suceda, ejecute bash desde la línea de comando, luego salga (para devolver el primer bash ). Debería funcionar de nuevo. Detalles algo interesantes aquí:https://stackoverflow.com/questions/19895185/bash-shell-read-error-0-resource-temporarily-unavailable.
Я столкнулся с той же проблемой, вот как я заработал:
Ваша основная ошибка заключалась в том, как вы использовали AllowedIPs
в сетевом устройстве. AllowedIPs
указывает разрешенные целевые IP-адреса, и, поскольку вы, вероятно, хотите туннелировать трафик на все IP-адреса, вы должны указать 0.0.0.0/0
.
Строка Destination
в секции [Route]
и результирующий маршрут(10.222.111.0/24 via 10.0.3.227 dev wg0 proto static
)также неверны. :Это направляет трафик , направленный 10.222.111.0/24
, на интерфейс WireGuard вместо исходящего трафика . ] из этой подсети.
Для фильтрации по источнику , чтобы весь трафик из подсети докеров проходил через VPN, вы можете использовать [RoutingPolicyRule]
(, эквивалентный ip rule
), и [Route]
(, эквивалентный ip route
). ] в сетевом файле, чтобы ваши сетевые файлы выглядели так:
etc/systemd/network/30-wg0.netdev
:
[NetDev]
Name = wg0
Kind = wireguard
Description = Wireguard
[WireGuard]
PrivateKey = XXXX
[WireGuardPeer]
PublicKey = XXXX
AllowedIPs = 0.0.0.0/0
Endpoint = XXXX:51820
PersistentKeepalive = 25
/etc/systemd/network/30-wg0.network
:
[Match]
Name=wg0
[Network]
Address = 10.0.3.227/19
DNS = X.X.X.X
[RoutingPolicyRule]
From = 10.222.111.0/24
# Or any other unused table number
Table = 242
[Route]
# The address of the interface, same as in Address line
Gateway = 10.0.3.227
# Same table number as above
Table = 242
С этой конфигурацией и curl --interface wg0
, и
# docker network create vpn --subnet 10.222.111.0/24
# docker run --rm --dns X.X.X.X --network vpn appropriate/curl -s https://ifconfig.me
должно работать нормально (обратите внимание, что я удалил параметр --ip
в docker run
, так как он не нужен ).
На самом деле я написал статью в блоге о своем решении с подробными инструкциями,вы можете взглянуть, если хотите, это может помочь:https://www.eisfunke.com/article/docker-wireguard-systemd.html.
Надеюсь, это поможет!