@alexf95

Как получить внешний IP с помощью Wireguard?

Мой провайдер мобильного интернета не предоставляет белый IP. Мне необходимо его получение для хостинга игрового сервера на своем компьютере. Эту проблему пытаюсь решить с Wireguard, установленным на VPS (с Ubuntu 20.04) со статическим внешним IP.
Код серверной части:
[Interface]
Address = 10.10.10.1/24
ListenPort = 51820
SaveConfig = true
PrivateKey = XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX=
PostUp = iptables -A FORWARD -i %i -j ACCEPT; iptables -A FORWARD -o %i -j ACCEPT; iptables -t nat -A POSTROUTING -o ens3 -j MASQUERADE
PostDown = iptables -D FORWARD -i %i -j ACCEPT; iptables -D FORWARD -o %i -j ACCEPT; iptables -t nat -D POSTROUTING -o ens3 -j MASQUERADE

[Peer]
PublicKey = XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX=
AllowedIPs = 10.10.10.2

Код клиентской части:
[Interface]
PrivateKey = XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX=
Address = 10.10.10.2/32

[Peer]
PublicKey = XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX=
AllowedIPs = 10.10.10.1/32
Endpoint = 185.13.152.185:51820
PersistentKeepalive = 20

Когда в строке на клиентской части AllowedIPs = 10.10.10.1/32, то при включении Wireguard ничего не меняется. Если поменяю значение на 0.0.0.0/0, пропадает интернет, при установке 0.0.0.0/1, 128.0.0.0/1 работает как VPN (сервер за рубежом, легко проверить), но порты не открыты. При запуске игрового сервера посмотрел нужные порты командой netstat -an: UDP 0.0.0.0:7777, UDP 0.0.0.0:27015 и т.д. Команда ping 10.10.10.1 на клиенте выполняется успешно, ping 10.10.10.2 на сервере зависает. Как перенаправить нужные, желательно все порты через VPS ?
  • Вопрос задан
  • 343 просмотра
Решения вопроса 1
SignFinder
@SignFinder
Wintel\Unix Engineer\DevOps
Вы не сможете подать внешний ip на свой компьютер.
Но можете просто сделать:
1. DNAT через iptables для нужных вам портов с внешнего адреса на VPS на внутренний адрес Wireguard интерфейса на вашем компьютере - все кто обратится к внешнему адресу будут перенаправлены на ваш компьютер.
2. Установить на VPS traefik,haproxy,nginx и.т.п и проксировать нужные вам порты c внешнео адреса VPS на внутренние адреса.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@Drno
Включит NAT на стороне сервера в ядре
Ну и должно быть как раз 0.0.0.0/0 на клиенте
Ну и пробросить порты с помощью iptables - prerouting

так же по идее на клиенте надо nat и маскардд включить
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы