Centos7自己搭建ngrok内网穿透,访问内网MySQL、Redis、web站点

2024-04-06 06:58

本文主要是介绍Centos7自己搭建ngrok内网穿透,访问内网MySQL、Redis、web站点,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

首先我们需要准备一台云服务器,阿里、华为、腾讯都可以,这几家新用户都可以有很大的折扣,可以低价购进一台云服务器。

  1. 环境准备(这个操作需要在有公网IP的云服务器进行)

安装git

yum install -y git

安装go

# 下载gocd /usr/local
wget https://dl.google.com/go/go1.11.2.linux-amd64.tar.gz# 解压
tar -C /usr/local -xzf go1.11.2.linux-amd64.tar.gz# go命令需要软连接到/usr/bin
ln -s /usr/local/go/bin/* /usr/bin# go语言环境配置
yum install mercurial bzr subversion -y# 新建go目录作为项目目录
mkdir -p $HOME/go# cat方法在尾部最佳配置golang的 GOROOT GOPATH
# 需要注意下方的go路径需要换成自己解压后的路径
cat >>$HOME/.bash_profile<<EOF
export GOROOT=/usr/local/go    
export GOPATH=\$HOME/go
export PATH=\$PATH:\$GOROOT/bin
EOF# 配置生效
source $HOME/.bash_profile# 查看环境变量
go env
  1. Ngrok配置(这个操作需要在有公网IP的云服务器进行)
  1. 下载ngrok
cd /usr/local
git clone https://github.com/inconshreveable/ngrok.git
  1. 配置环境变量
export GOPATH=/usr/local/ngrok/# 下面的配置写自己的域名,不需要前缀,例如:baidu.com
export NGROK_DOMAIN="***.com"
  1. 生成证书
cd ngrokopenssl 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

 

  1. 覆盖原来的证书
cp rootCA.pem assets/client/tls/ngrokroot.crt
cp server.crt assets/server/tls/snakeoil.crt
cp server.key assets/server/tls/snakeoil.key

 

  1. 生成服务端
GOOS=linux GOARCH=amd64 make release-server
# 这里GOOS后面是你的系统windows或linux,我是linux,GOARCH 后面是系统位数64位是amd64,32位是386,这里需要等待好一会儿而且没有进度条~~
# 生成的服务端在/usr/local/ngrok/bin里面
  1. 生成客户端
GOOS=linux GOARCH=amd64 make release-client
#这里GOOS后面是你的系统windows或linux,我是要在Linux上启动客户端,GOARCH 后面是系统位数64位是amd64,32位是386,这里需要等待好一会儿而且没有进度条~~
  1. 启动服务端

A、将ngrokd配置为系统服务

vim /lib/systemd/system/ngrokd.service
[Unit]Description=ngrokd server
After=network.target[Service]Type=simple
ExecStart=/usr/local/bin/ngrokd -domain ngrok.***.com -httpAddr ":801" -httpsAddr ":802" -tunnelAddr ":1443" -log "/var/log/ngrokd.log"
Restart=on-failure[Install]
WantedBy=multi-user.target

B、启动服务

systemctl start ngrokd
systemctl status ngrokd
systemctl enable ngrokd
  1. 启动客户端

登录到内网服务器将编译好的ngrok客户端拷贝到/usr/local/ngrok目录,

  1. 创建ngrok配置文件
vim /usr/local/ngrok/ngrok.yml
server_addr: ***.com:1443 # 这里指定客户端要连接的服务端的域名和端口号,1443是监听的端口,可以在服务端进行更改
trust_host_root_certs: false # 这里指定是否验证服务端的证书,如果是从证书机构获取的证书则可以写为true,如果是自己生成的证书这里写为false
tunnels: # 这个配置项是你要开启的通道的配置ssh: # ssh是这个通道的名称,可以随意命名remote_port: 122 # 该配置项可以申请远程服务器的固定端口,如果不设置该参数,每次在启动客户端的时候服务端都会随机分配一个端口号proto: # 该配置项指明该通道使用哪些协议tcp: 22 # 该配置项指明该通道开启本地tcp协议的22(sshd服务)端口,即将远程的122端口转发到本地22端口mysql:remote_port: 13306proto:tcp: 3306redis:remote_port: 16379proto:tcp: 6379zookeeper:remote_port: 12181proto:tcp: 2181#next:#subdomain: web # 如果是启动http的通道则可以指定该配置项来声明该通道监听的子域名是什么,在访问时应该访问web.ngrok.域名#proto:#http: 80#api:#subdomain: api#proto:#http: 80

 

  1. 启动客户端
vim /lib/systemd/system/ngrok.service
[Unit]Description=ngrok client
After=network.target[Service]Type=simple
ExecStart=/usr/local/bin/ngrok -config "/usr/local/ngrok/ngrok.yml" -log "/var/log/ngrok.log" start-all
Restart=on-failure[Install]
WantedBy=multi-user.target

 

  1. 配置成功

ngrok启动成功

内网的Mysql通过ngrok.***.com:13306这个域名加端口可以在外网访问到了,redis也是如此。

最后附上阿里云的优惠购买地址

https://www.aliyun.com/minisite/goods?userCode=b7rjnvrm

华为云的优惠购买地址

https://reg.huaweicloud.com/registerui/cn/register.html?locale=zh-cn&fromacct=ea777214-758d-4b87-925c-39b724603edd

这篇关于Centos7自己搭建ngrok内网穿透,访问内网MySQL、Redis、web站点的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/879299

相关文章

Springboot中分析SQL性能的两种方式详解

《Springboot中分析SQL性能的两种方式详解》文章介绍了SQL性能分析的两种方式:MyBatis-Plus性能分析插件和p6spy框架,MyBatis-Plus插件配置简单,适用于开发和测试环... 目录SQL性能分析的两种方式:功能介绍实现方式:实现步骤:SQL性能分析的两种方式:功能介绍记录

使用 sql-research-assistant进行 SQL 数据库研究的实战指南(代码实现演示)

《使用sql-research-assistant进行SQL数据库研究的实战指南(代码实现演示)》本文介绍了sql-research-assistant工具,该工具基于LangChain框架,集... 目录技术背景介绍核心原理解析代码实现演示安装和配置项目集成LangSmith 配置(可选)启动服务应用场景

oracle DBMS_SQL.PARSE的使用方法和示例

《oracleDBMS_SQL.PARSE的使用方法和示例》DBMS_SQL是Oracle数据库中的一个强大包,用于动态构建和执行SQL语句,DBMS_SQL.PARSE过程解析SQL语句或PL/S... 目录语法示例注意事项DBMS_SQL 是 oracle 数据库中的一个强大包,它允许动态地构建和执行

SQL 中多表查询的常见连接方式详解

《SQL中多表查询的常见连接方式详解》本文介绍SQL中多表查询的常见连接方式,包括内连接(INNERJOIN)、左连接(LEFTJOIN)、右连接(RIGHTJOIN)、全外连接(FULLOUTER... 目录一、连接类型图表(ASCII 形式)二、前置代码(创建示例表)三、连接方式代码示例1. 内连接(I

redis群集简单部署过程

《redis群集简单部署过程》文章介绍了Redis,一个高性能的键值存储系统,其支持多种数据结构和命令,它还讨论了Redis的服务器端架构、数据存储和获取、协议和命令、高可用性方案、缓存机制以及监控和... 目录Redis介绍1. 基本概念2. 服务器端3. 存储和获取数据4. 协议和命令5. 高可用性6.

在MySQL执行UPDATE语句时遇到的错误1175的解决方案

《在MySQL执行UPDATE语句时遇到的错误1175的解决方案》MySQL安全更新模式(SafeUpdateMode)限制了UPDATE和DELETE操作,要求使用WHERE子句时必须基于主键或索引... mysql 中遇到的 Error Code: 1175 是由于启用了 安全更新模式(Safe Upd

解决JavaWeb-file.isDirectory()遇到的坑问题

《解决JavaWeb-file.isDirectory()遇到的坑问题》JavaWeb开发中,使用`file.isDirectory()`判断路径是否为文件夹时,需要特别注意:该方法只能判断已存在的文... 目录Jahttp://www.chinasem.cnvaWeb-file.isDirectory()遇

JavaWeb-WebSocket浏览器服务器双向通信方式

《JavaWeb-WebSocket浏览器服务器双向通信方式》文章介绍了WebSocket协议的工作原理和应用场景,包括与HTTP的对比,接着,详细介绍了如何在Java中使用WebSocket,包括配... 目录一、概述二、入门2.1 POM依赖2.2 编写配置类2.3 编写WebSocket服务2.4 浏

Redis的数据过期策略和数据淘汰策略

《Redis的数据过期策略和数据淘汰策略》本文主要介绍了Redis的数据过期策略和数据淘汰策略,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一... 目录一、数据过期策略1、惰性删除2、定期删除二、数据淘汰策略1、数据淘汰策略概念2、8种数据淘汰策略

轻松上手MYSQL之JSON函数实现高效数据查询与操作

《轻松上手MYSQL之JSON函数实现高效数据查询与操作》:本文主要介绍轻松上手MYSQL之JSON函数实现高效数据查询与操作的相关资料,MySQL提供了多个JSON函数,用于处理和查询JSON数... 目录一、jsON_EXTRACT 提取指定数据二、JSON_UNQUOTE 取消双引号三、JSON_KE