如何使用内部 macOS 防火墙将本地主机请求重定向到网络上的外部设备?

如何使用内部 macOS 防火墙将本地主机请求重定向到网络上的外部设备?

我在 Arduino 开发板上运行了一个 Web 服务器。它连接到我的 Mac 的互联网共享,并可在 上访问192.168.2.2:80

我希望能够在我的 Mac 上请求某个本地主机端口时访问它。

我如何使用fpctl将请求从此本地主机端口重定向到我的主板?目前我已经这样做了,rdr pass proto tcp from any to any port {5050} -> 192.168.2.2 port 80但我认为我缺少了一些东西来通过互联网共享层,它与有关bridge100

答案1

您可以使用 SSH 隧道来完成此操作......

  1. 启动并运行 SSH 服务 https://apple.stackexchange.com/questions/237038/os-x-terminal-command-to-turn-on-off-ssh-server

  2. 打开终端并运行命令ssh -L5050:192.168.2.2:80 yourusername@localhost - 请注意,您的用户名是您正在使用的台式机/笔记本电脑上的 Mac 登录名/用户名。将5050和替换80为适当的端口号 -5050是您要连接的端口,是您的流量应转发到的80端口。5050

    它的作用是打开本地主机上的一个监听端口,该端口通过 SSH 隧道并从端点(仍然是您的本地机器)到达该主机在192.168.2.2远程机器端口 80 上看到的任何内容。这意味着如果您设置了家庭路由器以允许您通过 SSH 连接到您的 Mac,您可以使用完全相同的命令并从互联网上的任何地方连接到您的主板......

  3. 打开浏览器http://localhost:5050 - 你应该看到页面通常显示的内容

    当您执行此操作时,即使从某个远程位置,您要将端口转发到的计算机也始终会将您通过 SSH 进入的计算机的 IP 视为连接的源地址。如果您使用主机名而不是 IP 作为端口转发的目标,您将指向 SSH 主机将该名称解析为的任何计算机。

相关内容