Назад | Перейти на главную страницу

Как подключить Ethernet через USB-соединение к хост-сети?

У меня есть одноплатный компьютер, который я хочу подключить к локальной сети / Интернету. SBC не имеет порта Ethernet, только встроенный беспроводной чип, который в настоящее время не работает. Но у него есть USB, и я подумал, что его можно подключить через Ethernet через USB к моей рабочей станции, а затем выполнить какой-то мост / пересылку. Я использую Beagle Bone Black Wireless и (в настоящее время) Arch Linux ARM am33x в качестве «клиента». Рабочая станция - Fedora 23. Ethernet через USB работает, я могу подключиться к SBC по SSH. Однако мне не удалось перейти от SBC к моей локальной сети или Интернету.

Список вещей, которые я уже пробовал:

Выставка:

Это позволяет мне подключаться к клиенту по SSH.

Конфигурация / Команды на клиенте:

modprobe g_ether

Конфигурация netctl:

Description='USB ethernet connection'

Interface=usb0

Connection=ethernet

IP=static

Address=('192.168.7.2/24')

DNS=('8.8.8.8')

#Gateway=('192.168.1.1')

## For IPv6 autoconfiguration

IP6=stateless

Конфигурация на рабочей станции:

ifconfig enp0s29u1u2 192.168.7.1

Приложение б:

Устал вот это соединять два интерфейса (enp0s29u1u2 это интерфейс Eth over usb и enp6s0 смотрит в мою локальную сеть, а также в Интернет); следующий код выполняется на Рабочей станции. Я нашел вот это: Маршрутизация между двумя сетями в Linux?

echo 1 >> /proc/sys/net/ipv4/ip_forward
iptables -A INPUT -i lo -j ACCEPT
iptables -A INPUT -i enp0s29u1u2 -j ACCEPT
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -t nat -A POSTROUTING -o enp6s0 -j MASQUERADE
iptables --append FORWARD -i enp6s0 -o enp0s29u1u2 -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables --append FORWARD -i enp0s29u1u2 -o enp6s0 -j ACCEPT       

Сначала я оставил IP-адреса как были 192.168.1.0/24 для Лан и 192.168.7.0/24 для сети Ethernet через USB. Но я не мог добраться до своего шлюза или чего-либо еще под моей рабочей станцией. Я также пытался дать Биглю кость 192.168.1.* адрес, который тоже не помог. Я, наверное, что-то здесь упускаю. Возможно, маршрутизация?

Приложение c:

Еще я пробовал установить мост между интерфейсами.

Конфигурация Netctl на beaglebone была установлена ​​примерно так:

Описание = 'USB-соединение Ethernet'

Interface=usb0

Connection=ethernet

IP=static

Address=('192.168.1.210/24')

DNS=('8.8.8.8')

Gateway=('192.168.1.1')

## For IPv6 autoconfiguration

IP6=stateless

Команды (рабочая станция):

brctl addbr br0
brctl addif br0 enp6s0 enp0s29u1u2
ifconfig br0 192.168.1.202 (or some random free address)

Я должен был сделать route add default gw 192.168.1.1 чтобы восстановить доступ в Интернет на моей рабочей станции. Тоже на биглебоне делал, но тоже не вышло. Я не уверен, но поскольку я понимаю сетевой мост, он должен вести себя так, как будто я только что подключил устройство к коммутатору Ethernet (то есть члены сети могут общаться, как если бы моста там не было; но, по-видимому, ему нужен отдельный ip так что я немного запутался, дайте мне подсказку).

Основной вопрос:

Требуется ли какая-то ручная маршрутизация для интеграции Beaglebone в LAN и получения доступа в Интернет или что-то еще? Спасибо за любые подсказки! Также ценятся обходные пути, поскольку я ищу временное решение.

У тебя есть echo 1 >> /proc/sys/net/ipv4/ip_forward

Но так должно быть echo 1 > /proc/sys/net/ipv4/ip_forward

Шлюз закомментирован #Gateway=('192.168.1.1') в одном из ваших вариантов.

Вам нужно будет сделать ip route add default via 192.168.1.1 на одноплатном компьютере, чтобы он знал, куда отправлять интернет-трафик. (Куда 192.168.1.1 это IP-адрес устройства с ip_forward включенный.)