需要用内网穿透技术来实现通过其他公网 IP 来访问家里的 NAS 设备的需求,frp使用起来更加简便灵活,以及项目一直开源,所以本文选择frp作为示例

frp的github地址 :https://github.com/fatedier/frp
frp的下载地址:https://github.com/fatedier/frp/releases

一、服务端部署

1、服务器端下载linux版本,也可以通过命令下载

##下载对应版本的Frpwget https://github.com/fatedier/frp/releases/download/v0.21.0/frp_0.21.0_linux_amd64.tar.gz##解压tar -xzvf frp_0.21.0_linux_amd64.tar.gz##进入目录cd frp_0.21.0_linux_amd64##删除服务端相关的文件rm -rf frpc*

2、新建目录mkdir -p /usr/local/frp,上传frp_0.xx.0_linux_amd64.tar.gz至linux服务器该目录下

3、解压tar -zxvf frp_0.xx.0_linux_amd64.tar.gz

4、进入解压目录cd frp_0.xx.0_linux_amd64,这里主要关注4个文件,分别是frpc、frpc.ini和frps、frps.ini,前者两个文件是客户端所关注文件,后者两个文件是服务端所关注两个文件。

5、配置服务端(公网服务器),首先删掉frpc、frpc.ini两个文件,然后再进行配置,vi ./frps.ini,

编辑服务端配置文件frps.ini

[common]dashboard_port = 7500      //Dashboard端口dashboard_user = admin    //账号dashboard_pwd = admin    //密码bind_port = 7000vhost_http_port = 8080server_addr = x.x.x.x          //服务器id[ssh]type = tcplocal_ip = 127.0.0.1local_port = 22remote_port = 6000

保存然后启动服务./frps -c ./frps.ini,这是前台启动,后台启动命令为nohup ./frps -c ./frps.ini &

运行服务端frp

nohup ./frps -c ./frps.ini > info.log 2>&1 & echo $! > tpid

3 查看效果&&隐藏端口号,访问浏览器控制面板

访问http://nas.example.com:8080

这时候我们使用网址访问的时候是会带端口号的。看着很烦。这里使用nginx转发的方式可以去掉8080。nginx添加conf如下:

##下载对应版本的Frpwget https://github.com/fatedier/frp/releases/download/v0.21.0/frp_0.21.0_linux_amd64.tar.gz##解压tar -xzvf frp_0.21.0_linux_amd64.tar.gz##进入目录cd frp_0.21.0_linux_amd64##删除服务端相关的文件rm -rf frps*

二、 客户端部署(内网服务器),首先删掉frps、frps.ini两个文件,然后再进行配置,vi ./frpc.ini

[common]server_addr = x.x.x.x   //服务端的IP地址server_port = 7000[ssh]type = tcplocal_ip = 127.0.0.1local_port = 22remote_port = 6000[nas]type = httplocal_ip = 192.168.0.100   //nas的局域网iplocal_port = 5000custom_domains = nas.example.com

编辑客户端的配置文件frpc.ini

[common]server_addr = x.x.x.x   //服务端的IP地址,#公网服务器ipserver_port = 7000  #与服务端bind_port一致[ssh]type = tcp #连接协议local_ip = 192.168.0.100 #内网服务器iplocal_port = 22#ssh默认端口号remote_port = 6000#自定义的访问内部ssh端口号#公网访问内部web服务器以http方式[nas]type = http#访问协议local_ip = 192.168.0.100   //nas的局域网iplocal_port = 5000 custom_domains = www.hao7a.com#所绑定的公网服务器域名,一级、二级域名都可以

运行客户端frp,保存然后执行./frpc -c ./frpc.ini启动,这是前台启动,后台启动命令为nohup ./frpc -c ./frpc.ini &

windows下双击frpc.exe或者用命令 frpc -c frpc.ini即可启动客户端

nohup ./frpc -c ./frpc.ini > info.log 2>&1 & echo $! > tpid

有个问题:能像ngrok那样显示每个http请的信息吗?用来做微信端web开发的,需要知道微信服务端和用户都请求了什么,ngrok就可以通过客户端的一个本地端口来显示这些信息,并向内网模拟重新发起请求。

网友给出的解决方案:
觉得这类功能更适合添加一个HTTP代理服务器来实现,比如:
weixin--->frps---->frpc---->http-proxy--->http-source
这样frpc只要能够支持http的代理服务即可,而http-proxy你就有N总成熟的方案可以选择。
filldder, charles, 这两个可能是用的最多的,这个功能交给专业的 HTTP Proxy 工具好了,没必要重复造轮子。Python 用 mitmproxy,nodejs 用 anyproxy。

(以上仅仅是笔记,供学习交流)

