在 IP:端口监听器上分配域名

在 IP:端口监听器上分配域名

我在端口处有一个 Java Socket 监听器:5000。由于我的服务器上有一个公共 IP 地址,因此可以通过以下方式访问它:

123.123.123.123:5000

没事。

但是现在,如果我不想使用 IP 地址,而是使用域名,该怎么办?请问我该如何将我的域名应用于 IP 地址之上。我的意思是,像这样:

www.example.com:5000

我的 DNS 已指向服务器。但我不知道如何将域名应用(或)绑定到现有端口。

请帮忙指点。我的网络知识很差。可以用 NGINX 或其他东西来做吗?


更新:

在某个地方,我了解到这Reverse Proxying与 NGINX 有关。所以我尝试了这个:

server {
    listen      5050 default_server;
    server_name www.example.com;

    location / {
        proxy_pass http://123.123.123.123:5000;
    }
}

你可以想象,它现在的工作方式是:

http://www.example.com:5050

但:它仍然没有完全解决我的问题。因为我不想再不同的端口被使用(或)打开。

如何使用与我的应用程序正在监听的完全相同的端口(在本例中是端口:5000)?

答案1

DNS 服务器大部分仅提供域名到 IP 地址的转换。

[编辑新评论后更新]

DNS 翻译最基本的记录是 A 记录。域名请求时会返回此记录。

DNS 的规范之一是 RFC 1035。第 20 页是 A 记录格式。请注意,该记录是一个 32 位字段,其中包含 IP 地址。没有 IP 端口字段。

转换 TCP / UDP 端口不是 DNS 名称转换的一部分。

RFC 1035

端口转发完全不同。创建一个新问题来涵盖此主题。

答案2

当您在浏览器中输入 URL 时,如果您不提供端口,则方案将把浏览器定向到默认端口,例如 http -> 80、https -> 443 等。没有与端口 5000 关联的方案,因此您必须使用不同的方法来提供它,并且 DNS 通常不是解决方案的一部分。

您的选择是使用 URL 中的端口、使用反向代理、使用防火墙对端口进行 DNAT 或其他操作。

幸运的是,您接下来的许多问题的答案已经在 Server Fault 和更广泛的互联网上找到了。您有很多阅读和研究要做 - 开始编织吧。

如何使用与我的应用程序正在监听的完全相同的端口(在本例中是端口:5000)?

考虑到您的其他限制,您可以在 URL 中提供一个端口。

相关内容