Якщо я надсилаю дані на свій комп’ютер за допомогою свого загальнодоступного імені хоста, чи дійсно вони переходять через Інтернет?


12

Для уточнення:

Я використовую своє загальнодоступне ім'я хоста для підключення до бази даних MySQL. Ім'я хоста визначається зовнішнім IP-сервером мого сервера (наприклад, 1.2.3.4). Чи взагалі передаються дані, які я надсилаю / отримую через з'єднання MySQL через Інтернет? Чи буде швидше скористатися localhost? Чи займе він пропускну здатність мого сервера?

Відповіді:


28

Якщо ви хочете бути впевненими, можете скористатися traceroute 1.2.3.4. Тут буде перераховано всі маршрутизатори між хостом, який виконує команду, і пристроєм з 1.2.3.4 IP-адресою.


3
+1 за включення слова "ухилитися" у ваше речення. Тепер я знаю ще одне англійське слово.
Гані Сімсек

en.wiktionary.org/wiki/devive говорить: "відхилятися - не втрачати життя". Я збентежений. Може, це має бути "пристрій"?
неділя

7
Отже, " це остання траса, яку він коли-небудь курсуватиме "
Xeoncross

5
@xeoncross - Це одне пекло сліду. Де я можу отримати версію, в якій є цей параметр командного рядка? Я на Windows XP. Мені також цікаво встановити пінг смерті.
неділя

6
у Windows ви б використовували 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, використовуючи портфортування, вона повинна пройти як мінімум до шлюзу.
Джоель Коел

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

2
Це справедливо лише в тому випадку, якщо сервер знає, що це 1.2.3.4, якщо він тільки знає, що він має внутрішній ip (тобто 192.168.xx), ніж дані, як мінімум, будуть спрямовані на маршрутизатор.
Unkwntech

2

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

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

без будь-якої інформації про налаштування мережі я не можу бути більш визначеною, ніж це


1

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


Навіть близько до виправлення. Локальна мережа?
navaho

Плакат @navaho Original сказав: "чи було б швидше використовувати localhost", що вказує на те, що база даних знаходиться на тій же машині, що і його додаток; тому для використання мого рішення доступ до локальної мережі не потрібен.
Стівен Стрига

Питання полягало в тому, що якщо я надсилаю дані на свій комп’ютер через Інтернет, чи дійсно це відбувається через Інтернет? В описі я використовую моє> ім'я публічного хоста <для підключення до бази даних MySQL. Ім'я хоста> відповідає внутрішнім IP-серверам мого сервера <(наприклад, 1.2.3.4). Чи взагалі передаються дані, які я надсилаю / отримую через з'єднання MySQL через Інтернет? Ваша відповідь не відповіла на поставлене запитання. Дістаньте шнур і подивіться, що станеться, в кращому випадку, підходить коротко. Так, ви відповіли на другорядне запитання, чи швидше буде використовувати localhost, але щодо оригінального питання вам не вдалося.
navaho

0

Ваші результати можуть відрізнятися, але я можу отримати доступ до моєї системи через зовнішню адресу просто чудово, якщо маршрутизатор відключений від Інтернету. Однак для цього мені довелося налаштувати маршрутизатор відповідною фіксованою IP-адресою, оскільки це, як правило, видається провайдером через DHCP.

Що стосується різниці швидкостей, то теоретично використання localhost повинно бути швидшим, оскільки воно видаляє різні накладні витрати, які беруть участь у проходженні мережі. У реальному виразі різниця повинна бути настільки мінімальною, що ви ніколи не зможете це помітити.


0

На додаток до traceroute (вже згадувалося), ви можете використовувати tcpdump або wireshark і спостерігати за тим, щоб будь-які з'єднання mysql виходили з вашого хоста. Localhost завжди повинен бути швидшим.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.