ถ้าฉันส่งข้อมูลไปยังคอมพิวเตอร์โดยใช้ชื่อโฮสต์สาธารณะมันจะไปทางอินเทอร์เน็ตจริง ๆ หรือไม่?


12

เพื่อชี้แจง:

ฉันใช้ชื่อโฮสต์สาธารณะเพื่อเชื่อมต่อกับฐานข้อมูล MySQL ชื่อโฮสต์แก้ไขเป็น IP ภายนอกของเซิร์ฟเวอร์ของฉัน (เช่น 1.2.3.4) ข้อมูลที่ฉันกำลังส่ง / รับผ่านการเชื่อมต่อ MySQL จะผ่านอินเทอร์เน็ตหรือไม่? จะเร็วกว่าที่จะใช้ localhost หรือไม่ มันจะใช้แบนด์วิดท์ของเซิร์ฟเวอร์ของฉันหรือไม่

คำตอบ:


28

traceroute 1.2.3.4หากคุณต้องการให้แน่ใจว่าคุณสามารถใช้ นี่จะแสดงรายการเราเตอร์ทั้งหมดระหว่างโฮสต์ที่ใช้คำสั่งและอุปกรณ์ที่มีที่อยู่ IP 1.2.3.4


3
+1 สำหรับการรวมคำว่า "devive" ในประโยคของคุณ ตอนนี้ฉันรู้คำภาษาอังกฤษอีกคำหนึ่งแล้ว
Gani Simsek

en.wiktionary.org/wiki/deviveว่า "devive - เพื่อทำให้มีชีวิตชีวา." ฉันสับสน บางทีมันควรจะเป็น "อุปกรณ์"?
anon

7
โดยพื้นฐานแล้ว " นั่นคือ traceroute สุดท้ายที่เขาจะวิ่ง "
Xeoncross

5
@xeoncross - เป็นหนึ่งในนรกของ traceroute ฉันจะรับรุ่นที่มีตัวเลือกบรรทัดคำสั่งนี้ได้ที่ไหน ฉันใช้ Windows XP ฉันสนใจที่จะติดตั้ง ping แห่งความตายด้วย
อานนท์

6
ใน windows ที่คุณต้องการใช้ tracert
Mauro

15

หากคุณใช้ "localhost" เป็นชื่อโฮสต์สำหรับเชื่อมต่อกับเซิร์ฟเวอร์ MySQL ของคุณ MySQL จะไม่ใช้ TCP แต่ใช้ซ็อกเก็ต นี่เป็นวิธีที่เร็วที่สุดในการเชื่อมต่อกับเซิร์ฟเวอร์ MySQL ที่ใช้งานอยู่

หากเซิร์ฟเวอร์ของคุณมีการตั้งค่า IP ภายนอก "ถูกต้อง" นั่นคือมันไม่ได้อยู่หลังไฟร์วอลล์หรือพร็อกซีในเครือข่ายภายในการรับส่งข้อมูลจะไม่ออกจากเซิร์ฟเวอร์ของคุณเนื่องจากรู้ว่าที่อยู่ IP เป้าหมายเป็นระบบเดียวกัน


1
นอกจากนี้หากคุณอยู่บน Linux การใช้ "localhost" หรือ "127.0.0.1" จะเชื่อมต่อผ่านloอะแดปเตอร์ซึ่งเป็นอะแดปเตอร์หลอกที่ใช้สำหรับที่อยู่เหล่านั้นเท่านั้น ไม่แน่ใจเกี่ยวกับ Windows แต่ฉันคิดว่ามันมีบางอย่างที่คล้ายกัน
Nathan Moos

2
@Nathan Moos ตามที่ระบุไว้ในคู่มือ MySQL : สำหรับการเชื่อมต่อไปยัง localhost โปรแกรม MySQL พยายามเชื่อมต่อกับโลคัลเซิร์ฟเวอร์โดยใช้ไฟล์ซ็อกเก็ต Unix
Shi

