Дано:
1. Домашний сервер на Ubuntu 24.04. Назначен IP роутером 192.168.0.187, Peer Wireguard 10.18.0.2.
2. VPS на Debian 11 с IP 89.111.111.11. Установлен Wireguard 10.18.0.1.
Задача:
При обращении из интернета к IP 89.111.111.11 открывать сайты с домашнего сервера (порты 80, 443, 465, 5432, 22) и иметь доступ из интернета к Postgress и SSH.
Сделано:
Довольно просто пробросил порты 80 и 443. Сайты открываются. Порты 465, 5432 - не проверял ещё.
Для этого установил Wireguard и выполнил несколько команд:
iptables -t nat -A PREROUTING -p tcp --dport 80 -j DNAT --to-destination 10.18.0.2:80
iptables -t nat -A PREROUTING -p tcp --dport 443 -j DNAT --to-destination 10.18.0.2:443
iptables -t nat -A PREROUTING -p tcp --dport 465 -j DNAT --to-destination 10.18.0.2:465
iptables -t nat -A PREROUTING -p tcp --dport 5432 -j DNAT --to-destination 10.18.0.2:5432
iptables -t nat -A POSTROUTING -j MASQUERADE
echo 1 > /proc/sys/net/ipv4/ip_forward
Wireguard имеет примерно такие настройки:# конфигурация интерфейса
[Interface]
# адрес интерфейса на стороне сервера
# и маска всей виртуальной сети
Address = 10.18.0.1/24
PrivateKey = содержимое файла server.priv
# UDP-порт, на котором сервер будет принимать соединения
ListenPort = 35535
# конфигурация удалённого клиента
[Peer]
PublicKey = содержимое файла client.pub
PresharedKey = содержимое файла wg.preshared
# адреса для проброса через туннель
# в данном случае только адрес клиента
AllowedIPs = 10.18.0.2/32
Пинг между 10.18.0.1 и 10.18.0.2 есть, сайты открывает.
Но соединиться из интернета по SSH с домашним сервером не могу.
Надо, чтобы при 89.111.111.11:22 попадал на сервер VPS, а при 89.111.111.11:2222 попадал на домашний сервер.
Пытался сделать так:
iptables -t nat -A PREROUTING -p tcp --dport 2222 -j DNAT --to-destination 10.18.0.2:22
iptables -t nat -A POSTROUTING -p tcp -s 10.18.0.2 --sport 22 -j SNAT --to-source 89.111.111.11:2222
и
iptables -t nat -A PREROUTING -d 10.18.0.1 -p tcp --dport 22 -j DNAT --to-dest 192.168.0.187:22
iptables -t nat -A POSTROUTING -d 192.168.0.187 -p tcp --sport 22 -j SNAT --to-source 10.18.0.1:22
Пробовал на домашнем такую команду
sudo ufw allow from 0.0.0.0/0 proto tcp to any port 22
Но достучаться по SSH можно только из домашней сети WIFI, из интернета попасть на домашний сервер по SSH по 89.111.111.11:2222 не получается, через секунд 15 закрывается putty из-за неудачной попытки соединиться, не доходит до ввода логина/пароля.
Что можно еще попробовать сделать?
PS: Неактуально. Снова попробовал войти. И вошёл. Странно. Спасибо.