Если я отправляю данные на свой компьютер, используя его общедоступное имя хоста, действительно ли он идет через Интернет?


12

Чтобы уточнить:

Я использую свое публичное имя хоста для подключения к базе данных MySQL. Имя хоста соответствует внешнему IP моего сервера (например, 1.2.3.4). Данные, которые я отправляю / получаю через соединение MySQL, идут через Интернет вообще? Будет ли быстрее использовать localhost? Это займет полосу пропускания моего сервера?

Ответы:


28

Если вы хотите быть уверены, вы можете использовать traceroute 1.2.3.4. Это перечислит все маршрутизаторы между хостом, выполняющим команду, и устройством с IP-адресом 1.2.3.4.


3
+1 за включение слова «devive» в ваше предложение. Теперь я знаю еще одно английское слово.
Гани Симсек

en.wiktionary.org/wiki/devive говорит: «devive - сделать безжизненным». Я не совсем понимаю. Может быть, это должно быть «устройство»?
Anon

7
Таким образом, в основном, « это последний traceroute, который он когда-либо будет запускать »
Xeoncross

5
@ xeoncross - это чертовски след. Где взять версию с этой опцией командной строки? Я на Windows XP. Я также заинтересован в установке пинга смерти.
Anon

6
в окнах вы бы использовали tracert
Mauro

15

Если вы используете «localhost» в качестве имени хоста для подключения к вашему серверу MySQL, MySQL будет использовать не TCP, а сокеты. Это должен быть самый быстрый способ подключения к локально работающему серверу MySQL.

Если на вашем сервере внешний IP-адрес настроен «правильно», то есть он не находится за брандмауэром или прокси-сервером во внутренней сети, трафик не покинет ваш сервер, поскольку он знает, что целевой IP-адрес той же системы.


1
Кроме того, если вы работаете в Linux, с помощью «localhost» или «127.0.0.1» будет подключаться через loадаптер, который является псевдо-адаптером, который используется только для этих адресов. Не уверен насчет Windows, но я думаю, что она имеет нечто подобное.
Натан Моос

2
@Nathan Moos Как указано в руководстве по MySQL : при подключении к localhost программы MySQL пытаются подключиться к локальному серверу с помощью файла сокета Unix.
Ши

1
Я описывал более общую ситуацию, когда вы подключаетесь к localhost, а не к MySQL. Извините, что проигнорировал формулировку вопроса и ответа.
Натан Моос

5

Вы ничего не упоминаете о своем оборудовании для маршрутизации или коммутации, но вы можете сделать все возможное, чтобы ваши данные вышли наружу, прежде чем вернуться, но в действительности почти наверняка ваши данные не будут выходить таким образом.


Я совершенно уверен, что есть неявный вопрос: «Что мне нужно проверить, чтобы знать, что данные вообще не перемещаются наружу?»
Ложь Райан

Я согласен, но он не предоставляет никаких подробностей о своей маршрутизации или коммутации, поэтому на данном этапе невозможно добавить больше, не делая диких предположений.
Chopper3

3

Нет, если все находится на одной машине, она не покидает машину.


Весь трафик от машины к машине направляется через интерфейс обратной связи. Если вы отключитесь от сети, он все равно будет работать.
BillThor

@BillThor конечно, но это был не вопрос.
mailq

Не уверен насчет этого: он сказал, что имя соответствует общему IP-адресу машины. Если машина использует NAT с использованием перенаправления портов, она должна пройти как минимум до шлюза.
Джоэл Коэль

@BillThor IP-адреса, отличные от 127.0.0.1, назначаются аппарату сетью (маршрутизатор / коммутатор / ISP), поэтому при отключении от сети адреса фактически не назначаются.
Лукман

2
Это верно только в том случае, если сервер знает, что это 1.2.3.4, если он знает только, что он имеет внутренний ip (то есть 192.168.xx), чем данные будут, как минимум, отправлены маршрутизатору.
Unkwntech

2

если конфигурация ip вашего сервера на его машине использует публичный IP-адрес, то ваш сервер не покинет трафик (но безопаснее быть уверенным и в любом случае использовать localhost для повышения производительности)

если ваш IP-адрес указан и ваш маршрутизатор имеет общедоступный IP-адрес, а ваш сервер имеет внутренний IP-адрес, то, по крайней мере, трафик, скорее всего, покинет ваш сервер и будет отражен обратно на ваш сервер от маршрутизатора, при условии, что маршрутизатор отображает порт как часть переадресации портов - так что в некотором смысле трафик не покинет вашу сеть, но часть трафика уйдет с вашего сервера

без какой-либо информации о настройке сети я не могу быть более определенным, чем это


1

Отключите кабель Ethernet или отключите Wi-Fi и попробуйте подключиться к базе данных, и вы получите ответ. Нет суеты, нет суеты!


Даже близко не исправить. Локальная сеть?
Навахо

@navaho Оригинальный постер сказал «будет ли быстрее использовать localhost», что указывает на то, что база данных находится на том же компьютере, что и его приложение; поэтому для использования моего решения доступ к локальной сети не требуется.
Стивен Стрига

Вопрос заключался в том, что если я отправляю данные на мой компьютер через Интернет, действительно ли они передаются через Интернет? В описании я использую мое> публичное имя хоста <для подключения к базе данных MySQL. Имя хоста> разрешается на внешний IP-адрес моего сервера <(например, 1.2.3.4). Данные, которые я отправляю / получаю через соединение MySQL, идут через Интернет вообще? Ваш ответ не ответил на поставленный вопрос. Дерните за шнур и посмотрите, что получится, в лучшем случае, будет коротким. Да, вы ответили на дополнительный вопрос, будет ли быстрее использовать localhost, но что касается первоначального вопроса, то у вас не получилось.
Навахо

0

Ваши результаты могут отличаться, но я могу получить доступ к своей системе через внешний адрес, но маршрутизатор отключен от Интернета. Однако для этого мне пришлось настроить маршрутизатор с соответствующим фиксированным IP-адресом, так как обычно он выдается провайдером через DHCP.

Что касается разницы в скорости, теоретически использование localhost должно быть быстрее, поскольку оно устраняет различные издержки, связанные с обходом сети. В реальном выражении разница должна быть настолько минимальной, что вы никогда не сможете заметить ее.


0

В дополнение к traceroute (уже упоминавшемуся) вы можете использовать tcpdump или wireshark и следить за маршрутизацией любых соединений mysql с вашего хоста. Localhost всегда должен быть быстрее.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.