เชื่อมต่ออินเทอร์เน็ตผ่าน USB บน BeagleBone Black


11

ฉันเพิ่งติดตั้ง Ubuntu 13.04 บน Beagle Bone Black ภาพนี้:

https://rcn-ee.net/deb/flasher/raring/BBB-eMMC-flasher-ubuntu-13.04-2013-10-08.img.xz

ไมโครคอนโทรลเลอร์นี้ช่วยให้สามารถแบ่งปันการเชื่อมต่ออินเทอร์เน็ตระหว่างโฮสต์พีซี (เวอร์ชั่น 12.04 (แม่นยำ) (64 บิต), เคอร์เนล Linux 3.2.0-56-generic) และ BeagleBone ผ่าน USB ดังนั้นฉันจึงไปและกำหนดค่าอุปกรณ์ดังนี้:

BeagleBone Black:

ifconfig usb0 192.168.7.2
route add default gw 192.168.7.1

โฮสต์พีซี:

sudo su
#eth0 is my internet facing interface, eth3 is the BeagleBone USB connection
ifconfig eth2 192.168.7.1
iptables --table nat --append POSTROUTING --out-interface eth0 -j MASQUERADE
iptables --append FORWARD --in-interface eth2 -j ACCEPT
echo 1 > /proc/sys/net/ipv4/ip_forward

หลังจากการเชื่อมต่ออินเทอร์เน็ตใช้งานได้ฉันจะping 8.8.8.8ได้ผลลัพธ์:

PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data.
64 bytes from 8.8.8.8: icmp_req=1 ttl=47 time=4.63 ms
64 bytes from 8.8.8.8: icmp_req=2 ttl=47 time=4.68 ms
64 bytes from 8.8.8.8: icmp_req=3 ttl=47 time=4.57 ms
64 bytes from 8.8.8.8: icmp_req=4 ttl=47 time=4.58 ms
^C
--- 8.8.8.8 ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3005ms
rtt min/avg/max/mdev = 4.578/4.620/4.682/0.063 ms

หากต้องการกำหนดค่า DNS ด้วยฉันก็พิมพ์เช่นกันecho "nameserver 8.8.8.8" >> /etc/resolv.confแต่น่าเสียดายเมื่อping google.comฉันได้รับหลังจากคำนวณไม่กี่วินาทีping: unknown host google.com

ดังนั้น - ฉันรู้ว่าโซลูชันนี้ไม่ดี แต่สำหรับเซสชันนี้สามารถใช้งานได้และไม่ดี มีอะไรเพิ่มเติมทั้ง - BBB และพีซี - ใช้ resolvconf ความจริงแล้วฉันไม่มีเงื่อนงำวิธีกำหนดค่าเครือข่ายโดยใช้โปรแกรมนี้ ... ฉันลองเปลี่ยนเป็น/etc/network/interfacesBeagle Bone Black เช่นนี้:

# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).

# The loopback network interface
auto lo
iface lo inet loopback

# The primary network interface
#auto eth0
iface eth0 inet dhcp
# Example to keep MAC address between reboots
#hwaddress ether DE:AD:BE:EF:CA:FE

# WiFi Example
#auto wlan0
#iface wlan0 inet dhcp
#    wpa-ssid "essid"
#    wpa-psk  "password"

# Ethernet/RNDIS gadget (g_ether)
# ... or on host side, usbnet and random hwaddr
# Note on some boards, usb0 is automaticly setup with an init script
# in that case, to completely disable remove file [run_boot-scripts] from the boot partition
auto usb0
iface usb0 inet static
    address 192.168.7.2
    netmask 255.255.252.0
    network 192.168.7.0
#broadcast 192.168.7.3
    gateway 192.168.7.1
    dns-nameservers 8.8.8.8 8.8.4.4

แต่มันก็ไม่ได้ช่วยอะไร

ฉันไม่รู้จะทำยังไงดี กรุณาช่วย.

ข่าวสารที่เป็นประโยชน์เพิ่มเติม:

Beagle Bone Black: ifconfig

lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:65536  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

usb0      Link encap:Ethernet  HWaddr ce:39:f3:4a:c7:94  
          inet addr:192.168.7.2  Bcast:192.168.7.3  Mask:255.255.255.252
          inet6 addr: fe80::cc39:f3ff:fe4a:c794/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:608 errors:0 dropped:0 overruns:0 frame:0
          TX packets:375 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:57484 (57.4 KB)  TX bytes:63078 (63.0 KB)

เส้นทาง

Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
default         192.168.7.1     0.0.0.0         UG    0      0        0 usb0
192.168.7.0     *               255.255.255.252 U     0      0        0 usb0

uname -a

Linux arm 3.8.13-bone28 #1 SMP Fri Sep 13 03:12:24 UTC 2013 armv7l armv7l armv7l GNU/Linux

/etc/resolv.conf

nameserver 8.8.8.8
nameserver 8.8.4.4
#domain localdomain
#search localdomain
#nameserver 192.168.1.1

PC:

ifconfig

eth0      Link encap:Ethernet  Hardware Adresse 00:17:31:8d:6a:a6  
          inet Adresse:141.3.81.154  Bcast:141.3.83.255  Maske:255.255.252.0
          inet6-Adresse: fe80::217:31ff:fe8d:6aa6/64 Gültigkeitsbereich:Verbindung
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metrik:1
          RX packets:30732 errors:0 dropped:0 overruns:0 frame:0
          TX packets:5888 errors:0 dropped:0 overruns:0 carrier:0
          Kollisionen:0 Sendewarteschlangenlänge:1000
          RX-Bytes:7266589 (7.2 MB)  TX-Bytes:1286462 (1.2 MB)
          Interrupt:19

eth1      Link encap:Ethernet  Hardware Adresse 00:04:75:ca:98:ee  
          UP BROADCAST MULTICAST  MTU:1500  Metrik:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          Kollisionen:0 Sendewarteschlangenlänge:1000
          RX-Bytes:0 (0.0 B)  TX-Bytes:0 (0.0 B)
          Interrupt:21 Basisadresse:0xe400

eth2      Link encap:Ethernet  Hardware Adresse c8:a0:30:ac:2c:95  
          inet Adresse:192.168.7.1  Bcast:192.168.7.3  Maske:255.255.255.252
          inet6-Adresse: fe80::caa0:30ff:feac:2c95/64 Gültigkeitsbereich:Verbindung
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metrik:1
          RX packets:418 errors:0 dropped:0 overruns:0 frame:0
          TX packets:637 errors:0 dropped:0 overruns:0 carrier:0
          Kollisionen:0 Sendewarteschlangenlänge:1000
          RX-Bytes:45704 (45.7 KB)  TX-Bytes:88161 (88.1 KB)

lo        Link encap:Lokale Schleife  
          inet Adresse:127.0.0.1  Maske:255.0.0.0
          inet6-Adresse: ::1/128 Gültigkeitsbereich:Maschine
          UP LOOPBACK RUNNING  MTU:16436  Metrik:1
          RX packets:840 errors:0 dropped:0 overruns:0 frame:0
          TX packets:840 errors:0 dropped:0 overruns:0 carrier:0
          Kollisionen:0 Sendewarteschlangenlänge:0
          RX-Bytes:142988 (142.9 KB)  TX-Bytes:142988 (142.9 KB)

เส้นทาง

Ziel            Router          Genmask         Flags Metric Ref    Use Iface
default         i60-gw-int.ipr. 0.0.0.0         UG    0      0        0 eth0
141.3.80.0      *               255.255.252.0   U     1      0        0 eth0
link-local      *               255.255.0.0     U     1000   0        0 eth2
192.168.7.0     *               255.255.255.252 U     1      0        0 eth2

uname -a

Linux i60p354 3.2.0-56-generic #86-Ubuntu SMP Wed Oct 23 09:20:45 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux

