например, когда два приложения пишут в один файл или в одну консоль
Не большой знаток Линуксов, там поток и процесс равнозначны в плане работы std::mutex?
Но это же можно использывать по ситуации.
клиент изначально рассчитанный на использование человеком
Значит на микротике настроен NAT. Просто в NAT настраиваете проброс портов и указываете внутренний адрес и порт вашего сервера. Все. Тут даже маршрутизировать ничего не надо, т.к. сервер и микротик, видимо, находятся в одной локальной сети - у них прямой доступ друг к другу без маршрутизации.