编译 frp 更改自带的错误页面

发布于 2020-02-08  2,686 次阅读


基于国内特殊的网络环境,所以一直在使用 frp 进行内网的穿透和访问,不过 frp 默认的错误页面会提示一句:

The server is powered by frp.

可能会给某些别有用心的人士进行攻击,造成使用上的风险。

我自己会比较介意,所以需要把它改掉。

不过这个页面是硬编译在文件里面的,没有办法通过配置文件更改,只能下载源编译了。

好在编译的过程非常简单

搭建GO环境

安装依赖
# Ubuntu
$ sudo apt-get install bison ed gawk gcc libc6-dev make
# CentOS
$ sudo yum install gcc

下载go支持包
各版本的下载地址 https://golang.org/dl/。
$ wget https://dl.google.com/go/go1.13.7.linux-amd64.tar.gz
解压go包
$ sudo tar -C /usr/local -xzf go1.13.7.linux-amd64.tar.gz
添加环境变量和go工作区
$ vim /etc/profile
在文件的底部添加以下两行:

export PATH=$PATH:/usr/local/go/bin
export GOPATH=/usr/local/gopath
:wq 保存退出后,重新加载环境变量

$ source /etc/profile
测试
$ mkdir -p /usr/local/gopath && cd /usr/local/gopath
$ vim test.go
简单的打印测试:

package main
import "fmt"
func main() {
fmt.Println("Hello World!")
}
使用go编译运行:
$ go run test.go
Hello World!

至此,go环境搭建完毕。

修改代码

下载frp源码

$ go get github.com/fatedier/frp

在编译之前先找到默认页面的代码文件:

/usr/local/gopath/src/github.com/fatedier/frp/utils/vhost/resource.go

找到文件的第47行

把以下的代码全部删除后保存

<p>The server is powered by <a href="https://github.com/fatedier/frp">frp</a>.</p>
<p><em>Faithfully yours, frp.</em></p>

编译文件

$ cd /usr/local/gopath/src/github.com/fatedier/frp/
$ make

如需交叉编译
$ make -f Makefile.cross-compiles</br >

编译好的文件在这里

/usr/local/gopath/src/github.com/fatedier/frp/bin

最后把编译好的 frps 文件从你的服务器上替换掉就好啦。

 

参考来源:
https://bingozb.github.io/55.html
https://www.taterli.com/5101/


时间是伟大的作家,总会写下完美的结局。