https://ubock.com/article/31

https://www.jianshu.com/p/91f01e30a9b0

uname -m
armv7l

getconf WORD_BIT
32



https://storage.googleapis.com/golang/go1.9.2.linux-armv6l.tar.gz

tar -C /usr/local/ -xzf go***.gz

export PATH=$PATH: /usr/local/go/bin

go version查看go环境是否配置正确



需要设置ngrok服务的域名和子域名都要添加解析,例如设置后面的 tun.sfantree.com ,那么 tun *.tun 的解析均需要添加A记录


http://www.vuln.cn/8634
客户端:
./ngrok -config=ngrok.cfg start ssh
如果要同时开始80 和22端口转发 就start ssh http即可

mapping values are not allowed here
出现这个错误的是因为yaml格式不正确,谷歌定义的yaml格式太严格了,每个冒号后面都必须带有空格


服务端:

ngrokd -tlsKey="snakeoil.key" -tlsCrt="snakeoil.crt" -domain="ngrok.ele.com" -httpAddr=":801" -httpsAddr=":802" //推荐使用不会冲突的9021,9022

访问形式为xxx.ngrok.ele.com:801
后台执行nohup xxx &

为了安全许多服务器会将端口屏蔽,我使用的是ECS服务器,默认801,802都是关闭的,需要手动开启,在阿里云的后台添加开放的端口就可了
http使用801端口,https使用802端口
供客户端连接的管道端口为4443端口

由于服务器上同时运行着IIS,故服务端Ngrok启动时无法使用80端口,所以在上面,我使用了801作为Ngrok服务器的http端口

httpAddr、httpsAddr 分别 用来转发 http、https 服务的端口,ngrokd 还会开一个 4443 端口用来跟客户端通讯,注意设置防火墙使端口开放。


./ngrokd -domain="ngrok.ele.com" -httpAddr=":801" -httpsAddr=":802"
[14:17:55 UTC 2018/01/03] [INFO] (ngrok/log.(*PrefixLogger).Info:83) [metrics] Reporting every 30 seconds
[14:17:55 UTC 2018/01/03] [INFO] (ngrok/log.(*PrefixLogger).Info:83) [registry] [tun] No affinity cache specified
[14:17:55 UTC 2018/01/03] [INFO] (ngrok/log.Info:112) Listening for public http connections on [::]:801
[14:17:55 UTC 2018/01/03] [INFO] (ngrok/log.Info:112) Listening for public https connections on [::]:802
[14:17:55 UTC 2018/01/03] [INFO] (ngrok/log.Info:112) Listening for control and proxy connections on [::]:4443



https://www.sfantree.com/ngrok-raspberry-cross-nat

如果不想买SSL证书,我们需要生成自己的自签名证书,并编译一个携带该证书的ngrok客户端。






openssl genrsa -out rootCA.key 2048
openssl req -new -x509 -nodes -key rootCA.key -days 10000 -subj "/CN=ngrok.ele.com" -out rootCA.pem

openssl genrsa -out server.key 2048
openssl req -new -key server.key -subj "/CN=ngrok.ele.com" -out server.csr

openssl x509 -req -in server.csr -CA rootCA.pem -CAkey rootCA.key -CAcreateserial -days 10000 -out server.crt

assets/client/tls和assets/server/tls下分别存放着用于ngrok和ngrokd的默认证书文件,我们需要将它们替换成我们自己生成的

将证书文件复制到指定位置

cp rootCA.pem assets/client/tls/ngrokroot.crt -icp server.crt assets/server/tls/ snakeoil .crt -icp server.key assets/server/tls/ .key -i

编译服务器端与客户端
export GOPATH=/home/ngrok //clone的代码目录
服务器端为linux-x86-64
export GOOS=linuxexport GOARCH=386//应该是amd64make release-server

ls bin/linux_amd64/
ngrokd
需要运行在公网服务器上。



可以通过改变 GOOS GOARCH 来获取各个平台的客户端与服务端, 可以指定为 windows linux freebsd darwin (Mac OS X 10.5 or 10.6)

可以指定为 amd64 (64-bit x86) 、 386 (32-bit x86) 、 和 arm (32-bit ARM),可见Go语言的跨平台能力相当彪悍。

树莓派为linux-arm架构,重新声明 go env 里的变量
export GOOS=linux
export GOARCH=arm
make release-client

