V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
meisei81
V2EX  ›  程序员

本地域名映射本地服务(非 80 端口)

  •  
  •   meisei81 · 2017-09-26 17:57:09 +08:00 · 9887 次点击
    这是一个创建于 2625 天前的主题,其中的信息可能已经有所发展或是发生改变。

    需求:想在本地 Chrome 上访问 www.a.com 的时候,可以映射到本地服务 127.0.0.1 的 12345 端口 想到的解决方案:在别的机器装个 nginx 代理,然后 www.a.com 指向 nginx,nginx 再代理回来。感觉这种方式有点麻烦。 有没有更好的解决方案?先行谢过。

    16 条回复    2019-11-29 17:10:28 +08:00
    zingl
        1
    zingl  
       2017-09-26 18:16:07 +08:00
    /etc/hosts + port forwarding
    Tink
        2
    Tink  
       2017-09-26 18:16:08 +08:00 via iPhone
    为啥不 hosts.....
    meisei81
        3
    meisei81  
    OP
       2017-09-26 18:23:55 +08:00
    @zingl port forwarding 用的是系统自带的功能么?
    meisei81
        4
    meisei81  
    OP
       2017-09-26 18:24:49 +08:00
    @Tink hosts 支持端口映射么
    nousername2030
        5
    nousername2030  
       2017-09-26 18:28:30 +08:00
    a.com 是你自己的域名?还是别人的?
    nousername2030
        6
    nousername2030  
       2017-09-26 18:29:40 +08:00
    如果是你自己的域名,dns 记录改到 127.0.0.1。本机上装个 nginx,反代 12345 端口到 80 就好了。
    Tink
        7
    Tink  
       2017-09-26 18:30:27 +08:00 via iPhone
    @meisei81 本机有 nginx 反带一下啊
    AsisA
        8
    AsisA  
       2017-09-26 19:15:42 +08:00 via Android
    Chrome 插件 Switcheroo Redirector 值得拥有,我一直用这个,简单易用,不过我没试过指定端口,你可以试试


    https://chrome.google.com/webstore/detail/switcheroo-redirector/cnmciclhnghalnpfhhleggldniplelbg
    oott123
        9
    oott123  
       2017-09-26 19:16:10 +08:00
    教你一个简单的:你把监听 127.0.0.1:12345 的程序改为监听 127.12.34.5:80,然后 hosts 写 www.a.com 127.12.34.5

    事实上 127.x.x.x 都可以随便监听,而且互不冲突,特好用(
    以上仅在 linux / mac 上实验通过
    AsisA
        10
    AsisA  
       2017-09-26 19:17:03 +08:00 via Android
    原来是映射过去…我搞错了,这个是重定向用的
    anoymoux
        11
    anoymoux  
       2017-09-26 20:25:20 +08:00
    hosts:
    www.a.com 127.0.0.1

    windows :
    netsh interface portproxy add v4tov4 listenport=80 connectaddress=127.0.0.1 connectport=12345
    linux
    iptables -A PREROUTING -t nat -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 12345
    Mac:
    sudo ipfw add 1 forward 127.0.0.1,12345 ip from any to any 80 in
    meisei81
        12
    meisei81  
    OP
       2017-09-27 10:01:33 +08:00
    @oott123 mac 上可以监听 80 端口么。印象中本地的应用程序不能直接监听的吧
    meisei81
        13
    meisei81  
    OP
       2017-09-27 10:02:14 +08:00
    @AsisA 感谢推荐插件。又学了一招。先安装试试。
    meisei81
        14
    meisei81  
    OP
       2017-09-27 10:37:43 +08:00
    @anoymoux
    ipfw 的我没试,本地没有这个软件。
    我在 mac 的 /etc/pf.conf 文件中加了下面这个
    rdr on lo0 inet proto tcp from any to www.abc.com port 80 -> 127.0.0.1 port 8081
    rdr on lo0 inet proto tcp from any to www.123.com port 80 -> 127.0.0.1 port 8082
    当我在浏览器上访问 www.123.com 的时候,访问到的却是 8081 的服务。
    不知道 ipfw 的是否也有类似的问题
    meisei81
        15
    meisei81  
    OP
       2017-09-27 11:08:30 +08:00
    @Tink 试了一下 nginx 确实可以反带。以前一直以为本地浏览器上的请求 nginx 无法监听到的。感谢。问题解决。
    ghostcode
        16
    ghostcode  
       2019-11-29 17:10:28 +08:00
    @AsisA 666 可以端口映射
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1017 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 20:50 · PVG 04:50 · LAX 12:50 · JFK 15:50
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.