บังคับใช้ Raspberry เพื่อรับอินเทอร์เน็ตจากเครือข่ายเฉพาะ


13

ฉันกำหนดค่า RPi ของฉันให้เชื่อมต่อกับดองเกิล 3G ในการบู๊ตโดยตั้งค่า ppp และ wvdial

/etc/network/interfaces

รองเท้าบูทขึ้นและฉันมีการเชื่อมต่ออินเทอร์เน็ต สมบูรณ์

ตอนนี้ปัญหาของฉันคือเมื่อใดก็ตามที่ฉันเชื่อมต่อ Pi กับคอมพิวเตอร์ของฉันผ่านทางอีเธอร์เน็ต (โดยใช้บทช่วยสอนนี้) การเชื่อมต่ออินเทอร์เน็ตจะหายไป แม้หลังจากยกเลิกการเชื่อมต่อกับคอมพิวเตอร์แล้วยังไม่สามารถเชื่อมต่อได้ฉันต้องรีบูตเพื่อให้สามารถเชื่อมต่ออินเทอร์เน็ตได้อีกครั้ง

มีวิธีที่จะทำให้ Pi เชื่อมต่อกับอินเทอร์เน็ตผ่านอินเทอร์เฟซของดองเกิลแทนที่จะพยายามเชื่อมต่อกับคอมพิวเตอร์ของฉันหรือไม่?


การเชื่อมต่อทั้งสองใช้ DHCP หรือไม่
Lawrence

เอาต์พุต ifconfig ของคุณมีลักษณะอย่างไร
Bex

การตั้งค่าตัวชี้วัดที่สูงขึ้นบน eth0 มากกว่า ppp0 ควรบรรลุสิ่งที่คุณต้องการ ตัวชี้วัดที่ต่ำกว่าคือลำดับความสำคัญที่สูงกว่า
ลอเรนซ์

คำตอบ:


6

สมมติว่าคุณทำงานกับ linux (raspian, debian, ฯลฯ ... ):

คุณถามคำถามที่แตกต่างกันสองข้อแรกฉันจะตอบคำถามชื่อ:

บังคับใช้ Raspberry เพื่อรับอินเทอร์เน็ตจากเครือข่ายเฉพาะ

ฉันจะล็อคคำว่า "เครือข่าย" ของคุณ (ตรงข้ามกับ "ส่วนต่อประสาน") และตอบคำถามนี้ด้วยความรู้สึก IP ที่บริสุทธิ์:

หากคุณมีการเชื่อมต่อหลายอย่างที่สามารถให้บริการอินเทอร์เน็ตคุณจะควบคุมว่าจะใช้งานอะไรผ่านตารางเส้นทาง

ในการดูตารางเส้นทางที่ฉันใช้ตามปกติnetstat -rn( -rสำหรับ "แสดงเส้นทาง" ใช้-nสำหรับ "แสดงหมายเลขอย่าพยายามทำ DNS การค้นหาซึ่งอาจหยุดทำงานหากอินเทอร์เน็ตของฉันไม่ได้ถูกกำหนดค่า") ตัวอย่างง่ายๆจริง ๆ จะมีลักษณะเช่นนี้:

pi@homeServer ~ $ netstat -rn
Kernel IP routing table
Destination     Gateway         Genmask         Flags   MSS Window  irtt Iface
0.0.0.0         192.168.9.1     0.0.0.0         UG        0 0          0 eth0
192.168.9.0     0.0.0.0         255.255.255.0   U         0 0          0 eth0
172.20.10.0     0.0.0.0         255.255.255.240 U         0 0          0 wlan0
pi@homeServer ~ $ 

