Имейте систему позади openVPN использования NAT для соединения с системой в середине.
Это может сохранить сетевое соединение открытым все время в зависимости от того, как Вы настраиваете его. Читайте на openvpn. http://openvpn.net/index.php/open-source/documentation.html
Вы могут использовать iptables для перенаправления трафика (скажите что ssh относительно порта вообще?) прибывающий из Интернета-> ЧЕЛОВЕК-> "мой сервер"
таким образом, Вы можете ssh (порт 2222)-> ЧЕЛОВЕК (перенаправляет 2222 для портирования 22)-> "мой сервер" (порт 22)
Затем можно скачкообразно двинуться к любой системе в той сети.
Я бы подумал, что он неправильно передает данные post / get / session? Играя с проксированием nginx, я нахожу лучшие подсказки в отслеживании временных меток между журналами прокси-сервера nginx в / var / log / nginx и сравнении их с журналами пройденных системных существ. Часто я нахожу такие вещи, как неправильная перезапись URL (например, случайная настройка nginx для передачи данных URI в переменную _GET вместо передачи сырого URL-адреса) или что-то просто «не найдено». Специально для 500 ошибок