Buộc Raspberry để có được internet từ mạng cụ thể


13

Tôi đã định cấu hình RPi của mình để kết nối với khóa 3G khi khởi động bằng cách đặt ppp và wvdial trên

/etc/network/interfaces

Các Pi khởi động và tôi có kết nối internet. Hoàn hảo.

Bây giờ vấn đề của tôi là bất cứ khi nào tôi kết nối Pi với máy tính của mình qua ethernet (sử dụng hướng dẫn này ) thì kết nối internet sẽ bị mất. Ngay cả sau khi ngắt kết nối với máy tính của tôi, nó vẫn không kết nối, tôi cần khởi động lại để nó có thể lấy lại kết nối internet.

Có cách nào để Pi kết nối với internet thông qua giao diện của dongle thay vì cố gắng kết nối với máy tính của tôi không?


Cả hai kết nối có sử dụng DHCP không?
Lawrence

Đầu ra ifconfig của bạn trông như thế nào?
Bex

Đặt số liệu cao hơn trên eth0 so với ppp0 sẽ đạt được những gì bạn muốn. Số liệu thấp hơn là ưu tiên cao hơn.
Lawrence

Câu trả lời:


6

Giả sử bạn làm việc với linux (raspian, debian, v.v ...):

Bạn hỏi hai câu hỏi khác nhau, Đầu tiên tôi sẽ trả lời câu hỏi tiêu đề:

Buộc Raspberry để có được internet từ mạng cụ thể

Tôi sẽ khóa từ "mạng" của bạn (trái ngược với "giao diện") và trả lời điều này theo nghĩa IP thuần túy:

Nếu bạn có nhiều kết nối có thể cung cấp internet, bạn sẽ kiểm soát chúng sẽ được sử dụng thông qua bảng lộ trình.

Để xem bảng định tuyến tôi thường sử dụng netstat -rn( -rdành cho "hiển thị định tuyến", -ndành cho "hiển thị số cho tôi, đừng thử và thực hiện tra cứu DNS, có thể bị treo nếu internet của tôi không được cấu hình đúng"). Một ví dụ thực sự đơn giản sẽ như thế này:

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 ~ $ 

Dòng trong đầu ra đó cho biết các gói IP sẽ đi theo hướng nào là dòng có số phận 0.0.0.0và genmask 0.0.0.0, thường được gọi là default route(mặt nạ của 0.0.0.0tất cả các ký tự đại diện, đó thực sự là điểm đánh dấu của tuyến mặc định) và vì hiện tại nó trỏ đến một địa chỉ cụ thể trong phạm vi `192.168.9 ', lưu lượng truy cập internet sẽ đi qua giao diện ethernet.

Nếu tôi muốn chuyển internet của mình sang mạng khác, tôi sẽ sử dụng routelệnh và trong trường hợp này, do kết nối wifi của tôi không phải là điểm-điểm, tôi phải biết địa chỉ IP của bộ định tuyến có thể chuyển tiếp lưu lượng ra khỏi mạng đó (trong trường hợp của tôi là 172.20.10.1vậy) vì vậy tôi sẽ làm:

  1. Xóa tuyến đường mặc định hiện tại

    sudo route del default
    
  2. Thêm một tuyến mặc định mới cho mạng khác

    sudo route add default gw 172.20.10.1
    

FYI trong khi đó routelà những gì tôi sử dụng, tôi thấy một số người cho rằng nó không dùng nữa và thay vào đó khuyên bạn nên sử dụng ip routelệnh, xem bình luận của @Fred bên dưới để biết cú pháp. tài liệu tham khảo cho khấu hao

Có cách nào kết nối thông qua giao diện của dongle không

Đã được một thời gian kể từ khi tôi làm việc với pppwvdialkhông có cấu hình (hoặc ít nhất là các tài liệu tham khảo cho các hướng dẫn mà bạn đã theo dõi khi thiết lập chúng), thật khó để đoán được vấn đề nào bạn gặp phải, nhưng như một vài ý tưởng:

  • Là kết nối thực sự không hoạt động hoặc bạn vừa mất tuyến đường mặc định khi eth0 của bạn xuất hiện?
    • Kiểm tra điều này trong cả hai netstat -rnifconfig.
    • Là một giao diện trong netstat -rn? Nếu vậy, có một tuyến đường mặc định cho nó?
    • Trong ifconfigbạn có thấy giao diện cho dongle (có khả năng ppp) không? phải UPkhông
  • Tôi không thể nhớ nơi ppp/ wvdialđăng nhập, nhưng điều đó nên được kiểm tra. Nhật ký đó sẽ cho bạn biết trạng thái kết nối và sẽ cho bạn biết nếu toàn bộ hệ thống đã tắt vì một số lý do
  • Nếu bạn thấy một giao diện, hãy thử pingmột cái gì đó (... bất cứ thứ gì ...) trên đó và xem liệu kết nối có xuất hiện không.
    • Tôi biết ppp/ wvdialcombo có một số khả năng kết nối tự động (tùy thuộc vào cấu hình)
      • Vì vậy, nếu kết nối xuất hiện với ping (hoặc kết nối đã duy trì toàn bộ thời gian): đó có thể là tuyến mặc định (ppp) bị mất khi bạn đưa ethernet lên.
      • Nếu đây là vấn đề bạn chỉ cần thêm một tuyến mặc định và toàn bộ hệ thống sẽ trở lại trực tuyến.

2
ip routekhông hoàn toàn sử dụng cú pháp tương tự. Tuy nhiên, bạn có thể sao chép và dán đầu ra của nó để sử dụng làm đầu vào. Ví dụ: nếu nó hiển thị default via 192.168.9.1 dev eth0, bạn có thể xóa tuyến đường đó chỉ bằng cách thực thi ip route del default via 192.168.9.1 dev eth0. Bạn có thể dễ dàng sử dụng đầu ra làm mẫu để thêm các lệnh mới, vd ip route add default via 172.20.10.1 dev wlan0.
Fred
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.