Вот эта сетевая диаграмма
|--local network A--| |--local network B--|
| Server A | firewall A |-- ipv6 only internet -- | firewall B | Server B |
|-------------------| |-------------------|
Брандмауэр A и B разрешают только исходящие соединения и не принимают входящие соединения. Оба сервера работают под управлением Ubuntu 18.
Возможно ли установить SSH-соединение от A к B или от B к A? Я хочу, чтобы два сервера могли общаться друг с другом напрямую.
Если нет, у меня есть сервер C в Интернете, который может принимать входящие соединения от обоих серверов A и B, но сервер C имеет ограниченную полосу пропускания, есть ли способ разрешить серверу C помогает A и B установить SSH-соединение без ретрансляции C?
Я пошутил по поводу VPN. Насколько мне известно, для этого также требуется, чтобы по крайней мере один сервер мог принимать входящие соединения или ретранслировать сервером C. Я надеюсь, что они могут связываться напрямую.
Чтобы заставить A или B видеть локальные сети друг друга, проще всего открыть брандмауэр для разрешенного трафика. Если в вашей организации есть вариант использования для подключения этих сетей, следует изменить политику брандмауэра.
Может быть реализовано несколькими способами: VPN (IPSec, OpenVPN, WireGuard), какой-то контроллер SD-WAN, который управляет соединениями VPN за вас или, возможно, напрямую из Интернета к приложениям, если они зашифрованы и защищены (веб-приложения https).
Оба подключения к C предоставляют им доступ к сети C. Подумайте о подключении к облаку. Однако вы запросили прямой переход от A к B. Кроме того, хосты инфраструктуры используют C в качестве узлового узла.
Если вам нужно передать большой объем данных, я бы предложил использовать Syncthing .
По умолчанию он будет использовать общедоступные реле, если нет прямого соединения между хостами. Протокол и передача зашифрованы, но если вы все еще беспокоитесь, вы можете запустить собственное реле на C и установить его на A и B.