ssh - 如何通过私人隧道(不是 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 客户端时,他无法连接。关于帮助的任何想法?
解决方案
看起来 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
推荐阅读
- google-chrome-devtools - 有没有办法将 chrome profiler 与控制台日志或在时间轴上放置标记相关联?
- php - Laravel selectRaw中按月分组的SQL
- ibm-mq - 如何在 CachingConnectionFactory 中查找会话缓存耗尽
- java - 获取组件需要一个名为“redisTemplate”的 bean,但无法找到。用于多种不同的 RedisTemplates 配置
- ios - 在 CollectionViewCell 中居中 UIImegaeView
- amazon-web-services - 如何创建具有只读访问权限的 Redshift 用户?
- javascript - 期望调用一个断言,但接收到零个断言调用。为什么?
- javascript - 使用脚本重置子值
- html - 简单的图像叠加悬停效果图像用完 div
- python - 重新标记电子邮件地址