找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 13458|回复: 0

ngrok类似软件FRP编译教程

[复制链接]
发表于 2017-4-7 11:02:21 | 显示全部楼层 |阅读模式
一、简介# l9 l$ C) U& E, ]2 Z# ]8 G4 f
# R- ?) D; n! k9 E) V5 w" q
众所周知,国内运营商的家用宽带大多不提供公网IP,这就导致家中或公司中的设备无法通过外网直接访问,这时就需要我们利用内网穿透工具,如花生壳、Ngrok等。最近GitHub上出现了一款叫做FRP的内网穿透工具,使用非常简便(GitHub地址:FRP-内网穿透工具)。由于我刚开始关注该软件时,作者并不提供编译好的mipsle架构版本(如newifi、斐讯k1、小米路由3等均为此架构),而我又想在路由器上运行FRP,所以只能硬着头皮研究GO程序的编译,由于自己基础薄弱,进展很慢。通过几天的研究和众位大神的指点,终于搞定了,然而搞定之后,我却发现作者发布新版本的同时,提供了编译好mipsle版本,哎。不过还是把这个教程发布出来,就算是给自己留个笔记了。3 \  C3 R( S( @" Y
6 X. D& p: J. ~% s# J. i' U3 l
二、GO编译环境的安装* u- f3 m  l7 u
8 Y( k& P& h6 M# o' y" H9 d, u
FRP的编译教程,网上并不是没有,比如这个和这个,但是这两个教程,都是需要先编译一个go-mips32,也就是一个可以编译生成mips架构软件的GO编译环境才行。然而GitHub上这个go-mips32看起来已经年久失修,而且是基于GO1.4版本的,最新的GO已经1.8了,而且在我的Ubuntu16.10上,这个go-mips32编译总是不成功(不过在debian上没问题,搞不懂)。通过咨询FRP的作者,了解到GO1.8版本已经支持了交叉编译,可以直接编译任意架构的二进制文件,所以直接安装GO1.8就可以了,下面先说说GO1.8的安装配置。
5 r# X0 ~3 Y1 ]" f* v9 ?* A! Q2 j' N/ ^) m8 ?- ~
1、首先要先准备一个干净的Linux操作系统,Ubuntu啊,Debian啊,都可以,并在用户文件夹下新建一个文件夹,用来存放GO1.8,本文以建立的文件夹名为GOFiles为例。; ~3 ]# v- y' |6 R

' w2 s4 H1 F4 O# n, q! {  Q2、到https://golang.org/dl/的最下面下载对应你CPU型号的压缩包,我的虚拟机是32位CPU的,所以下载的是go1.8.linux-386.tar.gz,注意一定要下载1.8版本的。
1 ~4 t0 g; c" `, A2 R1 Y! r* K$ ^
: n9 r6 f$ i  c/ \0 v4 r3、进入压缩包的下载目录,运行如下命令解压,将GO1.8安装到/home/dave/GOFiles(这样可以防止后期需要用root用户才能编译),请注意更换压缩包名。以用户名dave为例
( w+ C- Y$ ]+ g( L
% k, D/ @+ }. f  h2 z% Z! fsudo tar -C /home/dave/GOFiles -xzf go1.8.linux-386.tar.gz
2 L- ~% X$ d! m+ F4、在用户文件夹下建立一个文件夹,命名自选(本文以用户名dave,文件夹名wksp为例,读者请注意替换为自己的名称)。在wksp下建立一个go文件夹,并在go文件夹内建立三个文件夹,分别命名为src、pkg、bin,请注意这三个文件夹的名称不能修改,必须如此。$ b/ ]- M# r$ z) D% m- u

2 c1 ~7 p  ^  @% A% }1 n# _; k5、修改/etc/profile环境变量,在最后加入如下代码(读者请注意修改路径):
) C6 ^# G- K& @4 \, x( H& P$ Y' c7 y
export PATH=$PATH:/home/dave/GOFiles/go/bin
( |/ t0 x* ]) X: I* y7 @0 |& z' m8 H& ?( p7 P
export GOROOT=/home/dave/GOFiles/go/. ?- J/ p0 Z7 N  |0 d7 L  {
$ N* }% F# j1 d; C
export GOPATH=/home/dave/wksp/go# l; ^4 @9 u7 r" E& l  |  c9 g0 v) s" T
6、重启系统,进入终端,运行如下命令:' D2 V  d& ~9 f( H' H7 d$ ^% k
. e( `' ~3 D  G. Q) S4 Y: n9 ]
go version
, O+ E' F) n2 n7 c4 l4 D如果显示如下,说明GO1.8安装完成。% _+ A- l( F; W9 h( j" N
/ K# g9 ~4 u+ `5 E
go version go1.8 linux/386
8 L6 K# A. U/ Y# g; |4 F9 }三、编译FRP' |1 S1 L  n' L- I

5 g/ S# J' l3 M, o9 B2 _1、最好先升级一下源和软件,运行一下如下命令:
# C7 f; T$ g) Z. X, g7 S9 \# g, s# ~6 ?: l- e0 A  Y4 G7 R. t
sudo apt update
3 R4 r1 R% X7 p  b
: ~# h! b3 R: u( Z; \sudo apt upgrade
  R1 v. ~* W: ?- e8 L2、安装git和make。
7 k1 G! a0 A" ~7 t+ d2 X$ u& }) z- J) P
sudo apt install git make
) P9 ^  l: r: k$ T7 H3、进入/home/dave/wksp/go/src目录9 G! @6 ~" |; w' E6 k

