공개 호스트 이름을 사용하여 컴퓨터로 데이터를 보내면 실제로 인터넷을 통해 전송됩니까?


12

명확히하기 위해 :

공개 호스트 이름을 사용하여 MySQL 데이터베이스에 연결하고 있습니다. 호스트 이름은 서버의 외부 IP (예 : 1.2.3.4)로 확인됩니다. MySQL 연결을 통해 보내고받는 데이터가 인터넷을 통해 전송됩니까? localhost를 사용하는 것이 더 빠릅니까? 서버 대역폭을 차지합니까?

답변:


28

확실하게하려면을 사용할 수 있습니다 traceroute 1.2.3.4. 이것은 명령을 실행하는 호스트와 1.2.3.4 IP 주소를 가진 장치 사이의 모든 라우터를 나열합니다.


3
문장에 "devive"라는 단어를 포함시켜 +1. 이제 영어 단어가 하나 더 있습니다.
Gani Simsek

en.wiktionary.org/wiki/devive 는 "devive-To life life."라고 말합니다. 혼란 스러워요. "장치"여야합니까?
anon

7
그래서 기본적으로, " 그가 마지막으로
뛸 경로입니다

5
@xeoncross-트레이스 루트의 지옥 중 하나입니다. 이 명령 행 옵션이있는 버전은 어디서 구할 수 있습니까? Windows XP를 사용하고 있습니다. 또한 ping의 죽음을 설치하는 데 관심이 있습니다.
anon

6
Windows에서는 tracert를 사용합니다
Mauro

15

MySQL 서버에 연결하기 위해 호스트 이름으로 "localhost"를 사용하면 MySQL은 TCP가 아니라 소켓을 사용합니다. 로컬로 실행중인 MySQL 서버에 연결하는 가장 빠른 방법입니다.

서버에 외부 IP가 "적절하게"설정되어있는 경우, 즉 내부 네트워크의 방화벽이나 프록시 뒤에 있지 않은 경우 대상 IP 주소가 동일한 시스템임을 알기 때문에 트래픽이 서버를 떠나지 않습니다.


1
또한 Linux를 사용하는 경우 "localhost"또는 "127.0.0.1"을 lo사용하면 해당 주소에만 사용되는 의사 어댑터 인 어댑터 를 통해 연결됩니다 . Windows에 대해서는 확실하지 않지만 비슷한 것이 있다고 생각합니다.
Nathan Moos

2
@Nathan Moos MySQL 매뉴얼에 명시된 바와 같이 : 로컬 호스트에 연결하기 위해 MySQL 프로그램은 Unix 소켓 파일을 사용하여 로컬 서버에 연결을 시도합니다.
Shi

1
필자는 MySQL이 아닌 localhost에 연결하는보다 일반적인 상황에 대해 설명했습니다. 질문과 답변의 문구를 무시해서 죄송합니다.
Nathan Moos

5

라우팅 또는 스위칭 장비에 대해서는 언급하지 않았지만 데이터가 다시 나오기 전에 외부로 나가는 것을 막을 수는 있지만 실제로는 거의 확실하게 데이터가 이런 식으로 나오지 않을 것입니다.


"데이터가 전혀 외부로 이동하지 않는다는 것을 알기 위해 무엇을 확인해야합니까?"라는 암시적인 질문이 있다고 확신합니다.
Lie Ryan

동의하지만, 그의 라우팅 또는 스위칭에 대한 세부 정보를 제공하지 않으므로이 단계에서 거친 가정을하지 않고 더 추가 할 수 없습니다.
Chopper3

3

하나의 머신에 모두 있으면 머신을 떠나지 않습니다.


머신에서 머신으로의 모든 트래픽은 루프백 인터페이스를 통해 라우팅됩니다. 네트워크 연결을 끊어도 여전히 작동합니다.
BillThor

@BillThor 확실히, 그러나 그것은 질문이 아닙니다.
mailq

확실하지 않습니다 : 이름이 컴퓨터의 공용 (인터넷) IP 주소로 확인됩니다. 포트 포워딩을 사용하여 머신이 NAT 뒤에있는 경우 최소한 게이트웨이까지 가야합니다.
Joel Coel

@BillThor 127.0.0.1 이외의 IP 주소는 네트워크 (라우터 / 스위치 / ISP)에 의해 기기에 할당되므로 네트워크 연결을 해제하면 주소가 효과적으로 할당 해제됩니다.
Lukman

2
이것은 서버가 1.2.3.4임을 알고있는 경우에만 해당되며, 데이터가 최소한 라우터로 전송되는 것보다 내부 IP (예 : 192.168.xx)를 가지고 있다는 것을 알고있는 경우에만 해당됩니다.
Unkwntech

2

머신의 서버 IP 구성이 퍼블릭 IP 주소를 사용하는 경우 트래픽이 서버를 떠나지 않습니다 (그러나 성능상의 이점을 위해 어쨌든 localhost를 사용하는 것이 더 안전합니다)

IP가 사용 중이고 라우터에 공용 IP가 있고 서버에 내부 IP가있는 경우 최소한 트래픽이 서버를 떠나 라우터에서 포트 반사를 가정 할 경우 라우터에서 서버로 다시 반영 될 가능성이 높습니다. 포트 포워딩의 일부-어떤 의미에서는 트래픽이 네트워크를 떠나지 않지만 일부 트래픽은 서버를 떠날 것입니다

네트워크 설정 정보가 없으면 그보다 더 명확하지 않습니다.


1

이더넷 케이블을 분리하거나 Wi-Fi를 분리하고 데이터베이스 연결을 시도하면 답을 얻을 수 있습니다. 소란도없고 무스도 없습니다!


정확하지도 않습니다. 지역 네트워크?
navaho

@navaho Original poster는 "localhost를 사용하는 것이 더 빠를 것"이라고 말했는데 데이터베이스가 자신의 응용 프로그램과 동일한 컴퓨터에 있음을 나타냅니다. 따라서 내 솔루션을 사용하기 위해 로컬 네트워크 액세스가 필요하지 않습니다.
Steven Striga

문제는 인터넷을 통해 컴퓨터로 데이터를 보내면 실제로 인터넷을 통과합니까? 설명은 내> public hostname <을 사용하여 MySQL 데이터베이스에 연결하는 것입니다. 호스트 이름은 내 서버의 외부 IP로 확인됩니다 (예 : 1.2.3.4). MySQL 연결을 통해 보내고받는 데이터가 인터넷을 통해 전송됩니까? 답변이 제시된대로 질문에 답변하지 않았습니다. 코드를 잡아 당기면 어떤 일이 일어나는지 알 수 있습니다. 예, 보조 질문에 대답했는데 localhost를 사용하는 것이 더 빠를 것이지만 원래 질문에 대해서는 부족했습니다.
navaho

0

결과는 다를 수 있지만 인터넷 연결이 끊긴 라우터를 사용하면 외부 주소를 통해 시스템에 액세스 할 수 있습니다. 그러나 이렇게하려면 라우터가 적절한 고정 IP 주소로 구성해야합니다. 이는 일반적으로 ISP를 통해 DHCP를 통해 발급되기 때문입니다.

속도 차이에 관해서는 이론적으로 localhost를 사용하는 것이 네트워크 통과와 관련된 다양한 오버 헤드를 제거하기 때문에 더 빠릅니다. 실제로는 차이가 너무 작아서 눈에 띄지 않아야합니다.


0

traceroute (이미 언급 한 것) 외에도 tcpdump 또는 wireshark를 사용하여 호스트에서 mysql 연결이 라우팅되는지 확인할 수 있습니다. 로컬 호스트는 항상 더 빠릅니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.