ngrok是一个反向代理,通过在公共的端点和本地运行的Web服务器之间建立一个安全的通道

现在假定我的本地已成功部署了一个网站,访问地址为127.0.0.1,想内网穿透后被公网上的用户访问,一般步骤如下:

客户端放 树莓派上, 如果连接成功,会提示如下信息:
Tunnel Status变为online

客户端就是您的web应用程序所运行的主机

#指定子域名为 ngrok ( (ngrok是你自定义的域名前缀) ),采用http协议和使用80端口(需要转发的端口)./ngrok -subdomain rpi -proto=http -config=ngrok.cfg 80

这个子域名是任意写的
会解析成rpi.ngrok.ele.com
如果写成demo,则解析成demo.ngrok.ele.com


创建一个配置文件ngrok.cfg,内容如下:
server_addr: "ngrok.ele.com:4443" 注意冒号后面有空格
trust_host_root_certs: false
就用这个配置,不要用start ssh http那种了。
执行ngrok:
$ ngrok -subdomain rpi -config=ngrok.cfg 80
这样应该访问的是 rpi.ngrok.ele.com

http://blog.csdn.net/zhangguo5/article/details/77848658?utm_source=5ibc.net&utm_medium=referral

由于go语言的特性,在编译时直接生成机器码,所以在运行过程中并不需要go的环境


修改server监听端口了。将-tunnelAddr由4443改为443
-tunnelAddr=":443"

systemctl stop firewalld


http://192.168.99.103/

配置文件示例
https://blog.jsjs.org/?p=383



ssh

./ngrok -config=ngrok.cfg start ssh

树莓派 centos 内网 花生壳 ngrok 内网穿透的更多相关文章

  1. 树莓派2 GPIO 和 SwiftyGPIO

    自从苹果去年开源Swift编程语言以来,热心人们已经创建了Ubuntu安装包,移植到ARM设备上如RaspberryPi2,创建了网页开发框架,而现在UmbertoRaimondi发布了SwiftyGPIO,一个Swift库,能够和ARM设备上的GPIO接口进行交互。SwiftyGPIOREADME详细解释了如何使用模块。这次我们在RaspBerryPi2上用Swift语言再实现一次。SwiftGPIO为比较流行的板子提供了封装好的GPIO。setLedColor方法通过一个元组和一个数组[GPIO]把一

  2. android – 使用Dart进行远程调试

    这个问题的动机是,我花了大约两个小时来找出我做错了什么.如何在我的Android手机或模拟器上远程调试我的Dart-Webapp?

  3. android – Google Cloud Messaging无法在公司网络上使用4.1.2设备

    我已经实现了一个简单的GCM客户端和服务器.客户端使用currentGCMclientAPIs(而不是deprecatedhelperlibrary).服务器(C#和.NET)遵循相应的serverguidelines(使用HTTP).我的服务器在公司域内的计算机上运行,因此我将客户端设备连接到公司网络内的Wi-Fi接入点,但可以访问Internet.简而言之,我的问题是4.3手机上收到通知,但连

  4. 如何杀死Android中未运行的进程

    ),试着让你的解决方案更灵活,比如首先检查端口范围然后使用它们是否可用.祝好运

  5. android – 在Internet上发布我的RESTful Web服务

    什么是最好的方法?例如,我可以使用AmazonWebServices或ApacheHTTPServer吗?

  6. android – 谷歌GCM推送通知服务器的IP范围?

    想知道有没有人在这里碰巧知道google的gcm服务器的ip范围?

  7. CentOS 8.2服务器上安装最新版Node.js的方法

    这篇文章主要介绍了CentOS 8.2服务器上安装最新版Node.js的方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

  8. centos+php+coreseek+sphinx+mysql之一coreseek安装篇

    这篇文章主要介绍了centos+php+coreseek+sphinx+mysql之一coreseek安装篇的相关资料,非常不错具有参考借鉴价值,需要的朋友可以参考下

  9. Centos7 中 Node.js安装简单方法

    这篇文章主要介绍了Centos7 中 Node.js安装简单方法,非常不错具有一定的参考借鉴价值,需要的朋友可以参考下

  10. nodejs脚本centos开机启动实操方法

    在本篇文章里小编给大家整理的是关于nodejs脚本centos开机启动实操方法,有兴趣的朋友们参考下。

随机推荐

  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架构–可能与问题有关!

返回
顶部