某天,小睿同学突然发现校内图书馆的查阅系统居然只有连接上校园网才能访问(简称:内网访问)。小睿平常好动,于是乎决定利用自己所学的技术,做一款基于微信小程序的“校园图书查阅”系统。

但是我校的“校园图书查询”系统的服务器肯定在内网中,我该如何才能让外界也能访问呢?这对于才疏学浅的小睿同学可真是一个困难的问题。幸运的是,小睿得到了王学长的指点——内网穿透

什么是内网穿透呢?

两台计算机都处于不同的局域网之中,外网与内网的计算机节点需要连接通信,那么就需要借助内网穿透技术来解决这个问题,也叫NAT穿透。简单来说,就是让外网可以访问你本地的应用。

为了能够在校园外以及未连接校园网,也可以使用“图书查询系统”,我决定使用“frp”来实现这一目的。

frp是一个可用于内部网穿透的高级反向代理应用程序,支持tcp,udp协议,为http和https应用协议提供了额外的能力,并且尝试性支持了点对点穿透。

下图是我绘制的一个采用frp实现内网穿透的原理图,以方便大家区分frp的客户端和服务端以及工作流程。

我们先在ESC服务器上配置frp的服务端,然后找一台可访问局域网的设备,搭建web服务器,并且配置frp客服端。以达到实现广域网任意pc访问8080端口,frp服务端就可以把通过8081端口,将请求转发给局域网内的给8082端口,8082端口再将响应通过8081、8080端口返回给PC机。其实就是一个请求转发的过程。

配置frp服务端

1、我们先用SSH连接ECS服务器,根据自己操作系统及架构,从 Release 页面(点击阅读原文)下载最新版本的程序。可以通过wget下载,也可以在自己的电脑上下载好后,通过FTP工具上传。

wget --no-check-certificate https://github.com/fatedier/frp/releases/download/v0.31.2/frp_0.31.2_linux_amd64.tar.gz

2、使用tar命令进行解压

 tar -zxvf 解压下载的压缩包

3、修改服务端的配置文件

 vim frps.ini   [common] #frp服务端与客户端连接端口,frps和frpc必须一致 bind_port = 8081 #服务端外部提供的端口 vhost_http_port = 8080 # 仪表盘端口,只有设置了才能使用仪表盘(即后台) dashboard_port = 7500 # 仪表盘访问的用户名密码,如果不设置,则默认都是 admin dashboard_user = admin dashboard_pwd = admin                       

然后键入ESC+wq+Enter,保存退出。

4、启动服务端

./frps -c frps.ini

这里有一个坑,我们断开SSH连接后,frp的服务端也就停止了。我们可以使用nohup,这样就可以保持frp的服务端可以保持正常运行。

nohup ./frps -c frps.ini &

配置frp客户端

1、首页搭建web服务器,我使用的是Nginx,这都大同小异。只要记得自己的Nginx端口就没问题。

2、执行以下命令,下载以及下载frp。

wget --no-check-certificate https://github.com/fatedier/frp/releases/download/v0.31.2/frp_0.31.2_linux_amd64.tar.gztar -zxvf 解压下载的压缩包

3、修改客户端配置文件

vim frpc.ini [common]#服务端公网ip地址server_addr = x.x.x.x#与服务端通信端口server_port = 8081 [web]type = http#本地Nginx服务端口local_port = 8082#公网ip绑定的域名custom_domains = xxx.xxx.com

然后键入ESC+wq+Enter,保存退出。

4、启动客户端

nohup ./frpc -c frpc.ini &

小结

这样我们即使与局域网有十万八千里,也可以通过公网ip绑定的域名,轻松的访问到局域网的应用服务。

疑难杂症

有的同学在配置frp中可能会遇到以下困难:

Q:为什么我的端口都配置的正确,但是在外网访问不到了?

A:同学,你可以检查下你的防火墙是否放行以及端口是否被占用,还有局域网下是否可联网。此外,如果你使用的是阿里云默认关闭的端口,那么你需要登录阿里云,在安全组规则中添加你使用的端口。

因为阿里云备案快,我一般使用的都是阿里云的ESC服务器 + 域名。近期阿里云的“学生在家实践计划”活动,凡是大学生即可领取6个月的ESC服务器。

一些善于折腾的、物联网的同学,也可以把家中废弃的电脑、手机变成一台小型的服务器、云盘,使用frp工具实现内网穿透。这样一台废弃电脑、手机也可以变废为宝啦~


我是 郭小睿同学

欢迎加我微信

备注 姓名+技术or方向+学习or公司

拉你进学习交流群




对你有帮助,点个赞!

让更多人受益~

