问题由来
RFC规定:http 默认端口号 80,https 则是使用默认端口号 443。
当浏览器请求一个 url,比如https://example.com,就会去连接默认的443端口。
要想通过指定端口连接,需要显示指定,比如https://example.com:8848,这样就会通过指定的8848端口发起连接。
家庭宽带的80与443端口都被运营商封掉了,所以要开放内网服务供外部访问,需要使用非标准端口。
访问的时候需要显示指定端口号,这样 url 看起来很丑,当然要觉得无所谓,后面内容就不用看了。
解决办法
之前解决这个问题可以做302跳转或者套代理中转,我的评价是:治标不治本,还不如不搞。
现在多了一种办法,就是为域名添加 https 记录。
这里以 cloudflare 为例说明:

添加一条这样的 https 记录。
这样,当浏览器访问https://example.com的时候,会根据 https 记录里的 port 字段来发起连接,这样就不需要显示指定端口。
不过现在这个时间,还没有成为标准,已知支持的浏览器只有 Safari 与 Firefox。
Firefox 好像得在设置里开启 DoH 才可以,Safari 则不用做设置。