Есть два сервера: один с серым IP, другой с белым
На сером запущен syncthing (синхронизация файлов, но это не сильно важно), она принимает запросы на 22000 порт.
Нужно проксировать трафик через белый сервер на серый. Используем wireguard
Конфигурация серого сервера:
WireGuard:
[Interface]
Address = 10.7.0.5/24
DNS = 8.8.8.8, 8.8.4.4
PrivateKey = *он есть*
[Peer]
PublicKey = *он есть*
PresharedKey = *он есть*
AllowedIPs = 0.0.0.0/0, ::/0
Endpoint = WHITE_IP:51820
PersistentKeepalive = 25
Конфигурация белого сервера:
WireGuard:
[Peer]
PublicKey = *он есть*
PresharedKey = *он есть*
AllowedIPs = 10.7.0.5/32
А также пробрасываем порты:
iptables -t nat -A PREROUTING -p tcp --dport 22000 -j DNAT --to-destination 10.7.0.5
iptables -t nat -A PREROUTING -p udp --dport 22000 -j DNAT --to-destination 10.7.0.5
iptables -t nat -A PREROUTING -p udp --dport 21027 -j DNAT --to-destination 10.7.0.5
И все работает как надо. Но появился ньюанс
Теперь нужно сделать, чтобы все исходящие запросы (http например) с серого сервера шли через его собственный интернет, а не VPN
На этом этапе я как-то и остановился.
ip route серого:
10.7.0.0/24 dev wg0 proto kernel scope link src 10.7.0.5
172.17.0.0/16 dev docker0 proto kernel scope link src 172.17.0.1
192.168.1.0/24 dev eno0 proto kernel scope link src 192.168.1.43