参考:

1、https://www.sunnyos.com/article-show-48.html

2、https://github.com/inconshreveable/ngrok/blob/master/docs/DEVELOPMENT.md

准备工作:

1、一台拥有公网ip的服务器或者vps

2、把需要做的主域名解析到服务器上面

软件下载地址:

go的下载地址:http://www.golangtc.com/download

git的下载地址:http://git-scm.com/downloads 各版本下载地址:https://www.kernel.org/pub/software/scm/git/

ngrok克隆地址:https://github.com/inconshreveable/ngrok.git

Nginx安装地址参考:http://www.jb51.cc/article/p-mjflmeln-bay.html

准备映射的域名:guaiwolo.win


一、DNS解析:

二、安装Git

1、安装git,我安装的是2.6版本,防止会出现另一个错误,安装git所需要的依赖包

yum -y install zlib-devel openssl-devel perl hg cpio expat-devel gettext-devel curl curl-devel perl-ExtUtils-MakeMaker hg wget gcc gcc-c++
2、 下载git
wget https://www.kernel.org/pub/software/scm/git/git-2.6.0.tar.gz
3、 解压git

tar zxvf git-2.6.0.tar.gz
4、编译git

cd git-2.6.0
./configure --prefix=/usr/local/git
make
make install
5、创建git的软连

