首页 > 解决方案 > 如何通过私人隧道(不是 ngrok)连接到世博会

问题描述

我有一个问题,在工作中我无法通过网络连接到 expo,所以我需要使用隧道,这很好。然而,有时隧道真的很慢,破坏了任何开发人员的经验。

因为我也可以在本地主机上本地托管 expo,所以我想简单地通过 ssh 隧道连接到具有开放端口的远程服务器。

我的远程主机运行 ubuntu

所以我在那里 SSH 像这样:

ssh -R 0.0.0.0:19000:0.0.0.0:19000 user@ip

为了使它起作用,我还添加了

GatewayPorts clientspecified

到我的 /etc/ssh/sshd_config ...

sudo netstat -plutn

给我看

tcp        0      0 0.0.0.0:19000           0.0.0.0:*               LISTEN      20183/2

所以接受请求(当我在浏览器中输入它时,我还尝试转发端口 19001 以取回一些东西,这工作正常)

但是,当我在我的 android 手机上输入:exp://serverip:19000 到 expo 客户端时,他无法连接。关于帮助的任何想法?

标签: sshexpo

解决方案


看起来 Expo 使用了多个端口 19000、19001 和 19002。因此您需要转发所有这些端口。

例如

$ ssh -f -N -R 19000:localhost:19000 user@ip
$ ssh -f -N -R 19001:localhost:19001 user@ip
$ ssh -f -N -R 19002:localhost:19002 user@ip

此外,您可以设置REACT_NATIVE_PACKAGER_HOSTNAME环境变量以使用远程主机。

$ export REACT_NATIVE_PACKAGER_HOSTNAME="ip"
$ expo start

推荐阅读