我想从另一台主机访问 ddev Web 容器。我怎样才能做到这一点?
例如:ddev 在主机 A 上运行,我想从主机 B 访问网页。
https://medium.com/botfuel/how-to-expose-a-local-development-server-to-the-internet-c31532d741cc上有一个很好的技术总结,我看到了其他一些技术 - 它建议:
因此,您所谈论的内容至少有两种变体:
对于任何一种方法,我们都需要弄清楚要代理的端口。如果你只能使用 http,我会代理 localhost 端口(它直接进入 Web 容器,而不关心 URL 中的主机名是什么)。因此,如果ddev describe
显示http://d7git.ddev.local:8080, https://d7git.ddev.local:8443, http://127.0.0.1:32827
,请使用 127.0.0.1 端口(在本例中为 32827)。如果你能做到这一点,你就不必在你要访问它的主机上伪造主机名。
因此,对于选项 1(仅在您机器上的另一个端口上公开),请使用这些技术中的任何一个。我将在 macOS 上使用 socat 方法(brew install socat)。
socat tcp-listen:8889,reuseaddr,fork tcp:localhost:32827
其中 32827 是 ddev 列出的端口,描述为 localhost 访问,而 8889 是您要向其他人公开的端口。然后找出您的本地网络 IP 地址(使用 ifconfig 或其他技术),其他人可以使用它访问您的 ddev 项目。例如,我今天的设置是http://10.150.150.87:32827/
对于选项 2,通过 ssh 隧道代理您的项目以供其他人在 Internet 上使用:
ssh -R :9101:localhost:32827 user@host.example.com
这会将您的本地端口 32827(检查您自己的 ddev 描述)隧道到远程 host.example.com 上的端口 9101。请注意,您可能必须
GatewayPorts yes
在主机的 sshd 配置中启用。更新:使用 ddev 1.9.0 及更高版本提供了一个ddev share
命令,使这变得非常容易。