LinuxGod

LinuxGod.net
Linux大神网——精选每一篇高品质的技术干货
  1. 首页
  2. 开源快讯
  3. 正文

一台有外网ip的服务器利用ngrok在中间做个跳板

2023年6月25日 233点热度

有时侯想在自己笔记本、路由器或则蓝莓派上搭建一些web、vpn等服务让自己用,而且自己的笔记本通常没有内网iplinux内核,无法在外部访问那些服务,如同右图,笔记本能访问到内网,而且无法从内网访问到笔记本。

这时可以用一台有内网ip的服务器借助ngrok在中间做个跳板,如右图,原理是搭有web服务的外网笔记本A与网段服务器C长联接,手机B访问服务器C的指定一个端口,服务器C将收到的手机发来的数据转发给外网笔记本A,A作出相对的响应回传给服务器C,C再将收到的数据发给手机A,实现穿透外网。端口转发这种规则都是在服务器C和笔记本B上定义好的。

b端客户c端客户的意思_centos vpn client_centos vpn 客户端

ngrok穿透外网原理搭建比较简单,搭建也比较简单,不须要填好多配置文件。只须要在服务器上运行服务端程序,在外网笔记本上运行顾客端程序就行了。

须要:一台服务器、一个域名

搭建步骤:

1、环境打算:在服务器上安装git、go语言环境,下载ngrok源码包。

2、用域名生成证书(避免他人用借助你的服务器做跳板)。

3、编译服务端程序。

4、编译顾客端程序,并复制到外网笔记本上。

5、分别运行服务端和顾客端,实现长联接。

6、测试,用手机访问看能不能转发数据。

详尽步骤:

(为了容易理解,这儿用当作域名,二级域名是,指向同一个服务器)

1、环境打算

安装git

yuminstallgit-y

下载go语言包,直接给出下好的了:

解压go语言压缩包,创建环境变量:

tar-zxvfgo1.9.2.linux-amd64.tar.gz

添加并保存profile文件:

vi/etc/profileexportGO_HOME=/file/go/goexportPATH=$PATH:$GO_HOME/bin

更新环境变量

source/etc/profile

下载解压github上的ngrok源码

wget

给一个下好的ngrok:

2、生成证书

执行下述命令:

b端客户c端客户的意思_centos vpn 客户端_centos vpn client

NGROK_DOMAIN="你的域名"opensslgenrsa-outbase.key2048opensslreq-new-x509-nodes-keybase.key-days10000-subj"/CN=$NGROK_DOMAIN"-outbase.pemopensslgenrsa-outserver.key2048opensslreq-new-keyserver.key-subj"/CN=$NGROK_DOMAIN"-outserver.csropensslx509-req-inserver.csr-CAbase.pem-CAkeybase.key-CAcreateserial-days10000-outserver.crt

执行后文件夹下会生成一些证书文件。

将新生成的证书,替换掉assets/client/tls下的证书

cpbase.pemassets/client/tls/ngrokroot.crt-y3、编译生成服务端程序makerelease-server

会在ngrok/bin/目录下生成ngrokd可执行文件,

执行:

./bin/ngrokd-tlsKey=server.key-tlsCrt=server.crt-domain=""-httpAddr=":80"-httpsAddr=":443"

命令中-httpAddr和-httpsAddr是手机访问的的端口,服务端会将80端口接收到的数据通过4443端口(默认)转发到外网笔记本。

出现下述信息是成功运行了。

[22:17:33CST2018/08/19][INFO](ngrok/log.(*PrefixLogger).Info:83)[registry][tun]Noaffinitycachespecified[22:17:33CST2018/08/19][INFO](ngrok/log.Info:112)Listeningforpublichttpconnectionson[::]:80[22:17:33CST2018/08/19][INFO](ngrok/log.Info:112)Listeningforpublichttpsconnectionson[::]:443[22:17:33CST2018/08/19][INFO](ngrok/log.Info:112)Listeningforcontrolandproxyconnectionson[::]:4443[22:17:33CST2018/08/19][INFO](ngrok/log.(*PrefixLogger).Info:83)[metrics]Reportingevery30seconds4、编译生成顾客端程序

这儿编译一个window版的顾客端:

GOOS=windowsGOARCH=amd64makerelease-client(生成linux顾客端直接执行makerelease-client)

执行完上述命令后会在ngrok/bin/目录下生成windows_amd64文件夹,上面有一个ngrok.exe程序,复制到自己外网笔记本上。

例如复制到E:/ngrok文件夹centos vpn 客户端,需在此文件夹里新建ngrok.cfk配置文件,上面写:

server_addr:":4443"trust_host_root_certs:false

在命令提示符里切换到此文件夹,执行:

ngrok.exe-config=ngrok.cfg-log=ngrok.log-subdomainngrok5000

命令手指定配置文件、日志文件,-subdomain旁边跟的是二级域名和服务器将数据转发到的本地端口,注意填的是二级域名的前一部份,例如就写ngrok。

右图是运行成功的截图:

centos vpn 客户端_centos vpn client_b端客户c端客户的意思

都会将服务器80接收到的数据转发到外网笔记本的5000端口。

5、服务端和顾客端运行命令

先运行服务端

./bin/ngrokd-tlsKey=server.key-tlsCrt=server.crt-domain=""-httpAddr=":80"-httpsAddr=":443"

再运行顾客端

ngrok.exe-config=ngrok.cfg-log=ngrok.log-subdomainngrok50006、用手机访问进行测试

假如是顾客端联接不到服务端(就是前面步骤那种图状态不显示online),通常是服务端配置的问题,顾客端程序和服务端程序是用证书编译下来的配套使用的。

假如服务端能接收到手机访问的数据并且找不到隧洞转发,可能是顾客端域名写的有问题(我就是这样的错误)。

