笔者所知并成功实现内网穿透的方法:

  • 花生壳 (需要花8块钱,使用花生壳给的二级域名,这里不做介绍)
  • ngrok (免费,但是每次重启服务二级域名会变,付费的$5每月不会变)
  • frp(开源免费,需要有自己的服务器和公网IP)

Ngrok的使用:

  ngrok的使用很简单,如果不是长期需要域名穿透服务的话建议使用ngrok,ngrok官网

  1. 下载并安装ngrok

    请务必在其他任何事情之前下载ngrok。按照说明确保它已正确安装。

  2. 连接您的帐户(如果没有注册ngrok这步可跳过)

    运行此命令会将您帐户的authtoken添加到您的ngrok.yml文件中。这将为您提供更多功能,所有打开的隧道将在仪表板的这里列出。

    ./ngrok authtoken xxxxxx
  3. 开始你的第一个隧道

    一旦运行了本地服务器或其他程序,就可以打开指向当前正在运行的端口的隧道。如果遇到问题,请阅读文档以探索其他隧道选项。

    ./ngrok http 

    每次启动隧道时,免费ngrok帐户都会收到一个随机URL。升级到付费计划,仅为您的帐户保留ngrok子域名,设置自定义CNAME等等。

Frp的使用:

  frp有服务器端(frps)和客户端(frpc)之分,在Linux和Windows上都可使用,下载地址

  1. Linux服务器端安装
wget https://github.com/fatedier/frp/releases/download/v0.13.0/frp_0.13.0_linux_amd64.tar.gz  #下载frp
tar -zxvf frp_0..0_linux_amd64.tar.gz #解压
cd frp_0..0_linux_amd64 #进入目录
rm -rf frpc_full.ini frpc frpc.ini #删除frpc相关的文件,frpc属于客户端
vi frps.ini #编辑frps配置文件
./frps -c ./frps.ini #启动frps

  2.frps.ini

[common]
bind_port = #与客户端绑定的进行通信的端口
vhost_http_port = #访问客户端web服务自定义的端口号
subdomain_host = frp.abc.com #自定义二级域名
privilege_token = xxxx #token验证(可不加) #控制面板
dashboard_port =
dashboard_user = admin
dashboard_pwd = admin #日志
log_file = ./frps.log
log_level = info
log_max_days = [web1]
type = http
subdomain = web1
auth_token = XXX [web2]
type = http
subdomain = web2
auth_token = XXX

  3.Linux客户端安装

wget https://github.com/fatedier/frp/releases/download/v0.13.0/frp_0.13.0_linux_amd64.tar.gz  #下载frp
tar -zxvf frp_0..0_linux_amd64.tar.gz #解压
cd frp_0..0_linux_amd64 #进入目录
rm -rf frps_full.ini frps frps.ini #删除frps相关的文件,frps属于服务端
vi frpv.ini #编辑frps配置文件
./frpc -c ./frpc.ini #启动frpc

  4.frpc.ini

[common]
server_addr = x.x.x.x #远程服务器地址
server_port =
privilige_token = XXX #token验证(服务器加了就加这) [web1]
type = http
local_port =
local_ip = 127.0.0.1 #如果绑定的是本机IP的话,这里改成本机IP即可,此行也可忽略不加,默认为127.0.0.1
subdomain = web1

  5.配置服务器上的Nginx 让frp用上80端口

server {
listen ;
server_name *.frp.abc.com;
location / {
proxy_pass http://127.0.0.1:8080;
proxy_set_header Host $host:;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_hide_header X-Powered-By;
}
}

到这里 我们访问 web1.frp.abc.com 便可访问到自己本地的服务

windows下的frp的配置文件和linux下使一样的!

使用screen让frp在后台运行

首先使用screen指令创建一个会话。

screen -dmS frp

然后进入这个会话

screen -r frp

删除一个screen窗口

screen -ls  #查看要删除的screen 进程id
kill - xxx #杀掉该进程
screen -wipe #清除杀掉的screen

这套东西对微信调试很有用:)

参考资料:

使用frp实现内网穿透

让frp和Nginx共用80端口

frp官方资料

遇到的坑

1、frps和frpc一定要配套,要是哪个版本都是哪个版本

2、 windows中 需要借助cmd

 frpc.exe -c frpc.ini

3、如果frps启动没有问题,并且7500端口的仪表盘可以访问,frpc却连不上,那就把服务器上的防火墙关了把

==========更=========

对外提供简单的文件访问服务

通过 static_file 插件可以对外提供一个简单的基于 HTTP 的文件访问服务。

#frpc.ini

[static_file]
type = tcp
remote_port =
plugin = static_file
plugin_local_path = /root/www/brain_storming/dist
plugin_strip_prefix = static
plugin_http_user = abc
plugin_http_passwd = abc

通过浏览器访问 http://x.x.x.x:6008/static/ 来查看位于 /root/www/brain_storming/dist 目录下的文件,会要求输入已设置好的用户名和密码。

关于穿透 https

其实跟frp没有关系,直接配置nginx即可,需要注意的是一般没有泛型域名的证书,读者自行取舍吧

这里8080是 frps中v_host_port ,这里浏览器只认https://nb.bestbing.cn,因为证书是这个域名的

server{
listen 443 ssl;
server_name *.bestbing.cn;
ssl_certificate /home/xuebing/cert/nb.bestbing.cn.pem;
ssl_certificate_key /home/xuebing/cert/nb.bestbing.cn.key;
ssl_session_cache shared:SSL:1m;
ssl_session_timeout 5m;
ssl_ciphers HIGH:!aNULL:!MD5;
ssl_prefer_server_ciphers on;
location /{
proxy_pass http://localhost:8080;
proxy_set_header Host $host;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_read_timeout 86400;
}
}

