Вопрос или проблема
У меня есть система с двойной загрузкой, работающая на Windows 10 и Ubuntu 22.04 LTS, и я не могу заставить работать проводное соединение должным образом. Я попробовал следующее:
Я установил ethtool
sudo apt-get install ethtool
и просто выполнил команду
sudo ethtool -s ens5f5 autoneg off speed 100 duplex full
где ens5f5 — это мой Ethernet-интерфейс, полученный ранее командой ifconfig.
Я нашел это в Не могу подключиться к домашней сети Ethernet с 18.04 – Kabel отключен, но когда я реализую это решение и запускаю тест скорости, он намного медленнее, чем при использовании Wi-Fi соединения. Я пытался подставить 1000 вместо скорости, но возникает ошибка:
netlink error: Invalid argument
Меня устраивает скорость Wi-Fi, но мне интересно, почему Ethernet-соединение не хочет работать с допустимой скоростью.
Проблема решена
После переустановки Ubuntu 22.04 и выполнения:
sudo ethtool -s ens5f5 autoneg on speed 100 duplex full
Я смог достичь приемлемой скорости по результатам теста (скорость загрузки 93.45). Я сменил autoneg с off на on, так что не уверен, помогло ли это или свежая установка Ubuntu, или комбинация того и другого, но меня это устраивает.
Затем я создал скрипт для автоматического выполнения при запуске, чтобы не запускать команду каждый раз при загрузке компьютера.
Сначала создайте файл службы Systemd, как в примере ниже (файл, который я создал, был /etc/systemd/system/start-ethernet.service):
[Unit]
After=network.target
[Service]
ExecStart=/usr/local/bin/start-ethernet.sh
[Install]
WantedBy=default.target
After: Инструктирует systemd о том, когда скрипт должен выполняться. В нашем случае скрипт будет выполняться после подключения к сети. Другим примером может быть mysql.target и т.д.
ExecStart: Это поле указывает полный путь к реальному скрипту, который должен выполняться при запуске
WantedBy: В какую целевую загрузку должен быть установлен юнит systemd
Создайте скрипт, который будет выполняться при загрузке системы Ubuntu. Как указано в Шаге 1 выше, путь и имя нового скрипта — /usr/local/bin/start-ethernet.sh.
Ниже приведен пример такого скрипта:
#!/bin/bash
ethtool -s ens5f5 autoneg on speed 100 duplex full
Установите соответствующие разрешения как для юнита службы Systemd, так и для скрипта:
$ sudo chmod 744 /usr/local/bin/start-ethernet.sh
$ sudo chmod 664 /etc/systemd/system/start-ethernet.service
Далее включите юнит службы:
$ sudo systemctl daemon-reload
$ sudo systemctl enable start-ethernet.service
Теперь вы готовы перезагрузить свою систему. После перезагрузки проводное соединение должно стать активным.
Я нашел инструкции по созданию и запуску скрипта при запуске по адресу: https://linuxconfig.org/how-to-run-script-on-startup-on-ubuntu-22-04-jammy-jellyfish-server-desktop, а затем адаптировал их для собственного использования.
Ответ или решение
Ubuntu 22.04: Проблема с проводным подключением — "Кабель отключен"
Пользователи, работающие с операционной системой Ubuntu 22.04, иногда сталкиваются с проблемой, когда проводное соединение отображается как «Кабель отключен». Эта проблема может возникнуть из-за различных факторов. В этой статье мы рассмотрим возможные решения и предложим подходы для устранения этой незадачи.
1. Проверьте физическое подключение
Прежде всего, убедитесь, что Ethernet-кабель надежно подключен как к компьютеру, так и к маршрутизатору или коммутатору. Попробуйте заменить кабель на новый или подключить его к другому устройству, чтобы исключить возможность аппаратного сбоя.
2. Операционная система: Параметры и настройки
В вашем описании упоминается, что вы пробовали использовать ethtool
для управления параметрами сетевого интерфейса ens5f5
. Первоначальное отключение автоматической настройки (autoneg off
) могло негативно сказаться на вашем соединении. В результате этого настройки сети были неправильно установлены, что и привело к снижению скорости. Вы правильно поступили, вернув параметры к значениям по умолчанию, активировав автоматическую настройку. Это могло помочь вашему устройству достичь оптимальной скорости.
sudo ethtool -s ens5f5 autoneg on speed 100 duplex full
Этот шаг обеспечил правильное соединение и улучшил результаты теста скорости до 93.45 Мбит/с, что является приемлемым значением для большинства пользователей.
3. Создание скрипта для автоматизации
Чтобы избежать повторной настройки Ethernet-соединения после каждого перезагрузки системы, вы создали системный сервис, который автоматически выполняет скрипт при старте. Это очень хороший подход, который может значительно улучшить пользовательский опыт. Ваш пример создания скрипта и системного юнита очень полезен и подробен.
Пример системного юнита
Системный юнит, созданный вами:
[Unit]
After=network.target
[Service]
ExecStart=/usr/local/bin/start-ethernet.sh
[Install]
WantedBy=default.target
Указывает на то, что ваш скрипт будет выполняться только после того, как установлено сетевое подключение, что обеспечивает его правильную работу.
Скрипт для старта
Пример вашего скрипта:
#!/bin/bash
ethtool -s ens5f5 autoneg on speed 100 duplex full
Устанавливает параметры Ethernet-соединения каждый раз при старте системы.
4. Заключение
Хотя причина возникновения проблемы с проводным подключением может различаться, ваше их решение и рекомендации по настройкам подтвердили полезность профилактического подхода в системном администрировании. Обратите внимание на то, что проблемы с сетевыми подключениями могут иметь множество причин — от программных до аппаратных. Ваш подход к решению данной проблемы с созданием автоматизированного скрипта также может помочь другим пользователям, столкнувшимся с аналогичными трудностями.
Таким образом, использование системного сервиса для автоматического старта скрипта — это один из лучших способов управления настройками сети в Ubuntu 22.04. Это обеспечит более стабильное соединение и улучшит общую производительность сети.
Если у вас будут дополнительные вопросы по настройке сети в Ubuntu или вы столкнетесь с новыми проблемами, всегда не стесняйтесь обращаться за помощью к сообществу или проверять официальную документацию Ubuntu.