1
ฉันอธิบายสถานการณ์ทั่วไปเพิ่มเติมที่คุณกำลังเชื่อมต่อกับ localhost ไม่จำเป็นต้องใช้ MySQL ขออภัยที่ฉันละเว้นข้อความของคำถามและคำตอบ
Nathan Moos

5

คุณไม่ได้เอ่ยถึงอะไรเกี่ยวกับอุปกรณ์การกำหนดเส้นทางหรือการสลับ แต่คุณสามารถออกนอกเส้นทางของคุณเพื่อให้แน่ใจว่าข้อมูลของคุณออกไปข้างนอกก่อนที่จะกลับมา แต่ในความเป็นจริงแล้วข้อมูลของคุณจะไม่ออกไปทางนี้


ฉันค่อนข้างแน่ใจว่ามีคำถามโดยนัย: "ฉันต้องตรวจสอบอะไรเพื่อทราบว่าข้อมูลไม่ได้เดินทางไปข้างนอกเลย"
โกหกที่

ฉันเห็นด้วย แต่เขาไม่ได้ให้รายละเอียดใด ๆ เกี่ยวกับการกำหนดเส้นทางหรือการสลับของเขาดังนั้นจึงเป็นไปไม่ได้ที่ขั้นตอนนี้จะเพิ่มขึ้นโดยไม่ต้องตั้งสมมติฐาน
Chopper3

3

ไม่หากทุกเครื่องอยู่ในเครื่องเดียวจะไม่ทิ้งเครื่องไว้


การรับส่งข้อมูลทั้งหมดจากเครื่องไปยังเครื่องจะถูกกำหนดเส้นทางผ่านส่วนต่อประสานย้อนกลับ หากคุณตัดการเชื่อมต่อจากเครือข่ายของคุณจะยังคงทำงาน
BillThor

@ BillThor แน่นอน แต่นั่นไม่ใช่คำถาม
mailq

ไม่แน่ใจเกี่ยวกับสิ่งนี้: มันบอกว่าชื่อจะแก้ไขเป็นที่อยู่ IP สาธารณะ (อินเทอร์เน็ต) ของเครื่อง หากเครื่องอยู่หลัง NAT โดยใช้การส่งต่อพอร์ตจะต้องดำเนินการอย่างน้อยที่สุดเท่าที่เกตเวย์
Joel Coel

@BillThor ที่อยู่ IP อื่น ๆ นอกเหนือจาก 127.0.0.1 ถูกกำหนดให้กับเครื่องโดยเครือข่าย (เราเตอร์ / สวิตช์ / ISP) ดังนั้นการยกเลิกการเชื่อมต่อจากเครือข่ายจะเป็นการยกเลิกการกำหนดที่อยู่อย่างมีประสิทธิภาพ
Lukman

2
นี่เป็นเรื่องจริงหากเซิร์ฟเวอร์รู้ว่าเป็น 1.2.3.4 หากรู้เพียงว่ามี IP ภายใน (เช่น 192.168.xx) มากกว่าข้อมูลที่จะส่งไปยังเราเตอร์อย่างน้อยที่สุด
Unkwntech

2

หากการกำหนดค่าเซิร์ฟเวอร์ IP ของคุณบนเครื่องใช้ที่อยู่ IP สาธารณะจะไม่มีการรับส่งข้อมูลใด ๆ ที่จะทำให้เซิร์ฟเวอร์ของคุณ (แต่ปลอดภัยกว่าเพื่อให้แน่ใจและใช้ localhost ต่อไปเพื่อประโยชน์ด้านประสิทธิภาพ)

