300字范文,内容丰富有趣,生活中的好帮手!
300字范文 > charles请求转发_用开源的frp实现内网穿透 使用nginx转发的方式去掉端口号...

charles请求转发_用开源的frp实现内网穿透 使用nginx转发的方式去掉端口号...

时间:2020-07-03 08:37:18

相关推荐

charles请求转发_用开源的frp实现内网穿透 使用nginx转发的方式去掉端口号...

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

frp的github地址 :/fatedier/frp

frp的下载地址:/fatedier/frp/releases

一、服务端部署

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

##下载对应版本的Frpwget /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 查看效果&&隐藏端口号,访问浏览器控制面板

访问:8080

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

##下载对应版本的Frpwget /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 =

编辑客户端的配置文件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 = #所绑定的公网服务器域名,一级、二级域名都可以

运行客户端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。

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

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。