То, что вы просите, невозможно с SOCKS, и при этом это не предназначено для этой цели. Прочитайте спецификацию еще раз более внимательно. Команда BIND предназначена для использования с протоколами нескольких соединений (например, FTP), где основное соединение используется для связи между клиентом и сервером, а BIND облегчает ситуации, когда серверу необходимо подключить вторичное соединение к клиенту после Клиент сообщает серверу, где подключиться. В этой ситуации клиент будет выдавать команду BIND для SOCKS, сообщая ему IP / порт сервера, чтобы он только принял это соединение, а затем отправляет полученный прослушивающий SOCKS IP / порт на сервер для подключения.
То, что вы запрашиваете, лучше обслуживается используемым маршрутизатором с определенными правилами переадресации портов. Затем вы можете открыть прослушивающий порт на маршрутизаторе, который принимает любое входящее соединение и перенаправляет его на прослушиваемый IP / порт вашего приложения. Большинство современных маршрутизаторов поддерживают uPNP (Universal Plug-N-Play), поэтому вы можете программировать правила пересылки программно, а не требовать административного доступа к программному обеспечению конфигурации маршрутизатора.