frp使用总结的更多相关文章

  1. 函数响应式编程(FRP)—基础概念篇

    原文出处:http://ios.jobbole.com/86815/. 一函数响应式编程 说到函数响应式编程,就不得不提到函数式编程,他们俩有什么关系呢?今天我们就详细的解析一下他们的关系. 现在下面 ...

  2. FRP 浅析

    一.Reactive? 请先看一个非常简单的小应用,它允许用户在一个搜索输入框里输入关键词,然后在其下方的结果区域实时显示从Flicker网站搜索得到的图片,当用户输入的关键词发生变化,显示的图片也会 ...

  3. ReactiveCocoa & FRP & MVVM

    Functional Reactive Programming(以下简称FRP)是一种响应变化的编程范式.先来看一小段代码 a = 2 b = 2 c = a + b // c is 4 b = 3 ...

  4. 借助 frp 随时随地访问自己的树莓派

    前言 看了知乎上的一个「树莓派」是什么以及普通人怎么玩? 的高票回答,双十一时间,果断买了一个树莓派 3. 周一(11.13) 到的货.我目前只想实现一个简单的功能 -- 想从任意位置访问我的树莓派. ...

  5. 【小技巧解决大问题】使用 frp 突破阿里云主机无弹性公网 IP 不能用作 Web 服务器的限制

    背景 今年 8 月份左右,打折价买了一个阿里云主机,比平常便宜了 2000 多块.买了之后,本想作为一个博客网站的,毕竟国内的服务器访问肯定快一些.满心欢喜的下单之后,却发现 http 服务,外网怎么 ...

  6. frp内网 穿透映射使内网svn可外网访问

    起因 公司svn目前部署在内网服务器上,现在想在家中也可以使用,因此需要外网访问内网的工具 经过 使用过几个产品: utools,一个小巧的windows下的工具,内网映射只是它的一个小功能,支持tc ...

  7. Frp基础配置模版

    Frp基础配置模版存档,供参考: 不写注释说明了,直接上模板: frps.ini [common] bind_port = 7000 privilege_token = password vhost_ ...

  8. 在Synology群晖上运行Frp客户端

    一.Synology群晖上开启SSH 二.使用Putty连接 1,登陆管理员账户和密码 2,连接成功后输入sudo su - 输入管理员的密码切换到root权限 下载:wget https://git ...

  9. 利用阿里云搭建frp实现外网远程桌面链接内网电脑

    主要应用场景:针对学生放假回家使用外网无法远程操作学校的服务器或者电脑,这里通过阿里云的云服务器搭建一个frp服务,实现内网穿透,从而可以直接通过远程桌面或者其他工具实现对校园网内的服务器或者电脑进行 ...

  10. 如何用frp进行来无影去无踪

    准备工作 和 注意事项: 1.frp 下载地址  https://github.com/fatedier/frp/releases 2. 需要给有公网ip 的服务端服务器 和 本地客户端服务器 各放一 ...

随机推荐

  1. Python DataFrame 如何删除原来的索引,重新建立索引

    删除行索引重排: ser.reset_index(drop = True) df.reset_index(drop = True) ---------------------------------- ...

  2. Flink学习笔记:Connectors概述

    本文为<Flink大数据项目实战>学习笔记,想通过视频系统学习Flink这个最火爆的大数据计算框架的同学,推荐学习课程: Flink大数据项目实战:http://t.cn/EJtKhaz ...

  3. vue可视化图表 基于Echarts封装好的v-charts简介

    **vue可视化图表 基于Echarts封装好的v-charts** 近期公司又一个新的需求,要做一个订单和销售额统计的项目,需要用到可视化图表来更直观的展示数据.首先我想到的是Echarts,众所周 ...

  4. windows下Idea结合maven开发spark和本地调试

    本人的开发环境: 1.虚拟机centos 6.5 2.jdk 1.8 3.spark2.2.0 4.scala 2.11.8 5.maven 3.5.2     在开发和搭环境时必须注意版本兼容的问题 ...

  5. 在Ninject 向构造参数中注入具有相同类型的参数

    实际上这个有多种解决方法,加自定义Attribute,或Named(),但这些方式有一些侵入性,Named,要引用Ninject, 自定义Attribute,还要还要再写几行代码吗,所以使用下面的方法 ...

  6. 洛谷 P3391【模板】文艺平衡树(Splay)

    题目背景 这是一道经典的Splay模板题--文艺平衡树. 题目描述 您需要写一种数据结构(可参考题目标题),来维护一个有序数列,其中需要提供以下操作:翻转一个区间,例如原有序序列是5 4 3 2 1, ...

  7. leetcode 493 Reverse Pairs

    题意:给定一个数组nums,求若 i<j and nums[i] > 2*nums[j] 的逆序对. Note: 数组的长度不会超过50,000 不愧是hard模式的题目,虽然已经知道可以 ...

  8. Spring 配置 Apache Commons Logging

    第一次用spring framework,刚配了个最简单的项目,启动出现如下错误,查了知道原来spring要依赖Apache common logging包.只需要添加到项目library中即可.可从 ...

  9. Python爬虫常用之HtmlParser

    HtmlParser,顾名思义,是解析Html的一个工具.python自带的. 一.常用属性和方法介绍 HtmlParser是一个类,在使用时一般继承它然后重载它的方法,来达到解析出需要的数据的目的. ...

  10. PIE SDK聚类

    1.算法功能简介 聚类处理时运用形态学算子将临近的类似分类区域聚类并合并. PIE SDK支持算法功能的执行,下面对聚类算法功能进行介绍. 2.算法功能实现说明 2.1. 实现步骤 第一步 算法参数设 ...