Jeśli przesyłam dane do mojego komputera przy użyciu jego publicznej nazwy hosta, czy faktycznie przesyłane są przez Internet?


12

Wyjaśnić:

Korzystam z mojej publicznej nazwy hosta, aby połączyć się z bazą danych MySQL. Nazwa hosta odnosi się do zewnętrznego adresu IP mojego serwera (np. 1.2.3.4). Czy dane, które wysyłam / odbieram przez połączenie MySQL, są w ogóle przesyłane przez Internet? Czy szybsze byłoby użycie localhost? Czy zajmie to przepustowość mojego serwera?

Odpowiedzi:


28

Jeśli chcesz być pewien, możesz użyć traceroute 1.2.3.4. Spowoduje to wyświetlenie listy wszystkich routerów między hostem uruchamiającym polecenie a urządzeniem o adresie IP 1.2.3.4.


3
+1 za włączenie słowa „devive” do zdania. Teraz znam jeszcze jedno angielskie słowo.
— Gani Simsek

en.wiktionary.org/wiki/devive mówi „devive - Aby uczynić bez życia”. Jestem zmieszany. Może powinno to być „urządzenie”?
— anon

7
Tak więc w zasadzie „ to ostatni
— ślad,

5
@xeoncross - To jedno piekło traceroute. Gdzie mogę uzyskać wersję z tą opcją wiersza poleceń? Korzystam z systemu Windows XP. Interesuje mnie również instalacja ping śmierci.
— anon

6
w oknach używałbyś tracert
— Mauro

15

Jeśli użyjesz „localhost” jako nazwy hosta do łączenia się z serwerem MySQL, MySQL nie będzie używać TCP, ale gniazd. Powinien to być najszybszy sposób połączenia z lokalnie działającym serwerem MySQL.

Jeśli Twój serwer ma skonfigurowane zewnętrzne IP „poprawnie”, to znaczy nie znajduje się za zaporą ogniową lub proxy w sieci wewnętrznej, ruch nie opuści twojego serwera, ponieważ wie, że docelowy adres IP to ten sam system.


1
Ponadto, jeśli korzystasz z Linuksa, użycie „localhost” lub „127.0.0.1” połączy się za pośrednictwem loadaptera, który jest pseudo-adapterem używanym tylko dla tych adresów. Nie jestem pewien co do systemu Windows, ale myślę, że ma coś podobnego.
— Nathan Moos,

2
@Nathan Moos Jak stwierdzono w podręczniku MySQL : W przypadku połączeń z
— Shi,

1
Opisałem bardziej ogólną sytuację, w której łączysz się z hostem lokalnym, niekoniecznie MySQL. Przepraszam, że zignorowałem treść pytania i odpowiedzi.
— Nathan Moos,

5

Nie wspominasz nic o swoim routingu lub przełączaniu sprzętu, ale możesz zrobić wszystko, aby upewnić się, że dane wychodzą na zewnątrz przed powrotem, ale w rzeczywistości prawie na pewno Twoje dane nie będą wychodzić w ten sposób.


Jestem pewien, że istnieje ukryte pytanie: „Co muszę sprawdzić, aby wiedzieć, że dane w ogóle nie trafiają na zewnątrz?”
— Lie Ryan,

Zgadzam się, ale nie podaje żadnych szczegółów na temat swojego routingu lub przełączania, więc na tym etapie nie można dodać więcej bez niepotrzebnych założeń.
— Chopper3

3

Nie, jeśli wszystko jest na jednej maszynie, nie opuszcza maszyny.


Cały ruch z maszyny do maszyny jest kierowany przez interfejs sprzężenia zwrotnego. Jeśli odłączysz się od sieci, nadal będzie działać.
— BillThor,

@BillThor na pewno, ale to nie było pytanie.
— mailq

Nie jestem tego pewien: napisano, że nazwa odnosi się do publicznego adresu IP komputera. Jeśli maszyna znajduje się za NAT za pomocą przekazywania portów, musi przynajmniej dojechać do bramy.
— Joel Coel,

@BillThor Adresy IP inne niż 127.0.0.1 są przypisywane do urządzenia przez sieć (router / przełącznik / ISP), więc rozłączenie z siecią skutecznie anuluje przypisanie adresów.
— Lukman

2
Jest to prawdą tylko wtedy, gdy serwer wie, że jest to 1.2.3.4, jeśli wie tylko, że ma wewnętrzny ip (tj. 192.168.xx), wówczas dane zostaną przynajmniej przesłane do routera.
— Unkwntech,

2

jeśli twoja konfiguracja IP serwera na swoim komputerze używa publicznego adresu IP, ruch nie opuści twojego serwera (ale bezpieczniej jest upewnić się i używać localhost i tak dla zwiększenia wydajności)

jeśli twój adres IP jest nazwany, a router ma publiczny adres IP, a serwer ma wewnętrzny adres IP, wówczas ruch będzie co najmniej opuszczał serwer i był odbijany z powrotem na serwer z routera, zakładając, że router dokonuje odbicia portu jako część przekierowania portów - więc w pewnym sensie żaden ruch nie opuści sieci, ale część ruchu opuści serwer

bez żadnych informacji o konfiguracji sieci nie mogę być bardziej ostateczny


1

Odłącz kabel Ethernet lub odłącz Wi-Fi i spróbuj połączyć się z bazą danych, a otrzymasz odpowiedź. Bez kłopotów, bez musów!


Nawet nie blisko poprawienia. Lokalna sieć?
— navaho

@navaho Oryginalny plakat powiedział: „szybciej byłoby użyć localhost”, co wskazuje, że baza danych znajduje się na tym samym komputerze co jego aplikacja; dlatego do korzystania z mojego rozwiązania nie jest potrzebny dostęp do sieci lokalnej.
— Steven Striga,

Pytanie brzmiało: jeśli przesyłam dane do mojego komputera przez Internet, czy faktycznie przesyłane są przez Internet? Opis: używam mojej> publicznej nazwy hosta <do połączenia z bazą danych MySQL. Nazwa hosta> odnosi się do zewnętrznego adresu IP mojego serwera <(np. 1.2.3.4). Czy dane, które wysyłam / odbieram przez połączenie MySQL, są w ogóle przesyłane przez Internet? Twoja odpowiedź nie odpowiedziała na postawione pytanie. Pociągnij za sznurek i przekonaj się, co się dzieje. Tak, odpowiedziałeś na drugie pytanie, czy użycie hosta lokalnego byłoby szybsze, ale jeśli chodzi o pierwotne pytanie, nie znalazłeś odpowiedzi.
— navaho

0

Twoje wyniki mogą się różnić, ale mogę uzyskać dostęp do mojego systemu za pośrednictwem adresu zewnętrznego, ale router jest odłączony od Internetu. Jednak w tym celu musiałem skonfigurować router z odpowiednim stałym adresem IP, ponieważ zwykle jest to wydawane przez dostawcę usług internetowych za pośrednictwem DHCP.

Jeśli chodzi o różnicę prędkości, teoretycznie użycie hosta lokalnego powinno być szybsze, ponieważ usuwa różne koszty ogólne związane z przechodzeniem przez sieć. W rzeczywistości różnica powinna być tak minimalna, abyś nigdy nie był w stanie jej zauważyć.


0

Oprócz traceroute (już wspomnianego) możesz użyć tcpdump lub wireshark i obserwować wszelkie połączenia mysql wychodzące z twojego hosta. Host lokalny powinien zawsze być szybszy.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.