一种通过设置 DNS 记录解决家庭宽带提供 https 服务省去端口号的方法 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
C0VN
V2EX    分享发现

一种通过设置 DNS 记录解决家庭宽带提供 https 服务省去端口号的方法

  •  1
     
  •   C0VN 2023-07-06 15:01:39 +08:00 2669 次点击
    这是一个创建于 874 天前的主题,其中的信息可能已经有所展或是发生改变。

    众所周知,家庭宽带是不被允许对外提供 web 服务的,所以运营商会主动封禁 80 和 443 端口,这两个端口一个是 http 服务另一个是 https 服务的默认端口。

    如果家庭宽带利用 DDNS 技术绑定了域名,例如f.example.home域名,我们访问家里 https 服务的链接会是如下的形式:https://f.example.home:6789/share

    我最近在逛博客时发现了一种方法可以省去链接中的端口号,这样我们访问的链接变成了:https://f.example.home/share。是不是简洁美观多了,而且在技术上也灵活了。

    方法来源:涛叔:解决家庭宽带 443 端口封禁问题

    首先要声明的是,虽然对于服务提供者来说只需要添加一条 DNS 记录,但是目前这种方法对于访问者来说并不适用于大多数场景及用户,就是说对于绝大数访问者想要以不带端口号的形式访问服务需要手动设置及浏览器相关支持。原因在于 DoH 技术还未普及到成为 DNS 的默认设置,以及浏览器对其相关功能的实现。

    具体点说,就是访问者想要通过省去端口号的链接来访问服务,需要设置浏览器的 DNS 为 DoH

    就目前的测试情况来看,在 Windows 系统下,Chrome 和 Edge 在 DNS 已经设置为 DoH 的情况下依旧不可以,只有 Firefox 在设置 DNS 为 DoH 的情况下可以 。在 iPad 上 Safari 在无任何特别配置的情况下直接可以。

    系统 浏览器 DNS 设置 结果
    Windows 10 Chrome DoH
    Windows 10 Edge DoH
    Windows 10 Firefox DoH
    iOS 16 Safari 默认

    添加 DNS HTTPS 记录

    我以 DNSPod 为例:

    主机记录:f 记录类型:HTTPS , 记录值:f.example.home. alpn="h2" port="6789" 

    添加好记录,然后等待生效,就可以测试是否可以通过不带端口号的链接访问服务了。

    我在 Firfox 中添加的是 DNSPod 的 DoH 。参考

    家庭网络服务简介:家里的宽带通过 DDNS 绑定 IP ,家里的服务通过 Caddy web server 来获取证书并提供 https 服务,然后路由上做好端口映射。

    推荐阅读:

    10 条回复    2023-11-13 13:11:42 +08:00
    chenjia404
        1
    chenjia404  
       2023-07-06 15:05:51 +08:00 via Android
    不过可以通过协议识别提供 http 服务吗
    C0VN
        2
    C0VN  
    OP
       2023-07-06 15:34:54 +08:00
    @chenjia404 #1 你试一下呗。

    好像不行,只支持 HTTP/2 和 HTTP/3 协议。https://docs.dnspod.cn/dns/help-https/
    chenjia404
        3
    chenjia404  
       2023-07-06 15:46:55 +08:00
    @xavierskip #2 你的 https 服务,运营商也能识别到,然后停你的服务。
    yoyoluck
        4
    yoyoluck  
       2023-07-06 16:31:15 +08:00
    在非国内的域名服务商买个域名 然后做个隐式或显式 url 转换
    digimoon
        5
    digimoon  
       2023-07-06 16:39:24 +08:00
    不管你 web 服务开在什么端口,isp 查到就能请你喝茶
    cccer
        6
    cccer  
       2023-07-06 17:24:02 +08:00
    可是 DNSPod 并不支持 HTTPS 记录,另外 Chrome 的 HTTPS 记录是需要打开一个实验 flag 才能用。

    ```
    curl --http2 -H "accept: application/dns-json" "https://doh.pub/dns-query?name=www.cloudflare.com&type=HTTPS"
    dig www.cloudflare.com @119.29.29.29 HTTPS
    ```

    ```
    curl --http2 -H "accept: application/dns-json" "https:/1.1.1.1/dns-query?name=www.cloudflare.com&type=HTTPS"
    dig www.cloudflare.com @1.1.1.1 HTTPS
    ```
    C0VN
        7
    C0VN  
    OP
       2023-07-06 21:42:17 +08:00
    @cccer #6 dnspod 可以添加呀,还有文档 https://docs.dnspod.cn/dns/help-https/

    你试一下
    `curl --http2 -H "accept: application/dns-json" "https://doh.pub/dns-query?name=www.cloudflare.com&type=65" `
    上面的的这个命令我在 Windows 系统下报错`{"code":"UrlParameterError"}`,但是在另一台 linux 机器上得到了正常的返回

    dig 话你试一下这个命令`dig www.cloudflare.com -t type65 @1.1.1.1`

    另外也没说非要用 DNSPod 的,只不过我自己的域名在哪个上面,所以我的设定是这样的,其他支持 https 记录的 dns 服务提供商都可以的。
    deorth
        8
    deorth  
       2023-07-06 23:30:15 +08:00 via Android
    大清亡了
    AnotherWorld
        9
    AnotherWorld  
       2023-11-13 11:45:49 +08:00
    我也试了下这个方法,谷歌,edge 配置 doh 也不行。只有火狐 和我手机自带的浏览器可以。感觉用处不大,还有其他方案吗,不想用反代 流量会受限制
    C0VN
        10
    C0VN  
    OP
       2023-11-13 13:11:42 +08:00
    @AnotherWorld #9 是的,使用场景受限,自己宽带提供的服务自己用用得了。
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     5637 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 29ms UTC 03:00 PVG 11:00 LAX 19:00 JFK 22:00
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86