V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
juggtt213
V2EX  ›  问与答

在局域网使用.local 的正确姿势是什么

  •  
  •   juggtt213 · 2023-04-14 17:30:07 +08:00 · 1393 次点击
    这是一个创建于 588 天前的主题,其中的信息可能已经有所发展或是发生改变。

    启动了 avahi 服务以后发现有点设备上使用起来有些问题,

    首先是在安卓上使用 Chrome 无法访问devicename.local,我在 这个帖子的 2022 年的回复中看到好像安卓已经支持了.local ,但是在我的设备上似乎还是不行

    然后用 Safari 访问.local 域名的时候,我发现访问//中的文件是正常的,但是我在设置了以下形式的反向代理以后

    server{
      listen 80;
      server_name  devicename.local;
      index  index.php index.html index.htm;
    
      location /fb/ {
        proxy_pass  http://127.0.0.1:8080/;
        proxy_set_header Host $http_host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
      }
    }
    

    访问devicename.local/fb的时候在 Safari 上会直接 404 ,我看到苹果的帮助文件写到过.local 可能无法正常访问 链接

    但是电脑上的 Chrome 和 Edge 是正常的,而且 Safari 还是能打开默认的/下的页面

    总体用下来感觉很混乱,所以想问一下是不是我的使用姿势不太对?正确的使用方法应该是怎么样的

    7 条回复    2023-04-16 16:51:15 +08:00
    AoEiuV020CN
        1
    AoEiuV020CN  
       2023-04-14 18:02:36 +08:00
    感觉不好使,我也试过一阵子就放弃了,
    最后还是 dhcp 静态分配 ip 使用,
    少数提供 web 服务的设备给个二级域名指过去,
    device name 靠不住,
    ksmagi
        2
    ksmagi  
       2023-04-14 18:05:02 +08:00
    location /fb/
    访问 devicename.local/fb 的时候

    404 这不是你 nginx 配置问题吗……
    juggtt213
        3
    juggtt213  
    OP
       2023-04-14 18:06:43 +08:00 via iPhone
    @ksmagi 在别的浏览器上可以正常访问,我在 vps 上这么配也没问题
    juggtt213
        4
    juggtt213  
    OP
       2023-04-14 20:46:02 +08:00
    不知道是不是 safari 处理.local 的时候顺序和正常网址不同,我发现当请求到 nginx 的时候已经丢失了 host 那个部分,所以无法和 server_name 匹配。如果我把上面的 server_name 改成 _ ,来自 Safari 的请求就能正常匹配我的反代规则
    billlee
        5
    billlee  
       2023-04-14 22:36:24 +08:00
    主要是很多框架不走 libc 的名字服务,比如 golang, nodejs, wsl. 对这种要起一个支持转发到 libc 的 dns 缓存服务器,然后把系统 dns 配置指向它才好用。
    julyclyde
        6
    julyclyde  
       2023-04-15 11:37:04 +08:00
    @juggtt213 proxy set header 啊
    themiscloud
        7
    themiscloud  
       2023-04-16 16:51:15 +08:00
    完全可以不用 .local 域名,用自定义域名

    个人真实在用案例小分享(比如用的域名是 nas.dev ):
    1 、dnsmasq (operwrt 路由自带) 域名泛解析到 Nginx Proxy Manager(NPM) 机器上:

    /etc/dnsmasq.d/nas.dev.conf
    address=/nas.dev/192.168.1.xxx

    2 、NPM 上配置服务转发

    3 、mkcert 生成一个自制的 nas.dev 泛域名证书

    4 、(可选)在 NPM 中根据需要配置 nas.dev 泛域名证书

    5 、(可选)在电脑或手上信任 nas.dev 泛域名证书
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2805 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 31ms · UTC 09:29 · PVG 17:29 · LAX 01:29 · JFK 04:29
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.