У вас нет драйвера для видеокарты Nvidia.
Откройте терминал и напишите эту команду:
sudo add-apt-repository ppa:graphics-drivers/ppa && sudo apt update
тогда вы сможете установить драйвер через дополнительные драйверы. Вы также можете установить его напрямую с помощью:
sudo apt-get install nvidia-driver-410
Лучше установить dkms
перед драйвером, потому что при каждом обновлении ядра системы dkms
автоматически перестраивает модуль драйвера NVIDIA для нового ядра:
sudo apt-get install dkms build-essential
Вы не упомянули модель своей видеокарты Nvidia, но я думаю, что это GeForce MX150, и она есть в списке поддерживаемых видеокарт.
Многие приложения имеют что-то известное как общеизвестный номер порта . Обычно они привязываются к нему.
Другие приложения будут привязаны к порту 0, позволяя системе выбрать свободный порт. Затем они сообщают свои номера портов возможным клиентам, используя другие методы (, отличные от общеизвестных номеров портов ). Например, трансляция их доступности в сеть.
Нет, приложения запрашивают привязку к порту, но на самом деле именно операционная система решает, назначать порт приложению или нет.
, поэтому, например, порты меньше 1024 могут использоваться только root
или любым пользователем с возможностью CAP_NET_BIND_SERVICE
.
proc/sys/net/ipv4/ip_local_port_range
определяет диапазон локальных портов, который используется трафиком TCP и UDP для выбора локального порта, он называется диапазоном эфемерных портов (, вы можете изменить его)
cat /proc/sys/net/ipv4/ip_local_port_range
32768 60999
или
sysctl net.ipv4.ip_local_port_range
net.ipv4.ip_local_port_range = 32768 60999
Также некоторые порты могут быть зарезервированы администратором с помощью настройки /proc/sys/net/ipv4/ip_local_reserved_ports
или параметра ядра net.ipv4.ip_local_reserved_ports
, поэтому эти порты не будут использоваться при автоматическом назначении портов.
Назначение /etc/services
состоит в том, чтобы программы могли выполнять getportbyname()
вызовы сокетов в своем коде, чтобы получить порт, который они должны использовать.
Каждое соединение TCP включает не один, а два номера портов :локальный порт и удаленный порт. При исходящем соединении номер локального порта не важен, и большинство программ позволяют операционной системе выбрать его. Как отмечает binarysta, после этого ОС автоматически выберет первый свободный порт в диапазоне эфемерных портов.
Но приложение (или пользователь, запустивший приложение ), должны указать номер удаленного порта для подключения, иначе оно не достигнет нужной службы на удаленном хосте.
При входящих соединенияхситуация зеркальна :серверное приложение обычно не может позволить ОС выбрать номер локального порта, используемого для прослушивания входящих соединений, иначе клиенты не будут знать, к какому порту подключаться. Но приложение, прослушивающее входящие соединения, обычно игнорирует номер удаленного порта и позволяет удаленному хосту определить его.
(Некоторые службы используют полностью динамические номера портов и обычно полагаются на вторичные протоколы обнаружения, чтобы выяснить, какой порт (или )прослушивается сервером в :NFSv3 rpc.statd
и rpc.mountd
. наиболее знакомые примеры для современных пользователей Linux. Чтобы найти их на удаленном хосте, вы должны сначала связаться с RPC-маппером портов на порту 111 на этом хосте и спросить, на каких портах находятся сервисы.)
Некоторые серверные приложения (, в основном классические серверные приложения Unix, такие как inetd
), могут искать локальные порты для использования по имени, используя getportbyname()
, который обычно просто ищет его из /etc/services
.
Но приложение может пропустить этот шаг и вместо этого напрямую указать желаемый порт по номеру. Большинство современных приложений делают это таким образом; конечно, любая серверная программа, которая требует, чтобы вы настроили порт прослушивания по номеру, делает это таким образом.
В наши дни /etc/services
чаще всего используют такие приложения, как lsof
, netstat
или tcpdump
, которые могут заменять номера портов в своих выходных данных более удобными -понятными именами для поиска. из /etc/services
. Но вы должны иметь в виду, что такой номер порта с -по -имя может использоваться только для описания типичного использования :, это может быть или не быть точным описанием фактического порта. используйте в вашей конкретной системе.
Итак, на вопрос "если порт зарегистрирован в /etc/services
, зарезервирован ли он?" ответ нет, это не .
Некоторые приложения могут использовать /etc/services
для определения используемых номеров портов.если только номер порта не указан непосредственно в конфигурации приложения или пользователем.
Защита от «конфликтов» происходит на уровне ОС, совершенно не связанной с /etc/services
:, если приложение делает bind(2)
системный вызов, чтобы указать, что оно хочет использовать определенный номер порта, и этот порт уже используется что-то еще, системный вызов завершится с ошибкой EADDRINUSE
, чтобы указать, что что-то уже использует его.
Так много всего нужно переварить. Думаю, у меня есть ответ, который мне нужен :/etc/services — это просто список хорошо -известных служб и официальных названий. На него можно напрямую ссылаться с помощью getportbyname (), но это не обязательно. Когда динамический порт запрашивается, вероятно, для исходящего порта. ip _локальный _порт _диапазон является ссылкой на разрешенный диапазон портов Некоторые порты могут быть зарезервированы администратором путем добавления их в /proc/sys/net/ipv4/ip _локальные _зарезервированные _порты или параметр ядра rnet.ipv4.ip _локальные _зарезервированные _порты. Эти порты не будут использоваться автоматическим назначением портов. Если я правильно понял, причина, по которой я задал вопрос, заключается в том, что я перешел из своего безопасного -прем-мира AIX в дикую природу в Azure Cloud и SUSE. Для кластеров в облаке они используют функцию балансировки нагрузки, чтобы определить, среди прочего, IP-адрес службы, который будет перемещаться между узлами кластера. Им должен быть предоставлен определенный порт для использования, и, например, он был выбран как 62500. Недавно я тестировал некоторое программное обеспечение для резервного копирования под названием Commvault, и очень редко оно захватывает тот же порт до запуска кластера, поэтому я искал способы остановить это. Похоже, мне нужно либо изменить диапазон локальных портов по умолчанию, чтобы верхняя отметка была 62499, либо добавить порт специально в ip _локальные _зарезервированные _порты. Если я все правильно понял, большое спасибо всем за вашу быструю помощь,