连续第二天,我在设置 Mac 上的端口转发时遇到了困难。我正在开发一个微服务,想通过 Web 使用。我可能弄乱了一些设置,因为不久前我弄乱了端口转发,一切都运行正常。我希望正在运行的微服务可以localhost:7171
通过我的公共 IP 地址访问71.XXX.XX.XXX:9890
。
这是我所做的:
- 我在路由器上设置了端口转发规则,并打开了端口 9890
- 根据规则,所有请求都从转发
71.XXX.XX.XXX:9890
到10.0.0.209:9890
(10.0.0.209
这是我的 Mac 的 IPv4 地址) - 我已经设置了 ssh 隧道以转发
10.0.0.209:9890
到 localhost:7171ssh -L 10.0.0.209:9890:localhost:7171 localhost
哪些事情奇怪且不好:
- 一旦我设置了 SSH 隧道,我就可以从 Web 上 ping 我的服务
71.XXX.XX.XXX:9890
,但只能持续 10 秒,之后,服务没有响应,即使它正在运行,我可以在本地访问它 - 我可以运行
10.0.0.209:9890
并且仍然可以从 Mac 访问我的微服务,该微服务将我转发到 localhost:7171 (SSH 隧道正在运行,是的!) 71.XXX.XX.XXX:9890
另一件奇怪的事情是,如果我从同一个 Wi-Fi 网络访问,我无法访问我的微服务,它只是挂起并且永远不会响应- 最后一件事,这可能是正常的,当我关闭终端时,我的 ssh 隧道就断了,我尝试使用 autossh,但还是不行
临时解决方案:
- 由于我的手机上有动态 IP,我不断通过 LTE 重新连接到互联网,因此能够再使用我的微服务 10 秒,然后它就挂了
- 我尝试使用 ssh 配置文件设置不同的属性,但仍然没有帮助
- 没有解决方案:我即将放弃,不知道到底发生了什么。
请提供建议。谢谢!
答案1
在许多情况下,端口转发不起作用。这是我从个人经历中发现的。大多数情况下,失败的实际原因仍然未知。此外,许多 ISP 还以随机关闭各种端口而臭名昭著。在某些情况下,端口触发可能有用。我知道,这并不是您问题的确切答案。将此视为对端口转发问题的一般性评论。我不是该领域的专家。请认为我的评论非常通用。