• 搭建内网穿透工具-ngrok


    前言

    由于某些内部网络的站点需要外部调用或者访问,则需要一个外网能够访问内网的方法,而内网穿透就是这个方法之一。

    准备工作

    1、一个外网能够访问的服务器,比如阿里云、腾讯云、华为云等服务器

    2、一个与该服务器备案的域名

    3、有一些linux配置基础

    使用工具

    1、远程连接工具:可以使用windows自带的ssh,也可以有FinalShell,本次分享使用FinalShell

    安装软件

    1、go环境,下载地址http://www.golangtc.com/download

    2、git环境,下载地址Git - Downloads

    开始编译

    1、下载ngrok源码,GitHub - inconshreveable/ngrok: Introspected tunnels to localhost

    2、安装编译时候的依赖环境

    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++

    3、安装git

    1. #下载
    2. wget https://mirrors.edge.kernel.org/pub/software/scm/git/git-2.18.5.tar.gz
    3. #解压
    4. tar zxvf git-2.18.5.tar.gz
    5. #编译
    6. cd git-2.18.5
    7. ./configure --prefix=/usr/local/git make
    8. make install
    9. #设置环境变量
    10. vim /etc/profile
    11. export GIT_HOME=/usr/local/git
    12. export PATH=$GIT_HOME/bin:$PATH
    13. source /etc/profile
    14. #也可以使用
    15. echo "export PATH=$PATH:/usr/local/git/bin" >> /etc/profile
    16. source /etc/profile

    4、安装go

    1. #下载
    2. wget http://www.golangtc.com/static/go/1.4.2/go1.4.2.linux-386.tar.gz
    3. #解压
    4. tar -zxvf go1.4.2.linux-386.tar.gz mv go /usr/local/
    5. #设置环境变量
    6. vim /etc/profile
    7. #设置goroot的环境变量 此环境变量指的是go的根目录
    8. export GOROOT=/usr/local/go
    9. #设置go的环境变量
    10. export PATH=$PATH:/usr/local/go/bin
    11. PATH=$PATH:$HOME/bin
    12. export PATH

    5、编译ngrok

    1. cd /usr/local/
    2. git clone https://github.com/inconshreveable/ngrok.git
    3. //替换码云 https://gitee.com/feiy/ngrok.git
    4. export GOPATH=/usr/local/ngrok/
    5. export NGROK_DOMAIN="xx.xx.com"
    6. cd ngrok

    生成ssl证书

    1. openssl genrsa -out rootCA.key 2048
    2. openssl req -x509 -new -nodes -key rootCA.key -subj "/CN=$NGROK_DOMAIN" -days 5000 -out rootCA.pem
    3. openssl genrsa -out server.key 2048
    4. openssl req -new -key server.key -subj "/CN=$NGROK_DOMAIN" -out server.csr
    5. openssl x509 -req -in server.csr -CA rootCA.pem -CAkey rootCA.key -CAcreateserial -out server.crt -days 5000

    将生成的证书复制到ngrok的tls目录

    1. cp rootCA.pem assets/client/tls/ngrokroot.crt
    2. cp server.crt assets/server/tls/snakeoil.crt
    3. cp server.key assets/server/tls/snakeoil.key

    优化下载地址

    vim /usr/local/ngrok/src/ngrok/log/logger.go log "github.com/keepeye/log4go"

    编译服务端

    1. cd /usr/local/go/src
    2. GOOS=linux GOARCH=386 ./make.bash
    3. cd /usr/local/ngrok/
    4. GOOS=linux GOARCH=386 make release-server

    编译macos客户端

    1. cd /usr/local/go/src
    2. GOOS=darwin GOARCH=amd64 ./make.bash
    3. cd /usr/local/ngrok/
    4. GOOS=darwin GOARCH=amd64 make release-client

    编译windows客户端

    1. cd /usr/local/go/src
    2. GOOS=windows GOARCH=amd64 ./make.bash
    3. cd /usr/local/ngrok/
    4. GOOS=windows GOARCH=amd64 make release-client

    客户端配置文件

    server_addr: "xx.xx.com:4443" trust_host_root_certs: false

    启动服务端

    /usr/local/ngrok/bin/ngrokd -domain="$NGROK_DOMAIN" -httpAddr=":80"

     

    启动客户端

    ./ngrok -config=./ngrok.cfg -subdomain=blog 80 setsid ./ngrok -config=./ngrok.cfg -subdomain=test 80

     

     

  • 相关阅读:
    软件测试/测试开发丨​利用人工智能ChatGPT批量生成测试数据
    Android Camera性能分析 - 第19讲 预览Buffer Path Trace实战分析
    SpringBoot集成Kafka——如此简单
    报错:UnboundLocalError: local variable 'encoder_extended_attention_mask' referenced before assignment
    工作数字化的中国历程 | 从 OA 到 BPM 到数字流程自动化
    AI编程新手快速体验SpringCloud Alibaba 集成AI功能
    Maven------pom.xml详解
    WEB与低代码:B/S架构在开发中的应用与优势
    数据结构系列-堆排序当中的T-TOK问题
    详细Ubuntu16~20TLS安装NVIDIA驱动教程
  • 原文地址:https://blog.csdn.net/weixin_36723038/article/details/126572520