首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >当服务被指定为(主机名、端口号)时,这是否指定了传输协议?

当服务被指定为(主机名、端口号)时,这是否指定了传输协议?
EN

Server Fault用户
提问于 2019-02-13 21:20:21
回答 2查看 796关注 0票数 -3

/etc/services中,服务名称可以有多个(传输协议、端口号)对。例如,

代码语言:javascript
复制
http            80/tcp                  # Hypertext Transfer Protocol
http            80/udp
ssh             22/tcp                  # Secure Shell
ssh             22/udp
telnet          23/tcp                  # Telnet
telnet          23/udp
smtp            25/tcp                  # Simple Mail Transfer Protocol
smtp            25/udp

当服务被指定为(主机名、端口号)时,这是否指定了传输协议?

如果是,从何处和何时推断传输协议(主机名、端口号)?我想不是DNS服务器,因为DNS服务器不知道单个服务器上的/etc/services

如果不是,如何指定服务,以便可以指定其传输协议以及其主机名和端口号?

谢谢。

EN

回答 2

Server Fault用户

发布于 2019-02-13 21:53:42

当服务被指定为(主机名、端口号)时,这是否指定了传输协议?

不是的。example.com:80可以是一个http服务,但它也可以很容易地成为一个VPN服务。如果它是运行OpenVPN的VPN服务,那么它可以是tcp或udp,这取决于应用程序是如何配置的。

如果不是,如何指定服务,以便可以指定其传输协议以及其主机名和端口号?

我不相信有这样的惯例,我可能会使用example.com:80/tcp,但是使用YMMV。

票数 6
EN

Server Fault用户

发布于 2019-02-13 21:49:01

主机名/DNS与运行在特定端口上的服务无关。它严格处理IP地址到名称的转换,反之亦然。

/etc/services充当getportbyname()的提示查找,这样本地机器上的脚本/程序就不必知道它们处理的是哪个端口。也就是说,如果我有一个脚本可以远程进入其他机器,我可以让它尝试/etc/services指定的所有端口。

服务,特别是它们使用的传输协议,取决于它们是如何编写和/或配置的。如果要将服务配置为特定的端口/传输协议,则必须查看该特定服务的配置。有些用户可能不允许您监听UDP,但允许您指定任何您想要的TCP端口。其他人可能会让你同时设置,这是高度依赖于服务。

例如,在设置nginx时,可以使用lets指令指定IP地址和(tcp)端口,但仅此而已。您可以进行UDP负载平衡,但不能使用udp侦听HTTP。

票数 2
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/953815

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档