Существует ли способ сделать TCP/UDP прокси (или NAT) так, чтобы конечная машина видела IP адрес источника?
=============================================================================================================

 Есть Windows server у меня дома.  

Провайдер блокирует входящие соединения. То есть сделать port forwarding я не могу.  

  

Задача: как сделать RDP-соединения до этого сервера?  

  

Вот два способа, которые работают, но не подходят:  

1) Беру VPS с белым IP, на неё - SSH tunnel.   

Это работает, но три недостатка:  

- для всех входящих соединений, их IP видится, как IP VPS'a. Становится невозможным настраивать firewall на целевой системе.  

- только TCP, нет UDP  

- тормозит из-за шифрования SSH  

  

2) Беру VPS c белым IP, на нём - rinetd, который проксирует порты не целевую систему с помощью WireGuard  

Работает значительно быстрей, но:  

- для всех входящих соединений, их IP видится, как IP VPS'a. Становится невозможным настраивать firewall на целевой системе.  

  

**Вопрос:**  

существует ли какое-то решение, как можно пробросить траффик на целевую систему так, чтобы  

- TCP & UDP   

- целевая система видела настоящий IP адрес источника  

? 

 В SSH есть и туннелирование (VPN). А дальше на обоих концах наруливаем для порта 3389 такие правила, чтоб пакеты ходили именно через этот новый туннель в обе стороны, и адреса транслировались в нужные моменты. Для UDP на стороне VPS DNAT, на стороне домашней сети SNAT 

 Используйте вместо SSH-туннеля VPN (например OpenVPN) со статическим назначением IP по пользователям. Конечный ресурс так же подключайте через VPN туннель.  

Это   

- быстрее  

- на уровне VPN можно ограничивать пользователя по IP  

- на уровне конечного ресурса можно разграничить по IP которые назначает VPN (т.е. фактически по пользователям). 

 У меня провайдер (дешевый) делает double-NAT , поэтому достучатся внутрь нереально по бюрократической причине. Нужно копать изнутри - это всегда побеждает. Куда и как копать ? зависит только от вас.