添加链接
link之家
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接

ngrok内网映射到外网环境

1、 下载ngrok,网址: https://ngrok.com/download

2、注册ngrok,地址: https://dashboard.ngrok.com/user/signup

如果你已经有ngrok账号,登陆ngrok,如图找到你的authtoken

3、将下载好的ngrok解压到本地,进入ngrok所在的目录

4、将authtoken(如40u6g....)添加到本地(只需要第一次执行添加,以后不需要再添加。笔者是Mac环境)

./ngrok authtoken 4ou6g....
5、启动ng rok,映射的端口是8080
./ngrok http 8080
执行上面的启动命令,Session Status=online 即代表成功,可根据自动生成的域名进行访问,如笔者生成的域名是:http://48b1c3e2.ngrok.io

注:因为ngrok免费版,域名是不固定的,如果想要稳定的域名,需要付费,不再叙说。

下面讲述一个通过nginx进行外网映射,固定域名,免费版,前提是你得有一个公网IP

nginx 映射外网环境

1、需要安装nginx,如果还未安装nginx,Mac环境下如何安装nginx可参考该博文,

http://blog.csdn.net/lanqibaoer/article/details/72853056

如果已经安装了nginx,但是不清楚nginx安装目录,可执行以下命令进行查询:

ps -ef | grep nginx
/usr/sbin/nginx -t
[root/]# ps -ef | grep nginx
root      9730     1  0  2017 ?        00:00:00 nginx: master process /usr/sbin/nginx
root     14290 14218  0 09:34 pts/5    00:00:00 grep --color=auto nginx
nginx    32480  9730  0  2017 ?        00:01:46 nginx: worker process
nginx    32481  9730  0  2017 ?        00:02:20 nginx: worker process
[root/]# /usr/sbin/nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
[root/]# 
“  the configuration file /etc/nginx/nginx.conf syntax is ok  ”这里的 /etc/nginx/nginx.conf  就是你服务器中安装nginx配置文件的地址。

2、有一台公网服务器,在公网服务器的nginx.conf中添加以下内容

upstream tunnel {
  server 127.0.0.1:7689;
server {
  listen 80;
  server_name dev.ninghao.net;
  location / {
    proxy_set_header  X-Real-IP  $remote_addr;
    proxy_set_header  X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header Host $http_host;
    proxy_redirect off;
    proxy_pass http://tunnel;
}
上面用 NGINX 创建了一个代理,如果有人访问 dev.ninghao.net,NGINX 会把请求转给 tunnel,这个 tunnel 指的就是这台公网服务器,端口号是 7689,一会儿我们要用到这个端口跟内网环境电脑进行通信。

注:1)upstream 和 server 可以配置多个,每个upstream和server都是平级的;

2)server listen不可相同(此处需要商榷),如果listen 端口是80,默认域名访问的端口是80,无需显性标示,如果listen端口是80以外的端口,比如,8088,则访问域名还要再其后加8088,如 http://dev.ninghao.net:8088/

3、打开你内网环境的服务器

我们要在本地电脑与公网服务器之间,使用 SSH 打开一个通道。在内网环境服务器中要执行的命令像这样:

ssh -vnNT -R 服务器端口:localhost:本地端口 服务器用户名@服务器 IP 地址
示例:
ssh -vnNT -R 7689:localhost:3000 root@42.120.40.68
在上面这个例子里,7689 指的是公网服务器的端口,localhost 后面的 3000 是本地电脑用的端口。

root 是登录到公网服务器的用户,42.120.40.68 是公网服务器的 IP 地址。

因为我们配置了公网服务器的 NGINX,访问 dev.ninghao.net ,把请求转到服务器上的 7689 端口,

这个端口跟我们的内网环境电脑上的 3000 端口是连接到一块儿的。

所以,你在内网开发环境上搭建的服务器,应该使用 3000 这个端口提供服务。

也就是,当有人访问 dev.ninghao.net 这个地址的时候,用户得到的响应是你的内网开发环境上的服务器提供的。

参考文档:

https://ngrok.com/docs

http://blog.csdn.net/liuxiyangyang/article/details/22922265/

https://ninghao.net/blog/4452

作者:senola,来自原文地址 最近和微信公众号杠上了。和微信打过交道的叉子们肯定都见过微信这个配置。微信开发需要有一个公 IP,而我们绝大部分都用的公司的内 ,所以每次都得自己在本地模拟微信请求(可以用[postman]),然后提交代码至服务器验证。一旦遇到错误需要重新发布,给调试代码带来极大不便,效率甚低。。。所以很多时候我的心情是这样的: (此图片来源于 络,如有侵权,请联系删除! ) 带着些许期待,遨游了一下google,于是就认识了它---[ ngrok ]。百度百科解释如下: ngrok 是一个反向代理,通过在公共的端点和本地运行的 Web 服务器之间建立一个安全的通道。 方案一:(前提: 域名 映射 服务器 IP) 1. nginx 配置域名监听且访问静态资源 2.重点来了!!!静态资源请求API的地址由192.168.1.12:8080修改为域名访问 方式 (abc.ab.com:8080) 重启 nginx 即可 其他方案等博主验证完后放上来!! 补充知识:用 nginx 实现反向代理,实现 利用快解析端口 映射 ,在不增加硬件设备,无需公 IP情况下,可以上 ,就可以实现内 穿透,居家、出差在 的员工及分支机构,可以随时随地远程访问到企业内 对应的服务,访问公司OA、管家婆、FTP、web、CRM、ERP系统进行远程办公。自己搭建服务器,让 访问内 ,如果本地应用项目在内 访问时是带上路径名的,如内 访问http://192.168.6.55:9090/erp/,则 映射 访问也要对应带上路径名“http://域名: 端口/erp/”。一步 映射 设置,将内 地址转换成域名让 访问。 本例子中是: proxy_set_header Host ‘test.picclife.cn:8888’;‘此处写入内层 nginx 监听的域名加端口’;最重要的部分 (设置 层的 nginx 的。-> nginx 刷新配置重启。(2)挂载信息查看 -->挂载目录查看,/etc/ http://www.siyuanblog.com/?p=115318 !!! frp 内 映射 到公 机器 映射 到公 机器上 服务端是指能提供公 IP的服务器,客户端C需要将端口Port_c 映射 到公 服务器S的端口Port_s上,通过访问公 服务器S的端口Port_s,就可以访问内 客户端C的Port_c端口了 nginx 动态代理 http 包含一到多个serv... 带着疑问,我们来探讨解决这些问题吧???? 1.如何部署项目到 ? 首先,如果一个项目要部署到 ,那么必须把项目部署到一台放置 的服务器。也就是其它 部的电脑(非局域 )可以通过域名或者ip去访问(一般不用ip,容... 为了快速搭建,此处的websvr采用express的脚手架express-generator安装: #安装express-generator: $ npm install express-gener