Для чого потрібний файл драйверів Windows \ etc \ services?


8

Зазвичай у файлі C: \ Windows \ System32 \ драйвери \ тощо є файл "служби", він містить список запущених служб та порт, який буде використовуватися.

Однак що тут означає слово "послуга"? Це не "Сервіс Windows", який можна побачити під час запуску "services.msc". Такі 2 списки не складаються.

І цей вміст файлу "служб" може бути застарілим - його ніхто не оновлювати: програми все ще можуть спілкуватися через якийсь порт, не оновлюючи файл "служб", якщо вони мають деяку згоду; також, якщо якась програма не запущена, деякий порт не взято, "файл служб Windows" також не оновлюється.

То для чого цей файл?

Де б я не міг знайти якісь документи? Можливо, через популярне ім’я файлу я шукав в Інтернеті, але більшість посилань стосуються "Служб Windows" ... не цього "Файлу служб Windows" ...

Редагувати:

Ще одне питання, оскільки файл "служби" може застаріти, чи є спосіб перерахувати всі активні "послуги"?

Відповіді:


7

Цей файл повідомляє службам, написаним Microsoft, який порт використовувати, а також файли, які бажають використовувати API Windows та / або цей файл, щоб перетворити ім’я служби у порт. Ці назви служб визначаються IETF.

Ось приклад інструкцій щодо зміни порту, щоб звільнити місце для іншого SMTP-сервера.

Ось докладніше про назви служб:

ім'я служби [в]

Рядок із завершенням NULL, що містить ім'я служби або порт призначення хоста, на якому потрібно підключитися для IPv4 або IPv6.

Ім'я служби - це псевдонім рядка для номера порту. Наприклад, "http" - псевдонім для порту 80, визначеного Інженерною робочою групою (IETF) як порт за замовчуванням, який використовується веб-серверами для протоколу HTTP. Можливі значення параметра для імені служби, коли номер порту не вказаний, перераховані в наступному файлі: %WINDIR%\system32\drivers\etc\services

- MSDN - Winsock - функція WSAConnectByName


2
Зокрема, файл сервісу підтримує [getservbyname](http://msdn.microsoft.com/en-us/library/windows/desktop/ms738538(v=vs.85).aspx)API, який переводить ім'я служби в номер сокета.
Річард

@ Річард: Можливо, але це не згадує services.
Тамара Війсман

значить, це концепція Windows Socket? Вибачте, що я тут не знайомий ... це те, що Windows Socket є протоколом нижче HTTP, TCP / IP, FTP, так що визначення, проведене на рівні Windows Socket, може регулювати поведінку на рівні HTTP, TCP / IP або FTP?
афон

@athos: Ні, це не протокол. Служби Windows просто спочатку перекладають ім'я служби (наприклад, http) у порт обслуговування (наприклад, 80для http), а потім надають цей сервісний порт відповідному протоколу (TCP / IP).
Тамара Війсман

4
Сторінка: Іменування, використання та формат цього файлу походить від Unix, де знаходиться файл /etc/services. Microsoft прийняла це, коли вони почали замінювати свій фірмовий протокол мереж Netbeui на протоколи TCP / IP з відкритим кодом, які ставали все більш важливими. Дивіться kuro5hin.org/story/2001/6/19/05641/7357
RedGrittyBrick
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.