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

如何把本地的 localhost:3000 映射到一个 https 的 .local 网址?

  •  
  •   hanguofu · 2023-08-26 19:18:32 +08:00 via Android · 1827 次点击
    这是一个创建于 489 天前的主题,其中的信息可能已经有所发展或是发生改变。
    来国外的某个论坛的问题,看看 v2 的方案?
    15 条回复    2023-09-06 14:02:47 +08:00
    Trim21
        1
    Trim21  
       2023-08-26 19:20:54 +08:00 via Android
    你是要内网穿透还是反向代理?
    zcf0508
        2
    zcf0508  
       2023-08-26 19:32:51 +08:00 via Android
    caddy2 反带
    gzlock
        3
    gzlock  
       2023-08-26 19:44:11 +08:00
    cloudflare 的 tunnel
    expy
        4
    expy  
       2023-08-26 19:53:31 +08:00
    .local 是保留字吧。
    yoa1q7y
        5
    yoa1q7y  
       2023-08-26 20:23:57 +08:00   ❤️ 1
    假设地址为 https://dev.local

    使用 https://github.com/FiloSottile/mkcert 生成自签名证书

    ```
    mkcert dev.local
    ```

    nginx 配置

    ```
    server {
    listen 443 ssl http2;
    server_name dev.local;

    ssl_certificate /usr/local/etc/nginx/certs/dev.local.pem;
    ssl_certificate_key /usr/local/etc/nginx/certs/dev.local-key.pem;

    location / {
    proxy_pass http://127.0.0.1:3000;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-Proto $scheme;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header Host $host;
    proxy_set_header X-NginX-Proxy true;
    proxy_cache_bypass $http_upgrade;
    proxy_http_version 1.1;
    proxy_redirect off;

    add_header Cache-Control no-cache;
    }
    }
    ```

    修改 hosts

    ```
    127.0.0.1 dev.local
    ```
    JensenQian
        6
    JensenQian  
       2023-08-26 20:25:38 +08:00 via Android
    cloudflare tunnel
    muxinqi
        7
    muxinqi  
       2023-08-26 22:31:08 +08:00
    TL;DR
    1. mkcert 生成 CA 和证书
    2. mitmproxy 一键本地反向代理
    3. 配置 Local DNS Mapping (Hosts/Surge)

    详细步骤 https://web.archive.org/web/20230826141958/https://notes.muxinqi.com/using-https-for-local-development
    Mutoo
        8
    Mutoo  
       2023-08-26 22:57:01 +08:00 via iPhone
    用 mkcert 或者纯手工打造自签名证书,教程: https://blog.mutoo.im/2022/04/self-signed-ssl-cert/
    jim9606
        9
    jim9606  
       2023-08-26 23:08:16 +08:00
    .local 是 mDNS 保留的顶级域名。Windows 虽然支持但限制在 UWP 下使用。
    开发用我建议用别的域名,写进 hosts 或者就直接用自有域名填一个 127.0.0.1 的 A 记录。因为某些解析器会固定使用 mDNS 解析.local 域名而不是传统 DNS 。
    kkwa56188
        10
    kkwa56188  
       2023-08-26 23:16:47 +08:00
    推上看到了, 短的答案:用 Caddy
    bugcoder
        11
    bugcoder  
       2023-08-26 23:24:21 +08:00
    借楼问:Mac 上面的是自带的吗? iPad 和 Mac 局域网就是用.local 的网址
    qfdk
        12
    qfdk  
       2023-08-27 08:54:55 +08:00 via iPhone
    mac 自带不是.local 嘛
    qfdk
        13
    qfdk  
       2023-08-27 08:55:06 +08:00 via iPhone
    SimonOne
        14
    SimonOne  
       2023-08-27 21:35:08 +08:00   ❤️ 1
    @bugcoder
    @qfdk

    macOS 上的设备.local 就是 mDNS
    https://zhuanlan.zhihu.com/p/45256302?utm_id=0
    bugcoder
        15
    bugcoder  
       2023-09-06 14:02:47 +08:00
    @SimonOne 懂了,多謝~~
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2590 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 01:43 · PVG 09:43 · LAX 17:43 · JFK 20:43
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.