2 |' F. \7 ]4 c( `5 g' C4、运行如下代码下载FRP源码(建议科学上网,不然很慢)( E8 g# k% {+ n. j

8 F- C( Q' b. w7 egit clone https://github.com/fatedier/frp.git
! T. y4 }! r0 m8 }2 _( `5、进入frp目录) ^' B$ r2 S) t- U9 q" l3 w- ?9 p# p
$ r6 A: Y: E+ ?! q& G1 ^3 ~$ o
6、运行如下代码设置目标架构和系统,我的路由器为mipsle架构,Linux系统,如果要编译其他架构和系统的,请替换为相应命令。6 _, {3 l6 W1 I; J  X  R

2 X2 B* }3 p" l* T; Uexport GOARCH=mipsle4 O# D0 r8 }$ @7 _( X! Y
. k. k/ ^. q, ]9 v4 k" N7 c9 |
export GOOS=linux
5 n5 i/ i3 T% Q2 j7 f( _8 n2 B7、逐一运行如下代码,不报错的话,即可完成FRP的编译。
( z9 A" x7 j. y" S3 D
$ U* b" q1 J9 h- m7 _5 M' W, ggo get -v  github.com/docopt/docopt-go. E( X0 O1 |, c! ?# n- j/ Y& l; q# _/ a
. S5 b% _3 r0 q$ j* O& _+ t# k
go get -v  github.com/fatedier/frp/src/models/client# b0 n  u* e. K

( }& }3 X1 G* o/ T3 {9 cgo get -v  github.com/fatedier/frp/src/utils/log
" @# l7 E8 ]! T% B6 E# |9 L6 n! p& N0 P) @4 V' j( d8 I
go get -v  github.com/fatedier/frp/src/utils/version
" l) P  y# Z, Y; p9 {  l* @' ^. V: y7 K6 o) j1 T
go get -v  github.com/mitchellh/gox
- w9 r$ u3 a6 x6 ]
" f! |( s9 }; M0 A5 rgo get -v  github.com/rakyll/statik
( q% u6 M& A5 P& f+ d' q* q/ @4 N
! p; \6 P1 m6 O+ m) z( q- ?make2 h; ^& k+ d0 c$ k9 P$ Y4 z. n+ E
编译好的FPR就在frp/bin目录内。
# o1 j6 r1 N: Z$ F) O开源地址:https://github.com/fatedier/frp
4 L; _3 P% X& @  v6 g) ]: _
) K9 b3 N  Z8 ]! v6 I" N6 E, k' F% l! C, f5 r
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|第一站论坛 ( 蜀ICP备06004864号-6 )

GMT+8, 2026-1-3 01:56 , Processed in 0.051924 second(s), 23 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表