Как подключиться к хосту в локальной сети извне этой локальной сети?
Как подключиться к socks серверу, запущенному на компьютере в локальной сети (ноут подключенный к wifi) извне этой сети.
Вариант с port forwarding на роутере, работает, но не подходит по требованиям: пользователь должен запускать программу, а мы к нему подключаться с сервера. Без действий по настройки роутера для пользователя.
Альтернативные подходы возможны. Код и клиента и сервера на js. Цель подключаться к хосту как к прокси серверу.
Akina,
Требование, которому противоречит: пользователь должен запускать программу, а мы к нему подключаться с сервера. Без действий по настройки роутера для пользователя.
Требование, которому противоречит: пользователь должен запускать программу, а мы к нему подключаться с сервера.
Вот ты только что явно написал: "мы (должны) к нему подключаться с сервера". Теперь посмотри, что ты раньше говорил: "Как подключиться к socks серверу". Сплошной винегрет.
Так кто где - сервер в локалке за NAT и клиент снаружи, или наоборот? Кто к кому подключается, кто инициализирует соединение - клиент к серверу или сервер к клиенту?
Akina, простите за путаницу.
говоря "с сервера", я имею в виду мою выделенную машину на хостинге.
в текущей реализации на клиенте я запускаю socks сервер, чтобы к нему подключаться со своей машины. но хочу переделать это, чтобы избежать необходимости port forwarding.
почему "проброс порта" не подходит по требованиям, если проброс ровно для этого и создавался ??
озвучьте эти требования и тогда будет дан правильный ответ.
Требование, которому противоречит: пользователь должен запускать программу, а мы к нему подключаться с сервера. Без действий по настройки роутера для пользователя.
return_o, уже лучше,
запускаемая программа должна стучаться на ваш сервер и создавать TCP-соединение (а также поддерживать его открытость все время пока работает программа), по которому можно простучаться с сервера в программу.
либо еще несколько вариантов.
а причем здесь js ?? эта система не связана с яп.
в программе, работающей на клиенте открываешь tcp-соединение до сервера, авторизируешься и ждешь команд, периодически пингуя сервер через соединение для того чтобы tcp не отвалился.
серверная програмка биндит порт на получение соединений, принимает клиентов и распределяет по ним команды, когда появятся.
Вариант именно с порт форвардинг. Иначе то как к серверу подключатся извне? если клиент не может достучаться до этого сервера)))
Вариант решения - проксируйте соединения сервера через свой "сервак"...
Например у клиента поднимается vpn тунель до вашего сервака и открывается нужный порт. В итоге
кто то стучится на имя вашего сервака>>сервак переадресовывет его на пользователя(который сервер socks)
Ну либо наверно можно без ВПН, каким нить прокси или nginx... ту же схему сделать