Do czego służy plik Windows \ etc \ services systemu Windows?

8

Zwykle w C: \ Windows \ System32 \ drivers \ etc znajduje się plik „services”, który zawiera listę uruchomionych usług i używanego portu.

Co jednak oznacza tutaj słowo „usługa”? To nie jest „usługa systemu Windows”, którą można zobaczyć po uruchomieniu „services.msc”. Takie 2 listy się nie zgadzają.

I treść tego pliku „usług” może być nieaktualna - nikt go nie aktualizuje: programy nadal mogą komunikować się przez jakiś port bez aktualizacji pliku „usług”, jeśli mają jakąś zgodę; Ponadto, jeśli jakiś program nie działa, jakiś port nie jest zajęty, „plik usług Windows” również nie jest aktualizowany.

Więc do czego służy ten plik?

Gdziekolwiek mogę znaleźć jakieś dokumenty? Może z powodu popularnej nazwy pliku szukałem w Internecie, ale większość linków dotyczy „Usług Windows” ... nie tego „Pliku Usług Windows” ...

EDYTOWAĆ:

Jeszcze jedno pytanie, skoro plik „usług” może być nieaktualny, czy istnieje sposób na wylistowanie wszystkich aktywnych „usług”?

athos
źródło

Odpowiedzi:

7

Ten plik informuje usługi napisane przez Microsoft o tym, którego portu użyć, a także pliki, które chcą korzystać z interfejsów API systemu Windows i / lub tego pliku, aby zmienić nazwę usługi w port. Te nazwy usług są zdefiniowane przez IETF.

Oto przykład instrukcji zmiany portu, aby zrobić miejsce dla innego serwera SMTP.

A oto więcej wyjaśnień na temat nazw usług:

nazwa usługi [w]

Łańcuch zakończony znakiem NULL, który zawiera nazwę usługi lub docelowy port hosta, na którym ma się połączyć IPv4 lub IPv6.

Nazwa usługi jest aliasem ciągu dla numeru portu. Na przykład „http” jest aliasem dla portu 80 zdefiniowanym przez Internet Engineering Task Force (IETF) jako domyślny port używany przez serwery WWW dla protokołu HTTP. Możliwe wartości parametru servicename, gdy numer portu nie jest określony, są wymienione w następującym pliku: %WINDIR%\system32\drivers\etc\services

- MSDN - Winsock - funkcja WSAConnectByName

Tamara Wijsman
źródło
2
W szczególności plik services wspiera [getservbyname](http://msdn.microsoft.com/en-us/library/windows/desktop/ms738538(v=vs.85).aspx)interfejs API, który tłumaczy nazwę usługi na numer gniazda.
Richard
@Richard: Być może, ale nie wspomina services.
Tamara Wijsman,
więc to jest koncepcja Windows Socket? przepraszam, nie jestem tutaj zaznajomiony ... czy Windows Socket jest protokołem niższym niż HTTP, TCP / IP, FTP, więc definicja wykonana na poziomie Windows Socket może regulować zachowanie na poziomie HTTP, TCP / IP lub FTP?
athos
@athos: Nie, to nie jest protokół. Usługi systemu Windows najpierw tłumaczą nazwę usługi (np. http) Na port usługi (np. 80For http), a następnie dostarczają ten port usługi do odpowiedniego protokołu (TCP / IP).
Tamara Wijsman,
4
Sidenote: Nazwa, użycie i format tego pliku pochodzi od Uniksa, w którym znajduje się plik /etc/services. Microsoft przyjął to, kiedy zaczęli zastępować swój zastrzeżony protokół sieciowy Netbeui protokołami TCP / IP typu open source, które stawały się coraz ważniejsze. Zobacz kuro5hin.org/story/2001/6/19/05641/7357
RedGrittyBrick