Во-первых: это не дубликат. Все перепробовал, кроме OpenVPN или IPSec. Я получаю рукопожатие между клиентом и сервером, а SSH и Ping работают между клиентами, но я не могу получить доступ к глобальному Интернету или даже получить доступ к общедоступному IP-адресу сервера. Моя конфигурация обычная, ключи, конечные точки, я точно следовал руководству Linode. Мой клиент - openSUSE, но мой сервер - ubuntu, который, как я предполагаю, является узким местом.
У меня была именно такая ситуация. У вашего сервера есть общедоступный IP-адрес или он находится за NAT? Если он находится за NAT, команды iptables PostUp
и PostDown
из руководства Linode не применяются.
Попробуйте добавить следующее в файл конфигурации вашего сервера, заменив eth0
на то, как его называет ваш компьютер:
PreUp = iptables -t nat -A POSTROUTING -j MASQUERADE -o eth0
PreDown = iptables -t nat -D POSTROUTING -j MASQUERADE -o eth0
Вот пример конфигурации, где маршрутизатор находится в 10.0.1.1 (обычная сеть) и 10.0.0. 0.x — это новая сеть WireGuard, в которой сервер настроен на 10.0.0.1, а клиент — на 10.0.0.2. Используемый порт — 51820, а сетевой интерфейс по умолчанию — eth0.Весь трафик проходит через WireGuard, но не остается в подсети WireGuard. Клиент имеет доступ к локальной сети сервера (10.0.1.x) и общему интернету. Не забудьте пробросить порт 51820 с роутера на сервер и включить переадресацию ipv4 на сервере (# sysctl -w net.ipv4.ip_forward=1
)
[Interface]
Address = 10.0.0.1/24
PrivateKey = YOUR_SEVER_PRIVATE_KEY
ListenPort = 51820
PreUp = iptables --table nat --append POSTROUTING --jump MASQUERADE --out-interface eth0
PreDown = iptables --table nat --delete POSTROUTING --jump MASQUERADE --out-interface eth0
[Peer]
PublicKey = YOUR_CLIENT_PUBLIC_KEY
AllowedIPs = 10.0.0.2/32
[Interface]
Address = 10.0.0.2/24
DNS = 10.0.1.1
PrivateKey = YOUR_CLIENT_PRIVATE_KEY
ListenPort = 51820
[Peer]
PublicKey = YOUR_SERVER_PUBLIC_KEY
AllowedIPs = 0.0.0.0/0, ::/0
Endpoint = YOUR.DYNAMIC_DNS.COM:51820