如何将服务绑定到任何主机的端口?

Posted

技术标签:

【中文标题】如何将服务绑定到任何主机的端口?【英文标题】:How to bind a service into any host's port? 【发布时间】:2021-11-23 21:11:55 【问题描述】:

你好,????

我想知道服务(如 mysql、apache、mongoDB)如何绑定到服务器/本地机器中的端口。这是如何工作的?

我猜当服务启动时,它会尝试连接到端口,如果可能,服务会“暂停”,直到操作系统收到针对所选端口的请求。是否有任何文档说明这是如何工作的?

谢谢!

【问题讨论】:

你使用 Linux 内核系统调用。首先你创建一个socket 和bind 到一个端口,然后你listen 和accept 传入请求。那里有很多书籍和教程。详细回答这个问题超出了 *** 的用途。尝试一些,然后再提出更具体的问题。 【参考方案1】:

我可以帮你吗?

这是一个list of TCP and UDP port numbers used协议,用于运行网络应用程序。

传输控制协议 (TCP) 和用户数据报协议 (UDP) 只需要一个端口用于双工双向流量。它们通常使用与相应 TCP 或 UDP 实现的服务相匹配的端口号(如果存在)。

【讨论】:

实现是如何工作的?我之所以问,是因为我想了解我的服务器是如何与机器绑定的,以及当对 TCP/UDP 端口发出请求时操作系统如何调用服务。

以上是关于如何将服务绑定到任何主机的端口?的主要内容,如果未能解决你的问题,请参考以下文章

如何将烧瓶端口从容器发布到主机[重复]

Bad Request (Invalid Hostname) 是啥意思

无法使用 httpd (CentOS) 将虚拟主机绑定到不同的端口

服务器上必须保留空主机头,如何放置恶意域名指向呢?

一台服务器上多个网站怎么绑定域名?

Nginx同IP绑定多域名虚拟主机没有作用。求教