1.使用frp穿透内网
1.前因后果
1.1弃用ngrok
为节约服务器成本,花了500多块买了一个华为云得1G 1核心 5M得云服务器.然后用ngrok来穿透内网.一直用得还 但是今天在弄nginx得时候发现 ngrok没有带客户请求的真实IP带过来.
看了以下ngrok的源码库,发现2.0以后的版本才支持. 但是2.0已经商用了.github上只有1.0的源码,并且没有维护了
ngrok1 源码地址 https://github.com/inconshreveable/ngrok

1.2选择frp
github地址:https://github.com/fatedier/frp
frp 是一个可用于内网穿透的高性能的反向代理应用,支持 tcp, udp 协议,为 http 和 https 应用协议提供了额外的能力,且尝试性支持了点对点穿透。(摘自项目主页)
2.开始在服务端安装frp
2.1下载源码安装
cd /usr/local/src wget https://github.com/fatedier/frp/releases/download/v0.25.3/frp_0.25.3_linux_amd64.tar.gz tar -zxvf frp_0..3_linux_amd64.tar.gz mv frp_0..3_linux_amd64 /usr/local/frp
2.2 目录简单的说明
目录中frps 开始的是服务端用的 frpc是客户端用的。 在服务器端口可以删除frpc开头的目录和文件.不删也可以

2.3编辑服务器端的配置文件
frps_full.info是开发团队提供的一个比较完整的配置示例.(当然也不是全部,最全的是项目文档.有中文文档)
我们这里编辑编辑 frps.ini 就可以了
[common] bind_port = vhost_http_port =
配置很简单吧,来简单说明以下
bind_port:是frp监听客户端请求的端口(服务器和客户端需要通过TCP建立一个连接),需要注意 要在云主机上打开这个端口。否则... 客户端肯定连不上啊vhost_http_port:是http的请求端口,这里使用80端口.否则用户在访问的时候需要加端口. 不加这个参数.客户端也无法使用http服务![]()
2.4测试启动一下
在frp目录下执行命令: ./frps -c ./frps.ini 来启动服务, -c 是指定配置文件路径 如果看到以下输出,标识服务器已经开始监听.客户端可以开始连接了 [root@ecs-fa43 frp]# ./frps -c ./frps.ini // :: [I] [service.go:] frps tcp listen on // :: [I] [service.go:] http service listen on // :: [I] [root.go:] Start frps success
2.5 添加开机自启动
在2.4中可以在shell中启动服务了,但是如果shell窗口关闭了,服务也就停止了
我们编辑/etc/rc.local 添加如下配置(具体视你的安装路径和配置文件路径而定)
/usr/local/frp/frps -c /usr/local/frp/frps.ini
重启一下服务器,看看7000已经被frp监听了

3.配置客户端
frp 采用go语言编写,但是跨平台的.
我这里内网机器是windows,所以下载windows客户端
3.1 下载windows客户端
下载地址:https://github.com/fatedier/frp/releases 注意版本最好和服务器用的版本一样.
3.2解压并根据业务需要编辑配置文件
按照服务器端的安装套路,frps开头的可以删掉 然后我们还是编辑frpc.ini文件
这里给出一个配置文件示例, 更多的配置可以参考项目文档
[common] server_addr = 这里是你云服务器的地址 server_port = #ssh端口 [ssh50128] type = tcp local_ip = 192.168.161.128 local_port = remote_port = [ssh50129] type = tcp local_ip = 192.168.161.129 local_port = remote_port = [ssh50200] type = tcp local_ip = 192.168.161.200 local_port = remote_port = [ssh50201] type = tcp local_ip = 192.168.161.201 local_port = remote_port = [ssh50202] type = tcp local_ip = 192.168.161.202 local_port = remote_port = [ssh50220] type = tcp local_ip = 192.168.161.220 local_port = remote_port = [ssh50221] type = tcp local_ip = 192.168.161.221 local_port = remote_port = [ssh50222] type = tcp local_ip = 192.168.161.222 local_port = remote_port = #rabbitmq tcp端口 [tcprabbitmq] type = tcp local_ip = 192.168.161.129 local_port = remote_port = custom_domains = tcp.domain.site #web 站点 [webmqweb] type = http local_ip = 192.168.161.129 local_port = use_encryption = false use_compression = false custom_domains = a.domain.site
3.3使用nssm 把客户端安装为windows服务
ps:对于不提供windows服务运行的程序都可以这么玩 比如kibana 你也可以这么玩
nssm下载地址: http://www.nssm.cc/download
.\nssm.exe install frp

