frp 内网穿透

来源:互联网 发布:tplink访客网络是什么 编辑:程序博客网 时间:2024/04/30 15:19

frp 内网穿透

  • frp 内网穿透
    • 准备工作
      • 安装依赖环境
      • 下载go支持包
      • 解压go包
      • 添加环境变量
    • frp安装
      • 下载源代码
      • 安装
        • 配置服务端参数frpsini建议在服务器修改的时候去掉注释可能会出现莫名其妙的编码问题
      • 启动服务端 frps
      • 添加开机启动frp服务端
        • 配置客户端参数frpcini
      • 启动客户端 frpc
    • 遇到问题

准备工作:

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支持包

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/goexport GOBIN=/usr/local/go/binexport PATH=$PATH:$GOBINexport 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/frpmake

编译安装后,可以看到 bin 目录下有frpc frps文件。

[root@inke bin]# pwd/usr/local/gopath/src/github.com/fatedier/frp/bin[root@inke bin]# lsfrpc  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内网穿透服务器端监听的端口,默认是7000bind_port = 7000#frp内网穿透服务器可以支持虚拟主机的http和https协议,一般我们都用80,可以直接用域名而不用增加端口号,如果使用其它端口,那么客户端也需要配置相同的其他端口。vhost_http_port = 80vhost_https_port = 443dashboard_user = admin  #管理面板账号dashboard_pwd = admin   #管理面板密码# 这个是frp内网穿透服务器的web界面的端口,可以通过http://你的ip:7500查看frp内网穿透服务器端的连接情况,和各个frp内网穿透客户端的连接情况。dashboard_port = 7500auth_token = 123# 方括号内的ssh是代理名称,在同一个frp穿透服务器下的代理名称不能重复,否则不能启动。# bind_addr是frp客户端内网的ip,也可以是客户端内网同一局域网下的其他IP[ssh]##### type = tcpbind_addr = 0.0.0.0listen_port = 6000[web01]#http类型的内网穿透,必须设置vhost_http_port,并且所有的http类型的客户端都将通过同一个vhost_http_port访问。type = http# custom_domains是通过frp服务器端访问客户端的域名,必须输入完整的域名,# 并且不能是subdomain_host的子域名,否则frp服务不能启动,并且相应的域名需要解析到frp服务器端的公网IP并等待解析生效后,才可以使用。custom_domains = zhishilingyu.com

启动服务端 frps:

./frps -c ./frps.ini
  • 查看 frp 进程

    ps -aux | grep frp

添加开机启动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.45server_port = 7000auth_token = 123[ssh]type = tcplocal_ip = 127.0.0.1local_port = 22remote_port = 6000[web01]#http类型的内网穿透,必须设置vhost_http_port,#并且所有的http类型的客户端都将通过同一个vhost_http_port访问。type = httplocal_ip = 127.0.0.1local_port = 8089custom_domains = web.zhishilingyu.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.zhishilingyu.com,
这个的前提条件是要在阿里云的域名解析添加泛匹配