yazoox
V2EX  ›  macOS

macOS 如何让其它机器访问自己的 http://IPAddress:8080

  •  
  •   yazoox · Jul 1, 2020 · 8342 views
    This topic created in 2166 days ago, the information mentioned may be changed or developed.

    如题。编译了代码,启动了 node, 使用 http://localhost:8080/ 可以打开网站。

    但是,如果我想使用另外一台机器,访问该 mac 的 ipaddress 来打开这个临时的网站,怎么操作?

    1. firewall 是关闭的。
    2. preferences->sharing->"Internet Sharing"这个选项是“灰”的,无法点击。右侧有提示“You cannot start internet sharing because you have not selected a port to share your connection” 可是,也没有地方让我选择 port 啊?

    谢谢!

    Supplement 1  ·  Jul 1, 2020
    已经解决,谢谢大家。

    解决方法:
    由于启动脚本支持指定 hostname,所以
    `yarn start --host 0.0.0.0`

    脚本实际上用 node 运行了一个 express server,express 启动时,是可以指定 hostname 的。使用 0.0.0.0 instead of localhost 就可以了。
    17 replies    2020-07-01 23:17:14 +08:00
    dovme
        1
    dovme  
       Jul 1, 2020
    192.168.x.xxx 应该是这样吧
    dovme
        2
    dovme  
       Jul 1, 2020
    @dovme #1 同一 wifi 条件下
    march1993
        3
    march1993  
       Jul 1, 2020 via iPhone
    第二步是共享 internet 连接,相当于热点…
    yazoox
        4
    yazoox  
    OP
       Jul 1, 2020
    @dovme 我知道是通过这样的 ip address 访问啊。但是提示我打不开。好像是 connection refused 还是啥的。
    CoCoMcRee
        5
    CoCoMcRee  
       Jul 1, 2020
    yazoox
        6
    yazoox  
    OP
       Jul 1, 2020
    @CoCoMcRee 理论上是可以。但我得修改我们代码库的构建脚本,那个也不是个轻松活......
    现在我们是 `yarn start` 然后代码编译完成后,自动就启动了 http://localhost:8080 (具体启动啥,我也不清楚,估计是个 express,也得花时间研究一下,如果想替换成 anywhere 的话......)
    做前端的,你们懂的。
    kosmgco
        7
    kosmgco  
       Jul 1, 2020
    在「其他设备」上 telnet 一下看看端口有没有开

    mac 上启动服务用 0.0.0.0:8080 试试
    Weny
        8
    Weny  
       Jul 1, 2020 via iPhone
    监听 0.0.0.0
    herbertzz
        9
    herbertzz  
       Jul 1, 2020
    在 node 项目的配置文件里, 将 localhost 改成 你自己机子的 ip 地址
    meunicorn
        10
    meunicorn  
       Jul 1, 2020 via iPhone
    ngrok 了解一下
    nutting
        11
    nutting  
       Jul 1, 2020
    局域网是可以的。检查你的应用启动绑定到什么 ip 了,0.0.0.0 就没问题
    Vegetable
        12
    Vegetable  
       Jul 1, 2020
    检查这个配置,必须是 0.0.0.0,localhost 或者 127.0.0.1 都不行。
    https://webpack.js.org/configuration/dev-server/#devserverhost
    yancy0l
        13
    yancy0l  
       Jul 1, 2020
    首先,不知道是真的绑定了 localhost 还是 127.0.0.1,应该搞清楚。我最近遇到了类似的问题,这个问题应该取决于你将 8080 的服务映射到 哪个 ip 地址上。如果真的是 配置中写的 localhost,绑定到 127.0.0.1,也许可以通过修改 hosts 文件,将 localhost 映射为一个 192.136.1.1 (具体地址) 的局域网可以访问的地址,这样,另一个连接同一个局域网的机器就能通过 访问该 IP 地址访问到 8080 的服务。原理就是之前通过 localhost 和 127.0.0.1 绑定,提供仅供本地访问的服务,现在 localhost 和 IP 地址绑定 提供对外 服务。具体就是看你的服务启动的时候 绑定到什么 IP 了。楼上说的都对
    yazoox
        14
    yazoox  
    OP
       Jul 1, 2020
    @kosmgco
    问题解决了。我们的启动脚本里面,能够指定 hostname 。按照你建议的,use 0.0.0.0 instead of localhost (这个是默认的)就行了。

    `yarn start --host 0.0.0.0`

    现在我在另外一台机器,使用 http://<mac machine ip address>:8080,就可以访问了。


    谢谢!
    goodbyennn
        15
    goodbyennn  
       Jul 1, 2020
    最简单的办法就是 python -m http.server 8080
    FurN1
        16
    FurN1  
       Jul 1, 2020 via iPhone
    @meunicorn 不都用 frp 了吗
    buffzty
        17
    buffzty  
       Jul 1, 2020
    1. 局域网 监听局域网地址 192.168.x.x 或 0.0.0.0(所有地址)
    2. 外网 路由器 nat
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   1092 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 50ms · UTC 23:41 · PVG 07:41 · LAX 16:41 · JFK 19:41
    ♥ Do have faith in what you're doing.