Windows 驱动程序\etc\services 文件的用途是什么?

ath*_*hos 9 windows services

通常在 C:\Windows\System32\drivers\etc 中有一个“服务”文件,它列出了正在运行的服务和要使用的端口。

然而,这里的“服务”一词是什么意思?它不是运行“services.msc”时可以看到的“Windows 服务”。这样的 2 个列表不相符。

而且,这个“服务”文件内容可能已经过时——没有人更新它:程序仍然可以通过某个端口进行通信,而无需更新“服务”文件,如果他们有某种协议的话;此外,如果某些程序没有运行,某些端口没有被占用,“Windows 服务文件”也不会更新。

那么这个文件是干什么用的呢?

我在哪里可以找到一些文件?也许是因为流行的文件名,我在互联网上搜索过,但大多数链接都是关于“Windows 服务”……而不是这个“Windows 服务文件”……

编辑:

还有一个问题,由于“服务”文件可能已经过时,有没有办法列出所有活动的“服务”?

Tam*_*man 7

此文件告诉 Microsoft 编写的服务要使用的端口,以及希望使用 Windows API 和/或该文件将服务名称转换为端口的文件。这些服务名称由 IETF 定义。

以下是更改端口以为另一台 SMTP 服务器腾出空间的说明示例

以下是有关服务名称的更多解释:

服务名称 [in]

一个以 NULL 结尾的字符串,其中包含要连接 IPv4 或 IPv6 的主机的服务名称或目标端口。

服务名称是端口号的字符串别名。例如,“http”是 Internet 工程任务组 (IETF) 定义的端口 80 的别名,作为 Web 服务器用于 HTTP 协议的默认端口。以下文件中列出了未指定端口号时 servicename 参数的可能值: %WINDIR%\system32\drivers\etc\services

MSDN - Winsock - WSAConnectByName 函数

  • 旁注:此文件的命名、用法和格式来自 Unix,其中文件为 `/etc/services`。当微软开始用越来越重要的开源 TCP/IP 协议替换他们的专有网络协议 Netbeui 时,他们采用了这一点。见 http://www.kuro5hin.org/story/2001/6/19/05641/7357 (4认同)
  • 具体来说,服务文件支持`[getservbyname](http://msdn.microsoft.com/en-us/library/windows/desktop/ms738538(v=vs.85).aspx)` API,它将服务名称转换为一个套接字号。 (2认同)