สิ่งที่มีความสำคัญ - พีซีซึ่งใช้อินเทอร์เน็ตร่วมกับ BBB ทำงานในเครือข่ายมหาวิทยาลัยซึ่งมีความซับซ้อนมากกว่าเครือข่ายในบ้านทั่วไป - นั่นอาจทำให้เกิดปัญหากับการแก้ไข DNS มีความสำคัญอะไร - ถ้าฉันตั้งค่า nameserver ที่เหมาะสมใน resolv.conf.d / head (ซึ่งเป็นเพียงแค่การทำงานและเช่น 8.8.8.8) และพิมพ์ ping google.com maschine คำนวณบางครั้งและกลับข้อผิดพลาดโฮสต์ที่ไม่รู้จัก . หากฉันตั้งที่อยู่ที่ไร้สาระซึ่งแน่นอนว่าไม่สามารถใช้งานได้ (เช่น 123.123.123.123) ข้อผิดพลาดจะถูกส่งคืนทันที


ด้วย BB (ไม่ใช่กลับ) คำสั่งของคุณจะทำงานโดยไม่มีข้อผิดพลาด ฉันเพิ่งแทนที่เนมเซิร์ฟเวอร์ 127.0.0.1 ด้วยเนมเซิร์ฟเวอร์ <ip ของ dns ของฉัน>, และการแก้ปัญหาชื่อโฮสต์ใช้งานได้ ...
Rémi

คำตอบ:


5

ฉันใช้งานได้โดยเพิ่มอินเทอร์เฟซบนโฮสต์ของฉัน (Fedora 20) ลงในโซนที่เชื่อถือได้ ฉันอายที่จะบอกว่าไม่รู้ว่าสิ่งนี้ทำอะไรได้บ้าง ฉันดูผลลัพธ์ของตาราง IP แบบดิบและไม่เห็นการกล่าวถึงอินเทอร์เฟซนี้มีเพียงเชนตามโซน อย่างไรก็ตามตรวจสอบโฮสต์ของคุณและดูสิ่งที่อาจป้องกันการส่งต่อ IP ฉันเดาว่า ping ใช้งานได้เพราะค่าเริ่มต้นนั้นผ่อนคลายสำหรับการรับส่งข้อมูล ICMP นอกจากนี้ฉันคิดว่าคุณมีหนึ่งในการพิมพ์ผิดข้างต้น netmask สำหรับ usb0 ควรเป็น 255.255.255.252 ขอบคุณสำหรับการโพสต์สิ่งที่คุณทำมันจะเจ็บปวดกว่านี้หากไม่มี


สิ่งนี้จะช่วยได้อย่างแน่นอน
Octopus

1

สำหรับปัญหาการเขียนทับตัวจัดการการเชื่อม/etc/resolv.confต่อโซลูชันที่ทำให้เกิดการสั่นสะเทือนคือการปกป้องไฟล์ ( chmod 444ดูเหมือนจะไม่ได้รับเกียรติ):

chattr +i /etc/resolv.conf

รีบูตเพื่อตรวจสอบว่าการเปลี่ยนแปลงนี้ใช้ 'reboot'

หากต้องการป้องกันไฟล์ในภายหลัง:

chattr -i /etc/resolv.conf

มันอาจทำเช่นนี้หรือเล่น/etc/init.d/connmanเกมฟื้นฟู (เช่นการเขียนทับ) resolve.confในเวลาบูตหลังจาก connman


1

ในการแชร์ระบบ (ฉันลอง ubuntu & fedora) อินเตอร์เน็ตไร้สายพร้อมสายสัญญาณบีเบลล์สีดำ (ผ่านอีเธอร์เน็ต) ด้วยการติดตั้ง Debian wheezy ให้ทำตามวิธีนี้

บนพีซีคลิกที่ไอคอนเครือข่าย> การเชื่อมต่อ VPN> กำหนดค่า VPN> อีเธอร์เน็ตคลิก + เพิ่ม

