Почему вы не используете две отдельные сети? Легко добавить два IP разных сетей с одной картой (eth0, eth0:1, eth0:2 и т.д.).
ifconfig eth0 192.168.1.1/24
ifconfig eth0:0 192.168.10.1/24
Таким образом, все компьютеры будут находиться внутри сети без доступа к Интернету, который должен быть направлен через Ubuntu FW, который знает, как передать связь из одной сети в другую.
Если вы хотите немного пофантазировать, вы можете установить туннель nc
по запросу вместо (, если nc
установлен на B ), с чем-то вроде следующего (с хоста A):
$ ssh C -oProxyCommand='ssh -q B nc C 9103'
Эта прокси-команда означает ssh
для B и запуск nc
для подключения к порту 9103 на C в качестве туннелирования для ssh-соединения из A.
Если это то, что вы всегда делаете, вы должны поместить его в ~/.ssh/config
на хосте A со следующим:
host C
ProxyCommand ssh -q B nc C 9103
Тогда командная строка просто:
$ ssh C
На B создайте обратный туннель от A :59103. Конечная точка относительно B — C :9103.
ssh -R 59103:C:9103 A
Измените номер порта на A с его 59103 на что-то подходящее.
Это решение принимает ваше утверждение о том, что B может достичь C за чистую монету. Соединение от B к C не защищено с помощью ssh
.