บรรทัดในเอาต์พุตนั้นแสดงให้เห็นว่าแพ็กเก็ต IP จะไปทางไหนกับเส้นปลายทาง0.0.0.0และ genmask ของ0.0.0.0ซึ่งเป็นที่รู้จักกันทั่วไปว่าเป็นdefault route(หน้ากากของ0.0.0.0นั้นคือสัญลักษณ์แทนทั้งหมดนั่นคือเครื่องหมายของเส้นทางเริ่มต้น) และ เนื่องจากปัจจุบันชี้ไปยังที่อยู่เฉพาะในช่วง `192.168.9 'การรับส่งข้อมูลทางอินเทอร์เน็ตจะดำเนินการผ่านอินเทอร์เฟซอีเธอร์เน็ต

ถ้าฉันต้องการเปลี่ยนอินเทอร์เน็ตของฉันเป็นเครือข่ายอื่นฉันจะ (ตามรูท) ใช้routeคำสั่งและในกรณีนี้เนื่องจากการเชื่อมต่อ wifi ของฉันไม่ได้แบบจุดต่อจุดฉันต้องทราบที่อยู่ IP ของเราเตอร์ที่สามารถ ส่งต่อทราฟฟิกจากเครือข่ายนั้น (ในกรณีของฉันคือ172.20.10.1) ดังนั้นฉันจะทำ:

  1. ลบเส้นทางเริ่มต้นปัจจุบัน

    sudo route del default
    
  2. เพิ่มเส้นทางเริ่มต้นใหม่สำหรับเครือข่ายอื่น

    sudo route add default gw 172.20.10.1
    

FYI ในขณะrouteที่ฉันใช้อยู่ฉันเห็นบางคนคิดว่าเลิกใช้แล้วและแนะนำให้ใช้ip routeคำสั่งแทนดูความคิดเห็นของ @Fred ด้านล่างสำหรับไวยากรณ์ การอ้างอิงสำหรับการคัดค้าน

มีวิธีการเชื่อมต่อผ่านอินเตอร์เฟซของดองเกิลหรือไม่

มันถูกขณะที่ตั้งแต่ผมเคยทำงานกับpppและwvdialและไม่มีการกำหนดค่า (หรืออย่างน้อยการอ้างอิงถึงคำแนะนำที่คุณใช้ในการตั้งค่าพวกเขาขึ้นไป) ของมันยากที่จะคาดเดาซึ่งปัญหาการทำงานของคุณให้เป็น แต่เป็นความคิดไม่กี่:

  • การเชื่อมต่อล่มหรือคุณเพิ่งเสียเส้นทางเริ่มต้นเมื่อ eth0 ของคุณเข้ามา?
    • ตรวจสอบทั้งในและnetstat -rnifconfig
    • มีอินเทอร์เฟซnetstat -rnหรือไม่ ถ้าเป็นเช่นนั้นมีเส้นทางเริ่มต้นไปหรือไม่
    • ในifconfigคุณเห็นอินเตอร์เฟซสำหรับด็องเกิล (น่าจะppp)? มันคือUPอะไร
  • ฉันจำไม่ได้ว่าอยู่ที่ไหนppp/ wvdialบันทึก แต่ควรตรวจสอบ บันทึกดังกล่าวจะบอกสถานะการเชื่อมต่อของคุณและควรแจ้งให้คุณทราบว่าทั้งระบบได้ปิดตัวลงด้วยเหตุผลบางประการ
  • หากคุณเห็นอินเทอร์เฟซลองทำpingอะไร (... อะไรก็ได้ ... ) บนอินเทอร์เฟซนั้นและดูว่าการเชื่อมต่อเกิดขึ้นหรือไม่
    • ฉันรู้ว่าppp/ wvdialคำสั่งผสมมีความสามารถในการเชื่อมต่ออัตโนมัติ (ขึ้นอยู่กับการกำหนดค่า)
      • ดังนั้นหากการเชื่อมต่อเกิดขึ้นกับ ping (หรือการเชื่อมต่ออยู่ตลอดเวลา): อาจเป็นเส้นทางเริ่มต้น (ppp) ที่หายไปเมื่อคุณนำอีเทอร์เน็ตมา
      • หากนี่เป็นปัญหาคุณจะต้องเพิ่มเส้นทางเริ่มต้นและระบบทั้งหมดจะกลับมาออนไลน์

2
ip routeไม่ได้ใช้ไวยากรณ์เดียวกัน อย่างไรก็ตามคุณสามารถคัดลอกและวางเอาต์พุตเพื่อใช้เป็นอินพุต ตัวอย่างเช่นถ้ามันแสดงให้เห็นคุณสามารถลบเส้นทางที่เพียงโดยการดำเนินการdefault via 192.168.9.1 dev eth0 คุณสามารถใช้การส่งออกเป็นแม่แบบเพื่อเพิ่มคำสั่งใหม่เช่นip route del default via 192.168.9.1 dev eth0 ip route add default via 172.20.10.1 dev wlan0
Fred
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.