charles请求转发_用免费开源的frp实现内网穿透,使用nginx转发的方式去掉端口号...相关推荐

  1. 内网穿透及端口转发(下)

    0x05 ICMP隧道 注意:在搭建ICMP隧道的时候切记把自身的icmp关闭 (sysctl -w net.ipv4.icmp_echo_ignore_all=1) ptunnel ptunnel, ...

  2. 花生壳免费实现Linux主机的内网穿透,可通过SSH、SCP远程访问

    进入花生壳 官网,选择linux版花生壳并下载: Ubuntu Linux(X86_64)就是适用于64位ubuntu 安装花生壳软件: sudo dpkg -i phddns_5_1_amd64.d ...

  3. 用frp开源工具,实现内网穿透(详细教程)

    上一篇文章,讲了"穿透届的骨灰级软件工具",点击查看. 选取其中的frp内网穿透方式,给大家分享本此教程供大家参考. ^ - ^ 如果你有一台云服务器(有公网IP),或者有使用权, ...

  4. 【免费】傻瓜式一键内网穿透实现ssh连接远程局域网的电脑(利用免费frp服务器)

    frp 是一个专注于内网穿透的高性能的反向代理应用,支持 TCP.UDP.HTTP.HTTPS 等多种协议.可以将内网服务以安全.便捷的方式通过具有公网 IP 节点的中转暴露到公网. 文档:https ...

  5. Centos使用lanproxy,搭建一个属于自己的内网穿透服务器(附转发失败解决方法),小白向

    目录 前言 准备工作 搭建与使用 1. 安装git工具 2. 安装java环境 3. 安装maven工具 4. 搭建Lanproxy 5. 启动内网穿透服务 6. 设置开机自启 转发失败解决方法 前言 ...

  6. 利用NAS免费部署动态解析实现内网穿透

    ‍ 想要从外网访问家中的NAS等设备,一般来说我们需要知道家中路由器的公网IP. 现在固定的公网IP基本上很难免费申请到了,但是一般来说运营商可以免费提供一个动态变化的公网IP:当路由设备重启时,运营 ...

  7. 群晖网络不通_群晖系统安装zerotier one进行内网穿透过程中常见问题及解决方法...

    群晖系统安装zerotier one进行内网穿透过程中常见问题及解决方法 2020-07-28 17:27:39 21点赞 330收藏 31评论 zerotier one是一款很好用的P2P内网穿透软 ...

  8. 内网穿透+nginx转发

    内网穿透加nginx转发实现本地服务远程访问 前言 一.关于内网穿透 介绍 内网穿透常用工具 二.安装nginx(docker方式) 拉取镜像并启动 创建文件挂载目录(老规矩了) 重新创建并启动ngi ...

  9. 红蓝对抗之隧道技术第二篇(reGeorg内网穿透、SSH隧道本地Socks代理、SSH远程转发、Earthworm Socks5代理、Tunna正向代理、ICMP隧道、DNS隧道、Frp穿透)

    文章目录 隧道应用 reGeorg内网穿透 SSH本地转发(正向) 场景一 场景二 SSH远程转发(反向) Earthworm Socks5代理 正向代理 反向代理 Tunna正向代理 ICMP隧道 ...

最新文章

  1. java List集合总结
  2. 文本向量表示及TFIDF词汇权值
  3. PHP-代码审计-审计第一步
  4. Cisco 2811 IOS 升级实战
  5. Iterable 超级接口
  6. 关于CentOS-6的默认带的mysql启动和安装问题
  7. 从苹果 M1 看芯片技术发展趋势
  8. std::string与output-operator的兼容问题
  9. 循环移动(cyclic)
  10. PHP设计模式 之 单例模式(封装PDO)
  11. 达观智能制造知识图谱平台助力实现先进制造业“十四五”规划
  12. 2018DeeCamp面试题目
  13. 何凯明深度残差网络翻译
  14. NOIP2017提高成绩
  15. html图片垂直居中的方法,CSS图片垂直居中实现方法详解
  16. 不要过分相信基础函数, 因为那也是人写的------警惕负负得正的现有逻辑之坑
  17. 【Practical】积分第一中值定理
  18. 360安全浏览器,默认打开 极速模式。
  19. DSG-01-2B3B-A110-51T、DSG-01-2B3B-A100-70电磁控制换向阀
  20. 计算机毕业设计(附源码)python银行服务评价系统

热门文章

  1. excel匹配_Excel中的数据匹配和查找
  2. delphi edit里面的文字如何添加下划线_标题设计如何处理更吸引人?来看设计高手的实用技巧...
  3. 虚拟网络的组建和应用课后习题答案
  4. c语言求随机数的中位数,定义一个随机变量,选出这个随机变量的中位数
  5. 通过网络使用其他计算机串口,串口如何连接两台电脑?两台电脑不能通过网线,仅能通过串口或者并口连接...
  6. Scrapped or attached views may not be recycled. isScrap:false isAttached:true错误
  7. python保存运行结果下次使用_将python运行结果保存至本地文件中的示例讲解
  8. Android通过使用系统广播监听网络状态的改变
  9. php数组foreach循环添加键值对_在PHP的foreach循环中插入一个$key作为变量
  10. nodejs mysql 连接池初始化_nodejs之mysql连接池