域名解析添加https记录,实现免端口号访问非标准端口http服务

问题由来

RFC规定:http 默认端口号 80,https 则是使用默认端口号 443。

当浏览器请求一个 url,比如https://example.com,就会去连接默认的443端口。

要想通过指定端口连接,需要显示指定,比如https://example.com:8848,这样就会通过指定的8848端口发起连接。

家庭宽带的80与443端口都被运营商封掉了,所以要开放内网服务供外部访问,需要使用非标准端口。

访问的时候需要显示指定端口号,这样 url 看起来很丑,当然要觉得无所谓,后面内容就不用看了。

解决办法

之前解决这个问题可以做302跳转或者套代理中转,我的评价是:治标不治本,还不如不搞。

现在多了一种办法,就是为域名添加 https 记录。

这里以 cloudflare 为例说明:

DNS 解析示例

添加一条这样的 https 记录。

这样,当浏览器访问https://example.com的时候,会根据 https 记录里的 port 字段来发起连接,这样就不需要显示指定端口。

不过现在这个时间,还没有成为标准,已知支持的浏览器只有 Safari 与 Firefox。

Firefox 好像得在设置里开启 DoH 才可以,Safari 则不用做设置。