На самом деле я никогда не пользовался такими прокси на практике, поэтому мои знания в основном основаны на теории сетей.
Но я полагаю, что это что-то вроде NAT с PortForwarding: запросы достигают его через интерфейс и портY, всегда перенаправляйте на интерфейс и порт X (конечно, интерфейс, но не порт может быть одинаковым). Так что все дело в настройке Сервера с надлежащей переадресацией (или как там его называют для прокси-серверов). А затем отправьте его на входящий порт.
К сожалению, он занимается администрированием сети / сервера, а не программированием. Это также звучит как домашнее задание. Для тех мы не предоставляем код, только направления.