ตั้งชื่อการเชื่อมต่อ becledhcp หรืออะไรก็ได้ที่คุณชอบ

เปลี่ยนการตั้งค่า IPV4 เป็น dhcp อัตโนมัติ

เซิร์ฟเวอร์ DNS เพิ่มเติมเพื่อ 192.168.7.2 (IP ของสายสืบ)

คลิกบันทึก

คลิกที่ไอคอนเครือข่าย> การเชื่อมต่อ VPN> กำหนดค่า VPN> อีเธอร์เน็ต

คลิก + เพิ่ม

ตั้งชื่อการเชื่อมต่อที่ไม่พึงประสงค์หรืออะไรก็ได้ที่คุณชอบ

เปลี่ยนการตั้งค่า IPV4 เป็น "แชร์กับคอมพิวเตอร์เครื่องอื่น"

คลิกบันทึก (2 การเชื่อมต่ออาจถูกสร้างขึ้นโดยอัตโนมัติเมื่อสาย LAN และสาย USB ของสายสัญญาณบีเกิ้ลเชื่อมต่อกับ PC.u สามารถแก้ไขการเชื่อมต่อเหล่านี้ได้เช่นกัน)

เชื่อมต่อบอร์ดเข้ากับพีซี (LAN และ USB)

เปิดเทอร์มินัลแล้วพิมพ์

[dawn@localhost ~]$ ssh root@192.168.7.2
Debian GNU/Linux 7

BeagleBoard.org BeagleBone Debian Image 2014-04-23

Support/FAQ: http://elinux.org/Beagleboard:BeagleBoneBlack_Debian
Last login: Sat Aug  2 19:54:25 2014 from linux.local
root@beaglebone:~#



   vi /etc/network/interfaces

เพิ่มบรรทัดเหล่านี้ไปยังไฟล์: เพื่อตั้งค่า IP แบบคงที่สำหรับ beaglebone Ethernet (eth0)

    auto eth0
iface eth0 inet static
    address 10.42.0.69
    netmask 255.255.255.0
    gateway 10.42.0.1
    dns-nameservers 8.8.8.8 8.8.8.9

บันทึกไฟล์

/etc/init.d/networking restart

ทำ ifconfig เพื่อทราบการเปลี่ยนแปลง

ping 8.8.8.8

เสร็จแล้ว

หากคุณมีข้อสงสัยใด ๆ ส่งอีเมลฉัน: dawnpaulfacebook@gmail.com


ส่วนเกี่ยวกับ "เซิร์ฟเวอร์ DNS เพิ่มเติมเพื่อ 192.168.7.2 (IP ของสายสืบ)" ไม่มีส่วนเกี่ยวข้องอะไรเลย
Octopus

0

สำหรับฉันแล้วส่วนสำคัญของตัวต่อคือการเรียกใช้คำสั่งเหล่านี้บนเครื่องโฮสต์ที่ BBB เชื่อมต่อด้วย:

iptables --flush            
iptables --table nat --flush
iptables --delete-chain     
iptables --table nat --delete-chain
iptables --table nat --append POSTROUTING --out-interface enp8s0 -j MASQUERADE
iptables --append FORWARD --in-interface enp8s0 -j ACCEPT

และอาจเป็นเช่นนี้:

echo 1 > /proc/sys/net/ipv4/ip_forward

0

พิมพ์เทอร์มินัลของเซิร์ฟเวอร์ / เกตเวย์:

arp -s "$ IP" "$ MAC" pub

โดยที่ $ MAC คือที่อยู่ฮาร์ดแวร์ของตัวควบคุม Ethernet ของกล่อง linux gateway คุณสามารถค้นหาได้โดยรัน ifconfig และตรวจสอบคุณสมบัติอีเธอร์ของอินเทอร์เฟซอีเทอร์เน็ตของคุณ $ IP คือ ip ของพอร์ต usb ในเซิร์ฟเวอร์ / เกตเวย์เดียวกันที่เชื่อมต่อกับสายสืบ

:)

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