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.