ln -s /usr/local/git/bin/* /usr/bin/
三、 安装go环境

准备go环境,我的系统是64位的centos所以我下载amd64的包

1、到官网(https://www.golangtc.com/download)下载go软件包

wget http://www.golangtc.com/static/go/1.9.2/go1.9.2.linux-amd64.tar.gz
2、解压移到指定位置

tar -zxvf go1.9.2.linux-amd64.tar.gz
mv go /usr/local/
3、 go的命令需要做软连接到/usr/bin

ln -s /usr/local/go/bin/* /usr/bin/

4、检查是否安装正确


四、 编译ngrok

1、下载ngrok,设置域名,ngrok地址

cd /usr/local/
git clone https://github.com/inconshreveable/ngrok.git
export GOPATH=/usr/local/ngrok/
export NGROK_DOMAIN="ngrok.guaiwolo.win"
cd ngrok
2、为域名生成证书

openssl genrsa -out rootCA.key 2048
openssl req -x509 -new -nodes -key rootCA.key -subj "/CN=$NGROK_DOMAIN" -days 5000 -out rootCA.pem
openssl genrsa -out server.key 2048
openssl req -new -key server.key -subj "/CN=$NGROK_DOMAIN" -out server.csr
openssl x509 -req -in server.csr -CA rootCA.pem -CAkey rootCA.key -CAcreateserial -out server.crt -days 5000
3、在软件源代码目录下面会生成一些证书文件,我们需要把这些文件拷贝到指定位置

cp rootCA.pem assets/client/tls/ngrokroot.crt
cp server.crt assets/server/tls/snakeoil.crt
cp server.key assets/server/tls/snakeoil.key
4、如果是在国内的服务器需要改下面文件,香港或者国外的服务器不需要,跳过这一步

vim /usr/local/ngrok/src/ngrok/log/logger.go
log "github.com/keepeye/log4go"
5、编译服务器

指定编译环境变量,如何确认GOOS和GOARCH,可以通过go env来查看

cd /usr/local/ngrok/
GOOS=linux GOARCH=amd64 make release-server
6、编译客户端

mac os 64位操作系统

cd /usr/local/ngrok/
GOOS=darwin GOARCH=amd64 make release-client
windows 32位系统

cd /usr/local/ngrok/
GOOS=windows GOARCH=386 make release-client
其他的linux系统编译根据上面的自己推
查看编译出来的客户端
/usr/local/ngrok/bin
将此目录下的客户端(ngrok或ngrok.exe)拷贝出来即可

7、服务端启动
这里需要使用 8080端口,80端口留给后面Nginx使用
cd /usr/local/ngrok/bin
./ngrokd -domain guaiwolo.win -httpAddr :8080
出现如下所示即表示正确:
8、 客户端使用
客户端配置文件 ngrok.yml
server_addr: ngrok.guaiwolo.win:4443
tunnels:
  test:
    proto:
      http: 12345
启动(不通系统稍微有点不一样):
./ngrok -config=ngrok.yml -log=ngrok.log start test
出现如下所示表示连接上了服务端,此时可以使用红线划掉的域名访问本地服务

如果连接不上,尝试执行下面语句,关闭防火墙
systemctl stop firewalld
五、安装Nginx,配置反向代理
Nginx安装使用看前面文章: http://www.jb51.cc/article/p-mjflmeln-bay.html
下面贴一下Nginx配置
在域名一的dns中需要设置CNAME域名至 ngrok.guaiwolo.win,启动Nginx后,就可以使用域名一访问本地端口了

CentOS搭建Ngrok,配置自定义域名的更多相关文章

  1. PhoneGap / iOS上的SQLite数据库 – 超过5mb可能

    我误解了什么吗?Phonegap中的sqlitedbs真的有5mb的限制吗?我正在使用Phonegap1.2和iOS5.解决方法您可以使用带有phonegap插件的原生sqliteDB,您将没有任何限制.在iOS5.1中,Websql被认为是可以随时删除的临时数据…

  2. ios – 使用带有NodeJs HTTPS的certificates.cer

    我为IOS推送通知生成了一个.cer文件,我希望将它与NodeJSHTTPS模块一起使用.我发现HTTPS模块的唯一例子是使用.pem和.sfx文件,而不是.cer:有解决方案吗解决方法.cer文件可以使用两种不同的格式进行编码:PEM和DER.如果您的文件使用PEM格式编码,您可以像使用任何其他.pem文件一样使用它(有关详细信息,请参见Node.jsdocumentation):如果您的文件使

  3. ios – CFNetwork内部错误:URLConnectionLoader.cpp:289

    当我在一段时间后打开我的应用程序时,我收到了日志:440:CFNetworkinternalerror(0xc01a:/buildroot/Library/Caches/com.apple.xbs/Sources/CFNetwork/CFNetwork-758.4.3/Loading/URLConnectionLoader.cpp:289)它从未出现在过去.我的项目使用网络库AFNetworkin

  4. ios – 使用大写符号在字符串swift中获取URL的正则表达式

    我尝试在文本中获取URL.所以,在此之前,我使用了这样一个表达式:但是当用户输入带有大写符号的URL时(例如Http://Google.com,它与它不匹配)我遇到了问题.我试过了:但什么都没发生.解决方法您可以使用正则表达式中的i内联标志关闭区分大小写,有关可用正则表达式功能的详细信息,请参阅FoundationFrameworkReference.(?ismwx-ismwx)Flagsetti

  5. ios – xcode在更新可可豆荚后出现体系结构错误的重复符号

    编辑:执行下面显示的解决方案后,我的项目只编译iPadAir,我不能再存档,我仍然得到相同的错误…

  6. ios – UIWebView中的WebSQL / SQLite数据库的最大大小(phonegap)

    我知道一般来说,Web应用程序的本地存储空间有5MB的限制.本地网页浏览应用程式是否也有这个限制?

  7. ios – 我可以使用自签名SSL证书服务器在空中部署企业应用吗?

    iOS7.1之后,如果我们要通过空中部署我们的Enterprise应用程序,则manifest.plist文件的URL必须是HTTPS.例如:在我的服务器中,我使用自签名SSL证书.当我点击iPhone上的URL时,它表示无法连接到并记录典型的所以,我想知道我是否可以使用自签名SSL证书?如果可以,我如何解决我遇到的问题的问题?

  8. ios – 如何使用YouTube API V3?

    我想知道如何在iOS应用中使用新的YouTubeAPI(第3版),但我不知道如何做.我做了很多关于它的研究,但是我发现所有的例子和老API的代码,所以它们是无效的.现在,我明白了,使用新的API你必须在Google开发者控制台中创建一个项目…使用API2很简单它…

  9. 如何在iOS Couchbase Mobile上使用HTTPS复制?

    我正在使用iOSCouchbaseMobile在iPad上使用一个couchdb服务器,它使用复制与服务器进行同步.cloudant使用HTTPS,当我尝试在iPad上复制时,我只是被错误地垃圾邮件发送.这是一个已知的问题,如thisFAQarticle所示.它建议使用1.0.2修复问题,但是如何知道我是否在ErlangR14上运行?

  10. ios – 有没有人使用UIWebView找到一种使用无效服务器证书加载HTTPS页面的方法?

    如果用户尝试在MobileSafari中加载https网页,并且服务器的证书验证检查失败(已过期,撤销,自签名等),则显示用户将显示一条警告消息,并询问他们是否要继续或不.类似地,NSURLConnection提供了实施者首先决定如何检查证书的能力,然后在失败的情况下决定如何执行,因此在这种情况下也可以向用户显示警告并为他们提供继续加载的机会页面还是不.但是,当在UIWebView中加载https

随机推荐

  1. 在airgapped(离线)CentOS 6系统上安装yum软件包

    我有一个CentOS6系统,出于安全考虑,它已经被空气泄漏.它可能从未连接到互联网,如果有,它很长时间没有更新.我想将所有.rpm软件包放在一个驱动器上,这样它们就可以脱机安装而无需查询互联网.但是,我在测试VM上遇到的问题是,即使指定了本地路径,yum仍然会挂起并尝试从在线存储库进行更新.另外,有没有办法使用yum-utils/yumdownloader轻松获取该包的所有依赖项和所有依赖项?目前

  2. centos – 命名在日志旋转后停止记录到rsyslog

    CentOS6.2,绑定9.7.3,rsyslog4.6.2我最近设置了一个服务器,我注意到在日志轮换后,named已停止记录到/var/log/messages.我认为这很奇怪,因为所有日志记录都是通过rsyslog进行的,并且named不会直接写入日志文件.这更奇怪,因为我在更新区域文件后命名了HUPed,但它仍然没有记录.在我停止并重新启动命名后,记录恢复.这里发生了什么?

  3. centos – 显示错误的磁盘大小

    对于其中一个磁盘,Df-h在我的服务器上显示错误的空白区域:Cpanel表明它只有34GB免费,但还有更多.几分钟前,我删除了超过80GB的日志文件.所以,我确信它完全错了.fdisk-l/dev/sda2也显示错误:如果没有格式化,我该怎么做才能解决这个问题?并且打开文件描述符就是它需要使用才能做到这一点.所以…使用“lsof”并查找已删除的文件.重新启动写入日志文件的服务,你很可能会看到空间可用.

  4. 如何在centos 6.9上安装docker-ce 17?

    我目前正在尝试在centOS6.9服务器上安装docker-ce17,但是,当运行yuminstalldocker-ce时,我收到以下错误:如果我用跳过的标志运行它我仍然得到相同的消息,有没有人知道这方面的方法?

  5. centos – 闲置工作站的异常负载平均值

    我有一个新的工作站,具有不寻常的高负载平均值.机器规格是:>至强cpu>256GB的RAM>4x512GBSSD连接到LSI2108RAID控制器我从livecd安装了CentOS6.564位,配置了分区,网络,用户/组,并安装了一些软件,如开发工具和MATLAB.在启动几分钟后,工作站负载平均值的值介于0.5到0.9之间.但它没有做任何事情.因此我无法理解为什么负载平均值如此之高.你能帮我诊断一下这个问题吗?

  6. centos – Cryptsetup luks – 检查内核是否支持aes-xts-plain64密码

    我在CentOS5上使用cryptsetupluks加密加密了一堆硬盘.一切都很好,直到我将系统升级到CentOS6.现在我再也无法安装磁盘了.使用我的关键短语装载:我收到此错误:在/var/log/messages中:有关如何装载的任何想法?找到解决方案问题是驱动器使用大约512个字符长的交互式关键短语加密.出于某种原因,CentOS6中的新内核模块在由旧版本创建时无法正确读取512个字符的加密密钥.似乎只会影响内核或cryptsetup的不同版本,因为在同一系统上创建和打开时,512字符的密钥将起作用

  7. centos – 大量ssh登录尝试

    22个我今天登录CentOS盒找到以下内容这是过去3天内的11次登录尝试.WTF?请注意,这是我从我的提供商处获得的全新IP,该盒子是全新的.我还没有发布任何关于此框的内容.为什么我会进行如此大量的登录尝试?是某种IP/端口扫描?基本上有4名匪徒,其中2名来自中国,1名来自香港,1名来自Verizon.这只发生在SSH上.HTTP上没有问题.我应该将罪魁祸首子网路由吗?你们有什么建议?

  8. centos – kswap使用100%的CPU,即使有100GB的RAM也可用

    >Linux内核是否应该足够智能,只需从内存中清除旧缓存页而不是启动kswap?

  9. centos – Azure将VM从A2 / 3调整为DS2 v2

    我正在尝试调整前一段时间创建的几个AzureVM,从基本的A3和标准A3到标准的DS2v2.我似乎没有能力调整到这个大小的VM.必须从头开始重建服务器会有点痛苦.如果它有所不同我在VM中运行CentOS,每个都有一个带有应用程序和操作系统的磁盘.任何人都可以告诉我是否可以在不删除磁盘的情况下删除VM,创建新VM然后将磁盘附加到新VM?

  10. centos – 广泛使用RAM时服务器计算速度减慢

    我在非常具体的情况下遇到服务器速度下降的问题.事实是:>1)我使用计算应用WRF>2)我使用双XeonE5-2620v3和128GBRAM(NUMA架构–可能与问题有关!

返回
顶部