หาก IP ของคุณไม่ระบุชื่อและเราเตอร์ของคุณมี IP สาธารณะและเซิร์ฟเวอร์ของคุณมี IP ภายในจากนั้นปริมาณการรับส่งข้อมูลอย่างน้อยที่สุดจะออกจากเซิร์ฟเวอร์ของคุณและสะท้อนกลับเข้าสู่เซิร์ฟเวอร์ของคุณจากเราเตอร์โดยสมมติว่าเราเตอร์ ส่วนหนึ่งของการส่งต่อพอร์ต - ดังนั้นจึงไม่มีทราฟฟิกที่จะออกจากเครือข่ายของคุณ แต่ทราฟฟิกบางอย่างจะออกจากเซิร์ฟเวอร์ของคุณ

ไม่มีข้อมูลการตั้งค่าเครือข่ายใด ๆ ฉันไม่สามารถสรุปได้มากกว่านั้น


1

ถอดสายเคเบิลอีเธอร์เน็ตหรือปลดการเชื่อมต่อ wifi แล้วลองเชื่อมต่อฐานข้อมูลแล้วคุณจะได้คำตอบ ไม่เอะอะไม่วุ่นวาย!


ไม่ได้ใกล้เคียงที่ถูกต้อง เครือข่ายท้องถิ่น
navaho

@navaho Original poster บอกว่า "จะเร็วกว่าการใช้ localhost" หรือไม่ซึ่งระบุว่าฐานข้อมูลอยู่ในเครื่องเดียวกับแอปพลิเคชันของเขา ดังนั้นการใช้โซลูชันการเข้าถึงเครือข่ายท้องถิ่นของฉันจึงไม่จำเป็น
Steven Striga

คำถามคือถ้าฉันส่งข้อมูลไปยังคอมพิวเตอร์ของฉันผ่านอินเทอร์เน็ตจริง ๆ แล้วมันจะไปทางอินเทอร์เน็ตจริง ๆ ? คำอธิบายคือฉันใช้> ชื่อโฮสต์สาธารณะ <เพื่อเชื่อมต่อกับฐานข้อมูล MySQL ชื่อโฮสต์> แก้ไขเป็น IP ภายนอกของเซิร์ฟเวอร์ของฉัน <(เช่น 1.2.3.4) ข้อมูลที่ฉันกำลังส่ง / รับผ่านการเชื่อมต่อ MySQL จะผ่านอินเทอร์เน็ตหรือไม่? คำตอบของคุณไม่ได้ตอบคำถามตามที่โพสต์ไว้ งัดสายและดูว่าเกิดอะไรขึ้นที่ดีที่สุดขึ้นมาสั้น ๆ ใช่คุณตอบคำถามรองจะเร็วกว่าที่จะใช้ localhost หรือไม่ แต่สำหรับคำถามดั้งเดิมที่คุณถามสั้น ๆ
navaho

0

ผลลัพธ์ของคุณอาจแตกต่างกัน แต่ฉันสามารถเข้าถึงระบบของฉันผ่านที่อยู่ภายนอกได้ดีเมื่อเราเตอร์ถูกตัดการเชื่อมต่อจากอินเทอร์เน็ต อย่างไรก็ตามในการทำเช่นนี้ฉันต้องกำหนดค่าเราเตอร์ด้วยที่อยู่ IP คงที่ที่เหมาะสมเนื่องจาก ISP นี้จะออกผ่าน DHCP ตามปกติ

สำหรับความแตกต่างของความเร็วการใช้ localhost ในทางทฤษฎีควรจะเร็วกว่าเพราะมันจะกำจัดค่าโสหุ้ยต่าง ๆ ที่เกี่ยวข้องกับการข้ามผ่านเครือข่าย ในแง่จริงแม้ว่าความแตกต่างควรจะน้อยมากจนคุณไม่สามารถสังเกตเห็นได้


0

นอกเหนือจาก traceroute (ที่กล่าวถึงแล้ว) คุณสามารถใช้ tcpdump หรือ wireshark และดูการเชื่อมต่อ mysql ใด ๆ ที่ถูกกำหนดเส้นทางออกจากโฮสต์ของคุณ Localhost ควรเร็วกว่าเสมอ

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.