Мой вопрос касается команд ssh
, sftp
, scp
, rsync
, и т. д., с помощью которых вы подключаетесь к другому компьютеру, который может находиться в вашей локальной сети (LAN) или в каком-то удаленном месте, к которому вы обычно подключаетесь через глобальную сеть (WAN) или более широкий Интернет.
Например, если бы вы использовали каждую из этих двух команд,
ssh [email protected]
ssh [email protected]
при этом вы подключаетесь именно к удаленной машине или машине локальной сети соответственно, меняется ли фактический путь подключения, если вы находитесь в той же локальной сети? Обратите внимание, publicIP.com представляет собой IP-адрес или доменное имя, которое применяется как к хосту, так и к машине, выполняющей эту команду.
В качестве примера рассмотрим случай, когда вы находитесь дома и у вас есть две машины, подключенные к Интернету через один и тот же маршрутизатор. Я бы ожидал, что вторая команда отправит данные из machine1-->router-->machine2
. Первая команда делает то же самое или она делает machine1-->router-->some remote path-->router-->machine2
? А во втором случае, будет ли это способствовать увеличению полосы пропускания, которую отслеживает и ограничивает ваш интернет-провайдер?
решение1
Во-первых, ваш маршрутизатор — это не просто маршрутизатор, это также коммутатор Ethernet, DHCP-сервер, точка доступа Wi-Fi, модем, …
Во-вторых, маршрутизация должна быть выполнена наилучшим образом: если она находится в той же подсети 192.168.0.x, то она будет маршрутизироваться машинами, а не проходить через маршрутизатор (не через часть маршрутизатора, а только через коммутатор Ethernet).
Что происходит, когда вы используете доменное имя, напримерpublicIP.com
- Сначала ищется имя: это может быть сделано с помощью
/etc/hosts
, bonjour/avahi, DNS или другого резолвера. (Этот шаг может включать запрос к публичному DNS-серверу, поэтому некоторый публичный трафик. Но он кэшируется в течение нескольких минут.) - Затем была предпринята попытка подключиться к IP-адресу.
например, если мы делаем и запись DNS равна , то DNS-поиск возвращает . Затем ssh устанавливает соединение и, следовательно, маршрутизируется так же, как если бы вы указали .ssh [email protected]
A
publicIP.com
192.168.0.100
192.168.0.100
ssh [email protected]
192.168.0.100
Примечание по http
В http исходное имя также передается серверу (после установления соединения), это иногда используется для различения того, к какому виртуальному серверу подключаться (по тому же IP-адресу).