RSS订阅专注X86/ARM架构技术
博客交流QQ群693563350 赞助本站
你现在的位置:网站首页 / FRP教程 / 正文内容

老毛子固件使用frp进行内网穿透

64360 FRP教程 | 2016年09月08日

暗月已经更新了,最新老毛子固件已内置frpc
以下当教程就好


一直在用暗月的老毛子固件,赶脚现在8月8日的版本很赞了已经

然而近期有一个需要在外网访问内网某资源的需求,然后看到老毛子固件集成了ngrok

然后使用小宝的一键安装搞半天还是没成,一怒之下去各种找替代ngrok的方案

一不小心在github上找到一个小清新,那就是frp

frp主页
https://github.com/fatedier/frp

作者也是因为受不了ngrok,然后自己整了这个方案

frp方案优势

  1. 1、作者已经编译了各平台的二进制包,无需自己编译

  2. 2、配置简单,只有一个主配置文件,并且服务端配好后其实可以不用再上去配了

  3. 3、不占用服务端80端口,服务器还是可以起nginx对外服务的

  4. 4、支持转发tcp http,支持ssh

  5. 5、暗月编译了一个支持mips32le的版本

复制代码



不夸了,各位自己看作者的帮助就好,中文帮助在此

  1. https://github.com/fatedier/frp/blob/master/README_zh.md

复制代码



我们开始配置吧

各种平台的下载
https://github.com/fatedier/frp/releases


服务端:

如果你的服务器是linux 64位,请下载
https://github.com/fatedier/frp/releases/download/v0.8.0/frp_0.8.0_linux_amd64.tar.gz

#解压

  1. tar zxvf frp_0.8.0_linux_amd64.tar.gz

复制代码



我的服务端配置

------ 配置分割线 ----

  1. [common]

  2. bind_port = 7000

  3. dashboard_port = 7500

  4. vhost_http_port = 80

  5. privilege_mode = true

  6. privilege_token = 12345

  7. max_pool_count = 50

  8. log_file = ./frps.log

  9. log_level = info

  10. log_max_days = 3

复制代码



------ 配置分割线 ----


把以上内容存成myfrps.ini

然后执行

  1. ./frps -c ./myfrps.ini&

复制代码



即可完成服务端配置和启动


客户端:

由于我们使用的是mtk7620方案,作者并没有提供32bit版的mips32le
然后没关系,我们的暗月同志给编译了一份
https://pan.baidu.com/s/1czbqiU 密码: he7w

下载回来后上传到路由器的/opt 目录里

  1. tar zxvf 你下回来的gz包

复制代码



然后我们新建客户端配置


------ 配置分割线 ----

  1. [common]

  2. server_addr = 远端frp服务器ip

  3. server_port = 7000

  4. privilege_token = 12345


  5. [web]

  6. privilege_mode = true

  7. remote_port = 6000

  8. type = http

  9. local_port = 80

  10. use_gzip = true

  11. custom_domains = 你公网访问的域名

  12. host_header_rewrite = 实际你内网访问的域名,可以供公网的域名不一致,如果一致可以不写


复制代码



------ 配置分割线 ----

注意,这里的host_header_rewrite 是指你想访问客户机的那个ip或者域名,我这里指向的是127.0.0.1
local_port是指你的服务端口,我这里是81,也就是老毛子里的探针那个端口


把以上配置存成myfrpc.ini
然后执行

  1. ./frpc -c ./myfrpc.ini

复制代码



即可启动
以上配置我没有加&是先不放入后台,可以调试
如果一切正常后,配置里增加

------ 配置分割线 ----

  1. log_file = /dev/null

  2. log_level = info

  3. log_max_days = 3

复制代码


------ 配置分割线 ----

然后使用

  1. ./frpc -c ./myfrpc.ini &

复制代码


方式以静默并且后台的方式启动客户端
不要问我为啥日志不存起来,而是指向到/dev/null
我只能告诉你,如果你指向到一个具体的问题,哪怕是/tmp目录,会在第二次启动的时候报错


附上frp的mips32编译过程

#下载go-mips32源
git clone https://github.com/gomini/go-mips32.git
cd go-mips32/src

#配置GO编译参数
export GOOS=linux
export GOARCH=mips32le

#执行编译
./make.bash
cd ..

#创建编译后文件存放文件夹
sudo mkdir /opt/mipsgo

#复制
sudo cp -R * /opt/mipsgo

#下载frp源
cd /root/
git clone https://github.com/fatedier/frp.git
cd frp

#配置GO编译参数
export GOPATH=/opt/mipsgo/src/gocode
export GOOS=linux
export GOARCH=mips32le
export GOROOT=/opt/mipsgo
export PATH=/opt/mipsgo/bin:$PATH

#下载依赖(如果提示缺依赖就手动添加命令下载)
go get -v  github.com/docopt/docopt-go
go get -v  github.com/fatedier/frp/src/models/client
go get -v  github.com/fatedier/frp/src/utils/log
go get -v  github.com/fatedier/frp/src/utils/version
go get -v  github.com/mitchellh/gox
go get -v  github.com/rakyll/statik

#执行编译
go fmt ./src/...
go fmt ./test/echo_server.go
go fmt ./test/http_server.go
go fmt ./test/func_test.go
go build -o bin/frps ./src/cmd/frps
go build -o bin/frpc ./src/cmd/frpc
go build -o test/bin/echo_server ./test/echo_server.go
go build -o test/bin/http_server ./test/http_server.go

#bin文件夹里面就是主程序

本文链接:http://www.right.com.cn/forum/forum.php?mod=viewthread&tid=191839&highlight=%C0%CF%C3%AB%D7%D3%B9%CC%BC%FE%CA%B9%D3%C3frp


上一篇:电脑能ping通但是不能上网的解决方法

下一篇:什么是DNS?

猜你喜欢