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

相关文章

一份LLM资源清单围观技术大佬的日常;手把手教你在美国搭建「百万卡」AI数据中心;为啥大模型做不好简单的数学计算? | ShowMeAI日报

👀日报&周刊合集 | 🎡ShowMeAI官网 | 🧡 点赞关注评论拜托啦! 1. 为啥大模型做不好简单的数学计算?从大模型高考数学成绩不及格说起 司南评测体系 OpenCompass 选取 7 个大模型 (6 个开源模型+ GPT-4o),组织参与了 2024 年高考「新课标I卷」的语文、数学、英语考试,然后由经验丰富的判卷老师评判得分。 结果如上图所

mysql索引四(组合索引)

单列索引,即一个索引只包含单个列,一个表可以有多个单列索引,但这不是组合索引;组合索引,即一个索引包含多个列。 因为有事,下面内容全部转自:https://www.cnblogs.com/farmer-cabbage/p/5793589.html 为了形象地对比单列索引和组合索引,为表添加多个字段:    CREATE TABLE mytable( ID INT NOT NULL, use

mysql索引三(全文索引)

前面分别介绍了mysql索引一(普通索引)、mysql索引二(唯一索引)。 本文学习mysql全文索引。 全文索引(也称全文检索)是目前搜索引擎使用的一种关键技术。它能够利用【分词技术】等多种算法智能分析出文本文字中关键词的频率和重要性,然后按照一定的算法规则智能地筛选出我们想要的搜索结果。 在MySql中,创建全文索引相对比较简单。例如:我们有一个文章表(article),其中有主键ID(

mysql索引二(唯一索引)

前文中介绍了MySQL中普通索引用法,和没有索引的区别。mysql索引一(普通索引) 下面学习一下唯一索引。 创建唯一索引的目的不是为了提高访问速度,而只是为了避免数据出现重复。唯一索引可以有多个但索引列的值必须唯一,索引列的值允许有空值。如果能确定某个数据列将只包含彼此各不相同的值,在为这个数据列创建索引的时候就应该使用关键字UNIQUE,把它定义为一个唯一索引。 添加数据库唯一索引的几种

mysql索引一(普通索引)

mysql的索引分为两大类,聚簇索引、非聚簇索引。聚簇索引是按照数据存放的物理位置为顺序的,而非聚簇索引则不同。聚簇索引能够提高多行检索的速度、非聚簇索引则对单行检索的速度很快。         在这两大类的索引类型下,还可以降索引分为4个小类型:         1,普通索引:最基本的索引,没有任何限制,是我们经常使用到的索引。         2,唯一索引:与普通索引

【服务器运维】MySQL数据存储至数据盘

查看磁盘及分区 [root@MySQL tmp]# fdisk -lDisk /dev/sda: 21.5 GB, 21474836480 bytes255 heads, 63 sectors/track, 2610 cylindersUnits = cylinders of 16065 * 512 = 8225280 bytesSector size (logical/physical)

【服务器运维】CentOS7 minimal 离线安装 gcc perl vmware-tools

0. 本机在有网的情况下,下载CentOS镜像 https://www.centos.org/download/ 1. 取出rpm 有的情况可能不需要net-tools,但是如果出现跟ifconfig相关的错误,就把它安装上。另外如果不想升级内核版本的话,就找对应内核版本的rpm版本安装 perl-Time-Local-1.2300-2.el7.noarch.rpmperl-Tim

Windows/macOS/Linux 安装 Redis 和 Redis Desktop Manager 可视化工具

本文所有安装都在macOS High Sierra 10.13.4进行,Windows安装相对容易些,Linux安装与macOS类似,文中会做区分讲解 1. Redis安装 1.下载Redis https://redis.io/download 把下载的源码更名为redis-4.0.9-source,我喜欢跟maven、Tomcat放在一起,就放到/Users/zhan/Documents

SQL Server中,查询数据库中有多少个表,以及数据库其余类型数据统计查询

sqlserver查询数据库中有多少个表 sql server 数表:select count(1) from sysobjects where xtype='U'数视图:select count(1) from sysobjects where xtype='V'数存储过程select count(1) from sysobjects where xtype='P' SE

SQL Server中,always on服务器的相关操作

在SQL Server中,建立了always on服务,可用于数据库的同步备份,当数据库出现问题后,always on服务会自动切换主从服务器。 例如192.168.1.10为主服务器,12为从服务器,当主服务器出现问题后,always on自动将主服务器切换为12,保证数据库正常访问。 对于always on服务器有如下操作: 1、切换主从服务器:假如需要手动切换主从服务器时(如果两个服务