У меня сеть со следующей структурой.
Сервер в ПК2 - это простой сервер сокетов TCP в порту 8080.
Мне нужно получить доступ к ПК2 из другой внешней сети через сокет-клиент. Этот клиент сокета знает общедоступный IP-адрес (85.xxx.xxx.x), частный IP-адрес (192.168.0.21) и порт.
Как я могу получить доступ к ПК2 без переадресации портов на маршрутизаторе?
Если возможно, я хотел бы иметь ссылку на любой язык программирования в этом случае.
Как я могу получить доступ к ПК2 без переадресации портов на маршрутизаторе?
Предполагая, что маршрутизатор NAT (что почти наверняка, учитывая внутреннюю сеть 192.168.0.0/24), вы не можете сделать это без перенаправления портов на маршрутизаторе. Или что-то очень похожее.
Например, если вы можете подключиться к маршрутизатору по SSH, а затем к серверу, вы можете использовать SSH-туннелирование (которое является формой перенаправления портов).
Вы также можете подключить PC2 SSH к общедоступному серверу и сделать доступным туннелируемую конечную точку. (вам может понадобиться что-то вроде netcat или socat, чтобы помочь с этим)
В общем, переадресация портов на маршрутизаторе - это лучший вариант.
Есть способы включить такой вид связи без ручной настройки переадресации портов, но они обычно полагаются на поддержку маршрутизатора и / или внешнего брокера соединений.
Общее
Конкретный
Я хотел бы иметь ссылку на любой язык программирования в этом случае
Если вы пишете программное обеспечение на обоих концах, вероятно, есть много примеров, которым вы можете следовать.
Например, см.