У меня есть одноплатный компьютер, который я хочу подключить к локальной сети / Интернету. 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.*
адрес, который тоже не помог. Я, наверное, что-то здесь упускаю. Возможно, маршрутизация?
Еще я пробовал установить мост между интерфейсами.
Конфигурация 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
включенный.)