mac和centos编译部署frp实现http内网穿透
程序员文章站
2022-03-02 10:21:54
...
环境要求:
linux : gcc 版本 4.8.5 20150623 (Red Hat 4.8.5-36) (GCC)
mac : Apple LLVM version 10.0.0 (clang-1000.11.45.5)
第一步:安装Go
1. 都是使用第三方的包管理工具进行安装,centos使用yum安装,mac使用brew安装
2. 安装命令:
- centos:
yum install -y go
- mac:
brew install go
3. 注意点:如果使用yum安装速度很慢的话,可以使用国内的下载源进行加速,具体操作如下:
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
yum clean all
yum makecache
第二步:编译frp,mac和linux操作相同
1. 从github上拉取源码git clone https://github.com/fatedier/frp.git
2. 进入目录,使用make
进行编译
3. 注意点:在编译的过程中go会下载第三方的库,这个时候如果你的网访问不了要下载的库的网址的话,make会失败。解决方法如下:
export GO111MODULE=on
export GOPROXY=https://goproxy.io
第三步:配置frp
编译成功之后,可以发现make的目录下多了一个bin文件夹,进入其中可以看到如下文件,其中frpc是客户端(client),frps是服务器端(server)
-rwxr-xr-x 1 root root 12586997 3月 13 19:17 frpc
-rwxr-xr-x 1 root root 13420350 3月 13 19:17 frps
这里是要将mac上的8080端口暴露到外网上,因此借助云主机centos当服务端来进行操作。
服务端配置
在bin目录下新建一份frps.ini文件,并写入以下内容,具体配置文件可以去frp的github项目查看
[common]
#frp服务器监听地址,如果是IPV6地址必须用中括号包围
bind_addr = 0.0.0.0
#frp服务器监听端口
bind_port = 7000
#kcp的udp监听端口,如果不设那就不启用
#kcp_bind_port = 7000
#指定使用的协议,默认tcp,可选kcp
#protocol = kcp
#如果要使用vitual host,就必须设置
vhost_https_port = 4430
vhost_http_port=800
privilege_mode = false
#Web后台监听端口
dashboard_port = 7777
#Web后台的用户名和密码
dashboard_user = xxx
dashboard_pwd = xxx
#Web后台的静态资源目录,调试用的,一般不设
#assets_dir = ./static
#日志输出,可以设置为具体的日志文件或者console
log_file = ./frps.log
#日志记录等级,有trace, debug, info, warn, error
log_level = debug
#日志保留时间
log_max_days = 3
#启用特权模式,从v0.10.0版本开始默认启用特权模式,且目前只能使用特权模式
#privilege_mode = true
#特权模式Token,请尽量长点且复杂
privilege_token = 12345678
#特权模式允许分配的端口范围
#privilege_allow_ports = 2000-3000,3001,3003,4000-50000
#心超时,不用改
#heartbeat_timeout = 90
#每个代理可以设置的连接池上限
#max_pool_count = 5
#认证超时时间,一般不用改
#authentication_timeout = 900
#如果配置了这个,当你的模式为http或https时,就能设置子域名subdomain
subdomain_host =
#是否启用tcp多路复用,默认就是true,不用管
#tcp_mux = true
实际上也不用像上面配置那么多,只需要选取最上面几个配置即可,这里只是贴一下完整配置
启动 ./frps -c frps.ini
客户端配置
在bin目录下新建一份frpc.ini文件,并写入以下内容,具体配置文件可以去frp的github项目查看
[common]
server_addr = madongyu.ml
server_port = 7000
#if you want to connect frps by http proxy or socks5 proxy, you can set http_proxy here or in global environment variables
# it only works when protocol is tcp
# http_proxy = http://user:[email protected]192.168.1.128:8080
# http_proxy = socks5://user:[email protected]192.168.1.128:1080
# console or real logFile path like ./frpc.log
#log_file = ./frpc.log
# trace, debug, info, warn, error
log_level = debug
#log_max_days = 3
#启用压缩
use_compression = true
# for authentication
privilege_token = 12345678
#无法使用
#token = 12345678
#http代理
[HTTP]
type = http
local_ip = 127.0.0.1
local_port = 8080
#自己的域名
custom_domains = xxxx
remote_port = 800
启动 ./frpc -c frpc.ini