frp 内网穿透
更新日志:
20170805 更新配置80端口
[toc]
准备工作:
centos 7.2 环境
安装依赖环境:
软件安装在/usr/local
下
cd /usr/local
sudo apt-get install bison ed gawk gcc libc6-dev make
或
sudo yum install bison ed gawk gcc libc6-dev make
下载go支持包
访问官方地址:
https://golang.org/dl/
下载64位路径:https://dl.google.com/go/go1.13.6.linux-amd64.tar.gz
sudo wget https://www.golangtc.com/static/go/1.8.3/go1.8.3.linux-amd64.tar.gz
如果下载失败,那么老版本可能没有了,打开路径查看最新版本 http://www.golangtc.com/static/go/
解压go包
cd /usr/local
tar -xzvf go1.8.3.linux-amd64.tar.gz
添加环境变量
vim /etc/profile
在最后加入:
export GOROOT=/usr/local/go
export GOBIN=/usr/local/go/bin
export PATH=$PATH:$GOBIN
export GOPATH=/usr/local/gopath
使添加四行变量生效:
source /etc/profile
frp安装
下载源代码
go get github.com/fatedier/frp
安装
需要在$GOPATH/src/github.com/fatedier/frp
目录下进行编译和安装。
上面指定的是:GOPATH=/usr/local/gopath
,所以我们进入
cd /usr/local/gopath/src/github.com/fatedier/frp
make
编译安装后,可以看到 bin 目录下有frpc frps
文件。
[root@inke bin]# pwd
/usr/local/gopath/src/github.com/fatedier/frp/bin
[root@inke bin]# ls
frpc frps static
配置服务端参数:frps.ini
,建议在服务器修改的时候去掉注释,可能会出现莫名其妙的编码问题。
[common]
# binde_addr是指定frp内网穿透服务器端监听的IP地址,默认为127.0.0.1,
#如果使用IPv6地址的话,必须用方括号包括起来,比如 “[::1]:80”, “[ipv6-host]:http” or “[ipv6-host%zone]:80”
bind_addr = 0.0.0.0
# bind_port 是frp内网穿透服务器端监听的端口,默认是7000
bind_port = 7000
#frp内网穿透服务器可以支持虚拟主机的http和https协议,一般我们都用80,可以直接用域名而不用增加端口号,如果使用其它端口,那么客户端也需要配置相同的其他端口。
vhost_http_port = 80
vhost_https_port = 443
dashboard_user = admin #管理面板账号
dashboard_pwd = admin #管理面板密码
# 这个是frp内网穿透服务器的web界面的端口,可以通过http://你的ip:7500查看frp内网穿透服务器端的连接情况,和各个frp内网穿透客户端的连接情况。
dashboard_port = 7500
auth_token = 123 #如果配置那么需要校验
# 方括号内的ssh是代理名称,在同一个frp穿透服务器下的代理名称不能重复,否则不能启动。
# bind_addr是frp客户端内网的ip,也可以是客户端内网同一局域网下的其他IP
[ssh]
##### type = tcp
bind_addr = 0.0.0.0
listen_port = 6000
[web01]
#http类型的内网穿透,必须设置vhost_http_port,并且所有的http类型的客户端都将通过同一个vhost_http_port访问。
type = http
# custom_domains是通过frp服务器端访问客户端的域名,必须输入完整的域名,
# 并且不能是subdomain_host的子域名,否则frp服务不能启动,并且相应的域名需要解析到frp服务器端的公网IP并等待解析生效后,才可以使用。
custom_domains = zhishi.com
启动服务端 frps:
./frps -c ./frps.ini
-
查看
frp
进程ps -aux|grep frp| grep -v grep root 3600 0.1 0.1 110188 9484 pts/0 Sl 15:04 0:00 ./frpc -c ./frpc.ini
** 然后kill -9 进程号
kill -9 3600
添加开机启动frp服务端
-
centos:
chmod +x /etc/rc.d/rc.local && vi /etc/rc.d/rc.local
把下面的内容粘贴到文件末尾。
/usr/local/gopath/src/github.com/fatedier/frp/bin/frps -c /usr/local/gopath/src/github.com/fatedier/frp/bin/frps.ini
-
Ubuntu/Debian系统:
chmod +x /etc/rc.local && vi /etc/rc.local
把下面的内容粘贴到文件末尾。
/usr/local/gopath/src/github.com/fatedier/frp/bin/frps -c /usr/local/gopath/src/github.com/fatedier/frp/bin/frps.ini
配置客户端参数:frpc.ini
[common]
server_addr = 23.106.147.45
server_port = 7000
auth_token = 123
[ssh]
type = tcp
local_ip = 127.0.0.1
local_port = 22
remote_port = 6000
[web01]
#http类型的内网穿透,必须设置vhost_http_port,
#并且所有的http类型的客户端都将通过同一个vhost_http_port访问。
type = http
local_ip = 127.0.0.1
local_port = 80
custom_domains = web.zhishi.com
启动客户端 frpc:
./frpc -c ./frpc.ini
重启客户端 frpc:
frpc -c ./frpc.ini --reload
遇到问题:
Parse conf error: proxy [web01] custom_domains and subdomain should set at least one of them
因为客户端的配置文件没有添加子域名,即custom_domains = web.zhishi.com
,
这个的前提条件是要在阿里云的域名解析添加泛匹配