Я новичок в Linux и Ubuntu. Я погуглил и прочитал несколько статей, в которых говорилось, что все порты закрыты, пока пользователь не откроет их вручную. Это правда?
А что вы подразумеваете под «прослушиванием порта» и «установлением порта» простыми словами?
решение1
Я погуглил и прочитал несколько статей, в которых говорилось, что все порты закрыты, пока пользователь не откроет их вручную. Это правда?
Зависит от того, что вы видите под «пользователем». Пользователь обычно не говорит: «Эй, пожалуйста, откройте порт X». Системные службы (например, CUPS для печати, UDP/TCP-порт 631) открывают порт для прослушивания. Другие примеры включают HTTP-сервер (TCP-порт 80), DNS-сервер (UDP-порт 53) и SMTP-сервер (почтовый) (TCP-порт 25).
До сих пор я упоминал только порты, но программа также должна указать адрес для начала прослушивания. Важно понимать, что программы могут прослушиватьлокально(адрес IPv4 127.0.0.1
, адрес IPv6 ::1
) или по адресу, по которому услуга становится доступнойдругие устройства на вашем сетевом компьютере(используя ваш сетевой адрес, например 10.0.1.4
). Существует также «подстановочный адрес» ( 0.0.0.0
для IPv4, ::
для IPv6), который также доступен удаленно.
Порты действительно «закрыты» до тех пор, пока программа не начнет их прослушивать.
Эту sudo netstat -tulpn
команду можно использовать для отображения прослушиваемых программ TCP/UDP. В стандартной установке Ubuntu Desktop это показывает:
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 127.0.0.1:53 0.0.0.0:* LISTEN 2254/dnsmasq
tcp 0 0 127.0.0.1:631 0.0.0.0:* LISTEN 1346/cupsd
tcp6 0 0 ::1:631 :::* LISTEN 1346/cupsd
udp 0 0 0.0.0.0:59296 0.0.0.0:* 1152/avahi-daemon:
udp 0 0 127.0.0.1:53 0.0.0.0:* 2254/dnsmasq
udp 0 0 0.0.0.0:68 0.0.0.0:* 1684/dhclient
udp 0 0 0.0.0.0:5353 0.0.0.0:* 1152/avahi-daemon:
udp6 0 0 :::5353 :::* 1152/avahi-daemon:
udp6 0 0 :::53537 :::* 1152/avahi-daemon:
Здесь вы можете видеть, что avahi-daemon доступен по сети на UDP-портах 59296, 5353 и 53537. Последние два являются стандартными для avahi-daemon, первый — это случайный адрес, который, вероятно, передается с использованием двух других портов. Этот демон используется для «сетевого обнаружения» и позволяет вам делать такие вещи, как «общий доступ к файлам». Также есть DHCP-клиент, прослушивающий глобально порт UDP 68.
Некоторые службы слушают только локально и не доступны по сети. Это служба кэширования DNS dnsmasq (UDP-порт 53) и служба принтера CUPS (TCP 631).
А что вы подразумеваете под «прослушиванием порта» и «установлением порта» простыми словами?
Нет понятия "установленный порт", есть только "установленное соединение". Порт, который открыт для прослушивания, резервируется программой, которая заинтересована в данных, проходящих через этот порт. Эти порты обычно статические, HTTP работает на TCP-порту 80, DNS на UDP-порту 53. Эти стандарты позволяют другим сетевым устройствам быстро находить ваш сервис.
TCP-соединение устанавливается, когда оба сетевых устройства соглашаются, что они хотят взаимодействовать друг с другом.
решение2
Это утверждениенетправильно. Правда в том, что очень мало служб установлено по умолчанию. И там, где нет служб, ожидающих обращения/запроса (вот что означает «прослушивание»), нет необходимости закрывать этот порт.
Но по умолчанию каждыйустановленслужба запущена, и не установлены правила брандмауэра, препятствующие кому-либо обращаться к службе.
Что касается дополнительного вопроса: «порты» подобны добавочным номерам телефонов, они обозначают одну программу, общающуюся через этот номер, подобно тому, как добавочный номер телефонов обозначает человека или один отдел в пределах предприятия.