10分钟搭建属于自己的ngork服务器,实现内网穿透
来源:互联网 发布:企业优化方案 编辑:程序博客网 时间:2024/05/16 10:36
10分钟搭建属于自己的ngork服务器,实现内网穿透
1、什么是ngrok
ngrok 是一个使用go语言编写的反向代理软件,通过在公共的端点和本地运行的 Web 服务器之间建立一个安全的通道。
百度百科介绍
可以去官方网站瞅瞅下载一个ngrok客户端测试下
使用官方的缺点:
1、速度比较慢
2、经常会连不上
3、网络不稳定经常会断开
2、国人搭建的ngrok
1、Ngrok国内免费服务器——糖果科技
2、http://www.ittun.com
3、Sunny-Ngrok内网转发
4、https://natapp.cn
5、http://ngrok.2bdata.com
6、FRP内网穿透工具 (如果以上的ngrok不能使用推荐自己使用frp搭建、配置比较ngrok简单还稳定)
如果你有推荐欢迎留言上墙
3、自己搭建
准备工作
1、一台拥有公网ip的服务器或者vps
2、把主域名解析到服务器上
比如:ngrok.javen.com
软件下载地址:
go的下载地址:http://www.golangtc.com/download(需要使用1.4.2)
git的下载地址:http://git-scm.com/downloads
绝对下载地址:https://www.kernel.org/pub/software/scm/git/git-2.9.3.tar.gz
ngrok克隆地址:https://github.com/inconshreveable/ngrok.git
详细的操作步骤可以参考以下几篇文章
http://www.sunnyos.com/article-show-48.html
http://www.cnblogs.com/pwenlee/p/5302880.html
http://blog.csdn.net/u013216667/article/details/50782084
4、使用开源的脚本安装环境以及编译客户端
https://github.com/sunnyos/ngrok
以上脚本执行就要输入域名,其他操作也需要再次输入域名
修改之后的版本
#!/bin/bash# -*- coding: UTF-8 -*-##############################################作者网名:Javen#修改:https://github.com/sunnyos/ngrok ############################################### 获取当前脚本执行路径SELFPATH=$(cd "$(dirname "$0")"; pwd)GOOS=`go env | grep GOOS | awk -F\" '{print $2}'`GOARCH=`go env | grep GOARCH | awk -F\" '{print $2}'`echo '请输入一个域名'read DOMAINinstall_yilai(){ 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++ unzip}# 安装gitinstall_git(){ unstall_git if [ ! -f $SELFPATH/git-2.9.3.tar.gz ];then wget https://www.kernel.org/pub/software/scm/git/git-2.9.3.tar.gz fi tar zxvf git-2.9.3.tar.gz cd git-2.9.3 ./configure --prefix=/usr/local/git make make install ln -s /usr/local/git/bin/* /usr/bin/ rm -rf $SELFPATH/git-2.9.3}# 卸载gitunstall_git(){ rm -rf /usr/local/git rm -rf /usr/local/git/bin/git rm -rf /usr/local/git/bin/git-cvsserver rm -rf /usr/local/git/bin/gitk rm -rf /usr/local/git/bin/git-receive-pack rm -rf /usr/local/git/bin/git-shell rm -rf /usr/local/git/bin/git-upload-archive rm -rf /usr/local/git/bin/git-upload-pack}# 安装goinstall_go(){ cd $SELFPATH uninstall_go # 动态链接库,用于下面的判断条件生效 ldconfig # 判断操作系统位数下载不同的安装包 if [ $(getconf WORD_BIT) = '32' ] && [ $(getconf LONG_BIT) = '64' ];then # 判断文件是否已经存在 if [ ! -f $SELFPATH/go1.4.2.linux-amd64.tar.gz ];then wget http://www.golangtc.com/static/go/1.4.2/go1.4.2.linux-amd64.tar.gz fi tar zxvf go1.4.2.linux-amd64.tar.gz else if [ ! -f $SELFPATH/go1.4.2.linux-386.tar.gz ];then wget http://www.golangtc.com/static/go/1.4.2/go1.4.2.linux-386.tar.gz fi tar zxvf go1.4.2.linux-386.tar.gz fi mv go /usr/local/ ln -s /usr/local/go/bin/* /usr/bin/}# 卸载gouninstall_go(){ rm -rf /usr/local/go rm -rf /usr/bin/go rm -rf /usr/bin/godoc rm -rf /usr/bin/gofmt}# 安装ngrokinstall_ngrok(){ uninstall_ngrok cd /usr/local if [ ! -f /usr/local/ngrok.zip ];then cd /usr/local/ wget http://www.sunnyos.com/ngrok.zip fi unzip ngrok.zip export GOPATH=/usr/local/ngrok/ export NGROK_DOMAIN=$DOMAIN cd ngrok 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 cp rootCA.pem assets/client/tls/ngrokroot.crt cp server.crt assets/server/tls/snakeoil.crt cp server.key assets/server/tls/snakeoil.key # 替换下载源地址 sed -i 's#code.google.com/p/log4go#github.com/keepeye/log4go#' /usr/local/ngrok/src/ngrok/log/logger.go cd /usr/local/go/src GOOS=$GOOS GOARCH=$GOARCH ./make.bash cd /usr/local/ngrok GOOS=$GOOS GOARCH=$GOARCH make release-server /usr/local/ngrok/bin/ngrokd -domain=$NGROK_DOMAIN -httpAddr=":80"}# 卸载ngrokuninstall_ngrok(){ rm -rf /usr/local/ngrok}# 编译客户端compile_client(){ cd /usr/local/go/src GOOS=$1 GOARCH=$2 ./make.bash cd /usr/local/ngrok/ GOOS=$1 GOARCH=$2 make release-client}# 生成客户端client(){ echo "1、Linux 32位" echo "2、Linux 64位" echo "3、Windows 32位" echo "4、Windows 64位" echo "5、Mac OS 32位" echo "6、Mac OS 64位" echo "7、Linux ARM" read num case "$num" in [1] ) compile_client linux 386 ;; [2] ) compile_client linux amd64 ;; [3] ) compile_client windows 386 ;; [4] ) compile_client windows amd64 ;; [5] ) compile_client darwin 386 ;; [6] ) compile_client darwin amd64 ;; [7] ) compile_client linux arm ;; *) echo "选择错误,退出";; esac}echo "请输入下面数字进行选择"echo "#############################################"echo "#作者网名:Javen"echo "#############################################"echo "------------------------"echo "1、全新安装"echo "2、安装依赖"echo "3、安装git"echo "4、安装go环境"echo "5、安装ngrok"echo "6、生成客户端"echo "7、卸载"echo "8、启动服务"echo "9、查看配置文件"echo "------------------------"read numcase "$num" in [1] ) install_yilai install_git install_go install_ngrok ;; [2] ) install_yilai ;; [3] ) install_git ;; [4] ) install_go ;; [5] ) install_ngrok ;; [6] ) client ;; [7] ) unstall_git uninstall_go uninstall_ngrok ;; [8] ) echo "启动端口" read port /usr/local/ngrok/bin/ngrokd -domain=$DOMAIN -httpAddr=":$port" ;; [9] ) echo "#############################################" echo "#作者网名:Javen" echo "#创建ngrok.cfg文件并添加以下内容" echo server_addr: '"'$DOMAIN:4443'"' echo "trust_host_root_certs: false" echo "#############################################" echo "#############################################" echo "#Window启动脚本" echo "ngrok -config=ngrok.cfg -subdomain=你域名的前缀 本地映射的端口号" echo "ngrok -config=ngrok.cfg -subdomain=javen 80" echo "#############################################" echo "#############################################" echo "#Linux Mac 启动脚本" echo "./ngrok -config=./ngrok.cfg -subdomain=你域名的前缀 本地映射的端口号" echo "./ngrok -config=./ngrok.cfg -subdomain=javen 80" echo "#Linux Mac 后台启动脚本" echo "setsid ./ngrok -config=./ngrok.cfg -subdomain=javen 80" echo "#############################################" ;; *) echo "";;esac
4.1 给脚本执行权限
chmod +x ngrok.sh
4.2 执行脚本
./ngrok.sh
再输入1进行安装,安装完成会启动服务默认是在80端口
/usr/local/ngrok/bin/ngrokd -domain=$NGROK_DOMAIN -httpAddr=":80"
如下图
4.3 生成客户端
生成客户端的目录在
/usr/local/ngrok/bin/
Mac 64位 darwin_amd64
Linux 64位 ngrok
windows 64位 windows_amd64
5、配置客户端测试
使用scp下载文件到本地
my_ngrok
,以Mac为例
scp root@服务器IP:/usr/local/ngrok/bin/darwin_amd64/ngrok /Users/Javen/Documents/dev/java/ngrok/my_ngrok
下载完成之后并在文件夹中创建ngrok.cfg
文件并添加以下内容
server_addr: "你的域名:4443"trust_host_root_certs: false
Window启动脚本
ngrok -config=ngrok.cfg -subdomain=你域名的前缀 本地映射的端口号ngrok -config=ngrok.cfg -subdomain=javen 80
Mac Linux启动脚本
./ngrok -config=./ngrok.cfg -subdomain=test 8080
推荐阅读
Android依赖管理与私服搭建
Android版-支付宝APP支付
Android版-微信APP支付
支付宝Wap支付你了解多少?
一张二维码集成微信、支付宝支付
安利时间:
JPay是对微信App支付、支付宝App支付的二次封装,对外提供一个相对简单的接口以及支付结果的回调
极速开发微信公众号是对微信公众平台接口的二次封装。包括开发者模式、事件回调监听、微信模板消息、微信客服消息、自定义菜单、微信支付、素材管理等
如有疑问欢迎留言
- 10分钟搭建属于自己的ngork服务器,实现内网穿透
- 一分钟实现内网穿透(ngrok服务器搭建)
- 一分钟实现内网穿透(ngrok服务器搭建)
- 一分钟快速搭建属于自己的服务器
- CentOs之搭建自己的内网穿透服务器(Ngrok)-yellowcong
- 自己搭建服务器通过外网访问内网的方法(端口映射、内网穿透、重定向等)
- 搭建自己的ngrok服务(内网穿透 使用简单)
- 自己搭建ngrok服务器实现树莓派内网穿透
- 利用ngork实现内网实现内网转发
- 手机+frp内网穿透搭建随身携带的服务器
- 内网穿透-搭建ngrok服务器
- 内网穿透-搭建ngrok服务器
- 内网穿透(NAT穿透)之ngrok搭建服务器
- 如何搭建属于自己的git服务器
- 搭建 ngrok 实现内网穿透
- 简单实现服务器tcp内网穿透
- 20分钟教你搭建属于自己的博客
- ngrok内网穿透,ngrok服务器搭建,实现外网访问内网服务;树莓派外网访问内网的web服务及ssh外网登录
- linux查看文本命令(cat、tac、more、less、head、tail)
- 开源灰度管理系统
- 霍纳法则
- JavaSE 16 反射
- 20分钟学会正则表达式
- 10分钟搭建属于自己的ngork服务器,实现内网穿透
- [踏石留印之爬虫] 各种爬虫收集
- java -- 数组(Arrary)
- Reverse Integer算法
- maven安装及本地私有仓库搭建
- Leetcode-标签为Tree 501. Find Mode in Binary Search Tree
- vue-2.x webpack 安装vue-router 配置路由
- Android手机同时使用Wi-Fi和数据流量
- 使用Setup Factory 给应用程序打包