最后具体业务,查看是否能正常运行
4.开发团体提供的项目文档
https://github.com/fatedier/frp/blob/master/README_zh.md
实际上frp,不仅仅提供内网穿透.还支持认证 反向代理等。 具体可以看文档
1.使用frp穿透内网的更多相关文章
- frp穿透内网使用vsftpd服务
本篇文章将会介绍如何使用frp穿透内网以及如何在centos8环境下安装和使用vsftpd,最后在公网通过frp穿透内网使用ftp. 一.内网穿透神器frp frp 是一个专注于内网穿透的高性能的反向 ...
- 疫情之下,使用FRP实现内网穿透,远程连接公司电脑进行办公
当前情况下,经常会有需要到公司电脑进行一些操作,比如连接内网OA,数据库或者提交文档.为了减少外出,将使用frp进行内网穿透的方法进行一个说明. 前提条件 1. 一台拥有公网 IP 的设备(如果没有, ...
- frp端口映射穿透内网
前言 frp 是一个高性能的反向代理应用,可以轻松地进行内网穿透,对外网提供服务,支持 TCP.UDP.HTTP.HTTPS 等协议类型,并且 web 服务支持根据域名进行路由转发. Github: ...
- 基于frp的内网穿透实例4-为本地的web服务实现HTTPS访问
原文地址:https://wuter.cn/1932.html/ 一.想要实现的功能 目前已经实现将本地的web服务暴露到公网,现想要实现https访问.(前提:已经有相应的证书文件,如果没有就去申请 ...
- frp实现内网穿透
frp实现内网穿透 目标 通过外网访问内网设备,本文中实现通过手机的移动流量,可以访问到树莓派设备 设备准备 需要被访问的设备(本文中使用Raspberry Pi`).公网IP设备(本文中使用阿里云 ...
- frp+nginx内网穿透
frp+nginx内网穿透 背景:自己有台内网Linux主机,希望被外网访问(ssh.http.https): 准备工作 内网Linux主机-c,可以访问c主机和外网的主机-s(windows/lin ...
- 使用frp进行内网穿透,实现ssh远程访问Linux服务器
搭建一个完整的frp服务链需要: VPS一台(也可以是具有公网IP的实体机) 访问目标设备(就是你最终要访问的设备) 简单的Linux基础(如果基于Linux配置的话) 我这里使用了腾讯云服务器作为服 ...
- frp 用于内网穿透的基本配置和使用
frp 用于内网穿透的基本配置和使用 今天是端午节,先祝端午安康! frp 是一个专注于内网穿透的高性能的反向代理应用,支持 TCP.UDP.HTTP.HTTPS 等多种协议.可以将内网服务以安全.便 ...
- C#用UPnP穿透内网
参考了网上的一篇文章,由于时间长了,具体地址不知道了. 引入了一个DLL: Interop.NATUPNPLib.dll,实现穿透局域网,进行Socket通信. using System; using ...
随机推荐
- poi 获取excel数据 导入数据库
MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request; Map<String, ...
- Thrift辅助类,用于简化Thrift编程
CThriftServerHelper用于服务端,CThriftClientHelper用于客户端. IDL定义: service PackageManagerService { } 服务端使用示例: ...
- MVC模式在Java Web应用程序中的实例分析
MVC在软件架构中是一种比较重要的架构思想,已经被广泛的应用在实际的java web项目开发中,我们所要了解和掌握的是mvc的架构思想和使用mvc模式来分析和解决问题的方法.当然相同或不同的项目都有各 ...
- Android dex分包方案和热补丁原理
一.分包的原因: 当一个app的功能越来越复杂,代码量越来越多,也许有一天便会突然遇到下列现象: 1. 生成的apk在2.3以前的机器无法安装,提示INSTALL_FAILED_DEXOPT 2. 方 ...
- zookeeper DataTree内存模型介绍及对Znode的四大特性介绍和Stat结构分析
一. zookeeper的内存模型 1. zookeeper是一个由 znode节点组成的一个树形结构 2. 每个znode都可以做成一个subject... 3. 客户端可以监控每一个节 ...
- github 上中国互联网公司的开源项目
github上 那个 watch和 follow功能 不太好用啊. 是我用的 不好,还是 怎么的.有时候 找不到 watch 和 follow. 秉持 开源 精神,省的大家 和 我 查找. 我只关注 ...
- Mybatis 拦截器报错org.apache.ibatis.executor.statement.StatementHandler.prepare(java.sql.Connection)
出现此错误的原因是MyBatis 3.4.0 之后,StatementHandler的prepare方法做了修改,如下: 在args = { Connection.class }中添加第二个参数,即 ...
- scrapy爬虫框架入门实战
博客 https://www.jianshu.com/p/61911e00abd0 项目源码 https://github.com/ppy2790/jianshu/blob/master/jiansh ...
- WPF成长之路------帧动画(1)
最近公司的一个项目因为是WPF的,而自己已经很长一段时间没有接触过WPF了,再加上之前没有做过wpf的动画效果,因此在学习的过程中也顺便记录一下,说不定以后还会用上,同时也算是总结一下吧!刚开始写博客 ...
- “全栈2019”Java第八章:IntelliJ IDEA设置注释不显示在行首
难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java第 ...