掌握内网穿透,家里废弃的手机也可以变成服务器相关推荐

  1. 有了内网穿透神器 ngrok ,个人电脑也能做服务器

    平常我们访问的网站都是由具有公网ip的服务器提供的,如果想做自己的网站也得要有个自己的服务器(当然也可以使用GitHub这种做静态网站,下次可以说说),其实服务器简单来说也就是一台电脑而已,那可不可以 ...

  2. 5 分钟,使用内网穿透快速实现远程手机桌面!

    点击上方 "AirPython",选择 "加为星标" 第一时间关注 Python 原创干货! 1. 前言 大家好,我是安果! 不知道大家有没有下面这些经历,比如 ...

  3. 自己搭建一个内网穿透服务,用域名访问自己家服务器的网站

    搭建前准备: 1.一个域名,本文的示例的域名是阿里云的: 2.家里有一台电脑,电脑上跑了nginx,代理了80端口: 3.家里的路由器支持虚拟服务器(可以自行百度自己的路由器有没有"虚拟服务 ...

  4. 群晖nas免费内网穿透,实现外网异地远程访问

    一般群晖nas都部署在内网网络中,但现在基本不会被分配公网IP,要想在外网环境下远程访问家里/公司的群晖nas,普遍是做内网穿透来实现,通过第三方公网IP服务器进行转发. 这里推荐一款免费的内网穿透软 ...

  5. 简单内网穿透-利用树莓派-低成本建站 无需公网ip

    很多人都想试试自己建站玩一玩 (比如博客.自建网盘.远程下载等),但家里宽带没公网 IP,特意买台服务器又显得浪费.那么有没成本小.可玩性高.又能长期稳定使用的方案呢? 其实,免费的内网穿透工具 (如 ...

  6. 简单免费内网穿透教程,利用树莓派实现低成本建站 无需公网

    很多人都想试试自己建站玩一玩 (比如博客.自建网盘.远程下载等),但家里宽带没公网 IP,特意买台服务器又显得浪费.那么有没成本小.可玩性高.又能长期稳定使用的方案呢? 其实,免费的内网穿透工具 (如 ...

  7. 使用nat123进行内网穿透

    使用nat123进行内网穿透 1.前期准备 下载并在用作服务器的机子上安装nat123(点此下载):安装后会出现两个软件,nat123是服务器用软件,nat123P2P是客户端访问用软件. 2.在服务 ...

  8. [Linux]zerotier阿里云部署moon服务实现内网穿透

    [Linux]zerotier私有云部署moon服务实现内网穿透 一.前言 zerotier+阿里云ESC服务器+MacBook Air(M1)+openwrt 二.zerotier基本使用(直连外网 ...

  9. 内网穿透实现实体服务器变云服务器:服务器无公网ip,如何提供公网网站,又如何异地ssh登录或者异地登录服务器的宝塔面板

    先说本经验的应用场景 up主的就业方向是开发网站前后端,有一台自己的实体服务器,没有公网IP,我希望: 能长久地提供任何人在任何地点都能用浏览器访问到的网站: 另外由于服务器存放在家里,我开学.旅游. ...

最新文章

  1. The JVM Architecture Explained-JVM架构解析(译)
  2. 又一名逃犯在张学友演唱会被 AI 捕获,人送绰号“热心歌神张先生”
  3. CodeForces - 1547F Array Stabilization (GCD version)(ST表+二分)
  4. android n-ify miui,MIUI7.5版刷机包
  5. Iterator 和 ListIterator 的区别
  6. ffmpeg 丢帧 灰屏_音视频常见问题分析和解决:HLS切片丢帧引起的视频卡顿问题排查...
  7. Redis的相关命令
  8. 计算机所涉及的英语,计算机算法相关术语的英语词汇
  9. mysql处理varchar类型的between和and的时间问题少一天解决;
  10. Y15BeTa蜂鸣器-演奏版-简化版
  11. replaceFirst、replaceAll、replace区别
  12. java1.7环境_java1.7环境变量设置
  13. asp.net中配置使用Sqlite轻型数据库
  14. mysql查询同时选修了两门_查找同时选修了C01及C02两门课程的学生姓名及学号
  15. 朱晔的互联网架构实践心得S1E5:不断耕耘的基础中间件
  16. 组合公式计算机,(最新整理)排列与组合的概念与计算公式
  17. HCNE的110个知识点
  18. JDK下载常用的几种方法
  19. Sql Server服务远程过程调用失败
  20. html5虚拟试衣,Trylive Clothing虚拟试衣系统 打造属于你个人的魔法试衣间

热门文章

  1. INS-35178错误,AMM及ASMM区别
  2. bim计算机管理室内设计,BIM软件小技巧:Revit室内设计-创建房间
  3. 优酷路由宝无线服务器,优酷路由宝开启SSH
  4. 基于Android校园失物招领系统
  5. 【贪心算法】空酒瓶换酒问题
  6. unity3d 各大插件评测
  7. 一个让人感伤又温馨的计算机故事:我是一个硬盘
  8. 初步认识video技术
  9. 解决Oracle+Mybatis批量插入报错:SQL 命令未正确结束
  10. Unity灯光一:Unity中的灯光设置