Как вы, похоже, понимаете, любое решение, которое вы используете, намного хуже, чем открытие брандмауэра на машине B, чтобы позволить машине A.
Вы можете создать ssh-туннель от машины B к машине A, а затем использовать это. Синтаксис будет выглядеть примерно так (из машины A):
ssh -R 8081: localhost: 8080 user @ machineb
Это позволит людям подключаться к localhost: 8081 на машине A для подключения к порту 8080 на машинеb.
В этом случае это не очень хорошая идея, потому что вы теряете видимость трафика, затрудняя отладку, и без необходимости шифруете его через SSH.
Конечно, существует множество других способов сделать то же самое, например, настроить туннель OpenVPN между двумя компьютерами.