Вопрос или проблема
как я могу поделиться интернетом с одного компьютера на другой с помощью ethernet. Оба используют linux. Компьютер с доступом к WiFi имеет установку Artix с openrc и connman. Я думаю, что это просто конфигурация connman, но я попробовал решения из интернета, и это не сработало.
Сначала я попытался включить раздачу интернета, добавив ethernet
в конфигурационный файл в
/etc/connman/main.conf
что работает лучше всего. Это создает “сеть” и позволяет другому компьютеру подключаться к ней, без глобального интернет-соединения, но он подключается и имеет IP (статический IP). Я даже могу пинговать другой компьютер. Но не могу получить доступ к интернет-соединению.
Я также пробовал lnxrouter, я установил dnmasq, чтобы это работало, и, по всей видимости, он делает что-то, показывая PID, а затем говорит, что настройка завершена, … должно работать. Но это не так, я даже не могу подключиться (я думаю, он был создан только для дистрибутивов на базе debian).
Ответ или решение
Для настройки совместного использования интернет-соединения по Ethernet с использованием ConnMan на компьютере с Artix Linux и OpenRC, необходимо выполнить несколько последовательных шагов. Данная инструкция включает в себя нужные настройки для успешного распределения интернет-соединения через Ethernet, а также предоставляет рекомендации по устранению возможных проблем.
Шаг 1: Настройка ConnMan
-
Редактирование конфигурационного файла ConnMan:
Откройте файл конфигурации ConnMan, используя текстовый редактор с правами суперпользователя. В терминале выполните команду:sudo nano /etc/connman/main.conf
Добавьте или измените следующие строки, чтобы разрешить использование Ethernet для шаринга:
[General] EnableEthernet=true
-
Настройка Ethernet-соединения:
Включите Ethernet-соединение на компьютере с Wi-Fi. Убедитесь, что он получает IP-адрес через DHCP или назначьте статический IP-адрес. Например:sudo connmanctl connmanctl> enable ethernet
Шаг 2: Настройка DHCP с помощью dnsmasq
Для успешного раздачи адресов другим устройствам вам потребуется настроить dnsmasq. Убедитесь, что dnsmasq установлен:
sudo pacman -S dnsmasq
-
Настройка dnsmasq:
Создайте резервную копию конфигурационного файла dnsmasq и отредактируйте его:sudo cp /etc/dnsmasq.conf /etc/dnsmasq.conf.bak sudo nano /etc/dnsmasq.conf
Включите следующие параметры:
interface=eth0 # замените eth0 на ваш Ethernet интерфейс dhcp-range=192.168.1.50,192.168.1.150,12h
Убедитесь, что диапазон DHCP не конфликтует с адресами других устройств в вашей сети.
-
Запуск dnsmasq:
Включите и запустите сервис dnsmasq:sudo rc-update add dnsmasq sudo systemctl start dnsmasq
Шаг 3: Настройка маршрутизации и системного NAT
-
Включение IP форвардинга:
Для успешного маршрутизирования интернет-трафика вам необходимо включить IP форвардинг. Выполните следующую команду:echo "net.ipv4.ip_forward = 1" | sudo tee -a /etc/sysctl.d/99-sysctl.conf sudo sysctl -p
-
Настройка NAT с помощью iptables:
Настройте iptables для осуществления NAT:sudo iptables -t nat -A POSTROUTING -o wlan0 -j MASQUERADE
Замените
wlan0
на имя вашего Wi-Fi интерфейса. -
Сохранение настроек iptables:
Чтобы сохранить настройки iptables после перезагрузки, используйте следующую команду:sudo iptables-save | sudo tee /etc/iptables/iptables.rules
Шаг 4: Подключение второго компьютера
Теперь, когда всё настроено, подключите второй компьютер через Ethernet-кабель. Убедитесь, что его сетевые настройки установлены на автоматическое получение IP-адреса (DHCP). Проверьте, что он получает IP-адрес из определенного вами диапазона и может пинговать основной компьютер.
Устранение проблем
Если интернет-соединение по-прежнему не работает:
-
Проверьте активное состояние сервисов ConnMan и dnsmasq:
sudo systemctl status connman sudo systemctl status dnsmasq
-
Убедитесь, что правила iptables применяются корректно (используйте
iptables -L
для проверки). -
Проверьте конфигурацию сети и соединений через команду
connmanctl
.
Следуя данным шагам, вы сможете успешно настроить совместный доступ к интернету через Ethernet между компьютерами с Linux, что обеспечит стабильное интернет-соединение для вашего устройства.