ps:域名哪里没做其他尝试,不晓得填服务器ip可不可行,我在运行顾客端写一级域名不行,写二级域名可以,而且看网上教程填的一级域名。

《Linux就该如此学》是一本基于最新Linux系统编撰,面向零基础读者的技术书籍。从Linux基础知识讲起kali linux,之后渐进式地增强内容难度,详尽讲解Linux系统中各类服务的工作原理和配置方法,以匹配真实生产环境对运维人员的要求centos vpn 客户端,展现内容的实用性。想要学习Linux系统的读者可以点击"阅读原文"按键了解这本书,同时这本书也适宜专业的运维人员阅读,作为一本特别有参考价值的工具书!

本作品采用 知识共享署名 4.0 国际许可协议 进行许可
标签: log ngrok 外网ip
最后更新:2023年6月25日

Linux大神网

每日更新,欢迎收藏♥ 不积跬步无以至千里,加油,共勉。

点赞
< 上一篇
下一篇 >

Linux大神网

每日更新,欢迎收藏♥
不积跬步无以至千里,加油,共勉。

最新 热点 随机
最新 热点 随机
Linux文件系统种类 如何卸载用源码包安装的软件?在线视频教程推荐 「职位」ASP.、PHP、Linux服务器集群开发 Torvalds:Linux内核开发的创新前景充满了热情 Linux文件系统的结构从终端窗口探索Linux目录树结构 卸载软件命令Linux.You linux软件开发如何入门?学习Linux步骤及学习方法介绍 14年Linux发行版的有趣历史观点 Linux中不像Windows可以直接在控制面板中卸载? 2018年波及众多Linux发行版的性能对比会更加深入 如何用源码包安装的软件?name的方法总结 Linux之父李纳斯托瓦兹开发的Linux只是一个内核 Linux系统中的apt和apt-get的区别及解决办法! Linux系统发行版的一种方法,除此以外 MacM1上安装Docker和CentOS,您需要遵循的步骤 linux光驱启动怎么设置 常见的几种设置方法,你知道几个? 关于ESXi主机磁盘空间回收的具体操作步骤及步骤 Linux设置显示中文和设置字体设置中文一个都不能少 如何在Linux系统中使用命令查看Linux发行版版本信息 电脑的系统出现问题需要修复时光驱,两种设置方法
嵌入式Linux操作系统学习规划+LINUX路线,主攻江苏电信天翼校园客户端故障指引及解决办法(101)英特尔GMAGMA950显卡驱动程序/WIN8/8.1电信校园网宽带用USB数据线共享给电脑无线上网国防科大开源操作系统:它只是一个吉祥的象征10个常用Linux文本查看命令及其详细说明和使用示例Linux嵌入式系统内核裁剪与定制方法的介绍情况淘宝教育热卖C语言编程开发C++程序设计零基础入门课程从CPU、内存、硬盘、显卡等这些方面安装Linux系统的最低配置Linux通过chkconfig设置开机启动服务创建的几种常见方式(技术分析)Linux多线程的使用与操作系统的区别通常rar命令由一个主命令加若干选项(可选)构成RedHatLinux中自动运行程序中的应用linux 读写文件 关于Linux内核的神秘面纱,你知道几个?使用wget实用程序的有用命令行工具的使用怎么设置linux开机项自启动?方式是怎样的?嵌入式Linux应用层与驱动层要想学习关于Linux内核的交叉编译步骤和方法:步骤、方法STM32嵌入式linux开发流程及应用程序分析-STMlinux下有哪些文件在介绍lsof命令实用用法介绍?
掌握Linux基础命令-上海怡健医学系统 一下嵌入式Linux开发的一般过程及目标文件分析/目标 【Linux基础知识】Linux内核版本命令(两种方法) 安卓在Linux上运行安卓应用比在Windows上更简单 防火墙和SELinux关闭防火墙及SELinux链接进行下载地址 新手重装win7系统步骤和教程,你知道怎么操作吗 Linux端口占用情况的教程操作环境 2017年04月14日11:25嵌入式系统介绍 Linux设置显示中文和设置字体设置中文一个都不能少 Torvalds:Linux内核开发的创新前景充满了热情 【干货】管理用户(user)的工具或命令! Linux下查看版本号的命令转(组图) linux虚拟机的安装步骤是什么?虚拟机和服务器的区别 关于Linux操作系统的一些小知识点总结 宝塔安装使用SSH连接工具,Linux服务器连接的基本介绍 Linux系统下如何搭建SVN服务器,详细说明各配置项的功能 tarxf-3.13.2.tar-C/usr MBR用户密码忘记是改如何修改密码,姜黄素进程管理 CentOS设置IP地址实用技巧及注意事项,轻松掌握正确设置方法 Linux系统中起作用的是系统时钟吗?
标签聚合
操作 linux系统 linux服务器 文件 内核 文件目录 应用 虚拟机 软件 命令
书籍
课程
技术群
技术干货大合集↓
  • 2023年9月 / 69篇
  • 2023年8月 / 93篇
  • 2023年7月 / 94篇
  • 2023年6月 / 90篇
  • 2023年5月 / 93篇
  • 2023年4月 / 90篇
  • 2023年3月 / 129篇
  • 2023年2月 / 84篇
  • 2023年1月 / 161篇
  • 2022年12月 / 187篇
  • 2022年11月 / 76篇
友情链接:

Linux书籍 | Linux命令 | Linux系统 | RHCE红帽认证 | Linux软件 | Linux教程 | CentOS系统 | Linux内核 | Linux服务器 | Linux大神 | IT资源

COPYRIGHT © 2023 linuxgod.net ALL RIGHTS RESERVED.