从 GitHub 下载相应的服务器端和客户端。
服务器环境: Linux x64
客户端 Mac/Linux
当前使用服务器 Linux x64 ,所以在服务器下载 frp_0.20.0_linux_amd64.tar.gz
# frp_0.20.0_linux_amd64.tar.gz # 服务器端# 在服务器端下载wget https://github.com/fatedier/frp/releases/download/v0.20.0/frp_0.20.0_linux_amd64.tar.gz# 解压压缩包tar -xzf frp_0.20.0_linux_amd64.tar.gz
解压出来如下 7 个文件。
frpc # 客户端 linux 程序frpc_full.ini # 客户端 所有配置frpc.inifrps # 服务端 linux 程序frps_full.ini # 服务端 所有配置frps.iniLICENSE
编辑配置信息 frps.ini
[common]bind_port = 7000# auth tokentoken = frpss
服务端配置需要有一个外网可以访问的ip,假设我的 ip 是 140.111.185.100
, 当前服务对外端口为 7000
# 服务在后台运行# nohup 保障进程不会被hangup信号异常中断;nohup ./frps -c frps.ini >> frps.log 2>&1 &./frps -c frps.ini >> frps.log 2>&1 &
假设我的客户端是一台 linux 服务器,我想通过我的 Mac 电脑,ssh 去访问这台客户端,那么我们需要将刚才 frp_0.20.0_linux_amd64.tar.gz
解压出来的 frpc.ini
进行配置
[common]server_addr = 140.111.185.100 # 服务端对外 IPserver_port = 7000 # 服务端口号token = frpss # 保持跟服务端一直的 token[ssh]type = tcplocal_ip = 127.0.0.1local_port = 22remote_port = 6000 # 服务器端对外提供本机服务的端口号
配置好之后运行
# 客户端服务在后台运行./frpc -c frpc.ini >> frpc.log 2>&1 &
我们通过 (C)电脑,访问 frp (A)服务器,跳转到 (B) 客户端进行访问
ssh root@140.111.185.100 -p 6000
本地机器没有公网 IP,通过有外网 IP 的服务器,访问本地机器服务。
服务端暴露出两个端口号,7000 为 frp 服务端口号,7200 为 http 代理端口号,确保两个端口号没有被防火墙拦截。
[common]bind_port = 7000# auth tokentoken = token123subdomain_host = domain.cn # 自定义域名vhost_http_port = 7200 # 服务端web端口# 浏览器查看 frp 的状态以及代理统计信息展示dashboard_port = 7100dashboard_user = admindashboard_pwd = admin123
服务端 frps 启动
# 服务在后台运行./frps -c frps.ini >> frps.log 2>&1 &
[common]server_addr = 140.111.185.100 # 服务端IP地址server_port = 7000 # 服务端 frpc 服务端口号token = wcj[web]type = httplocal_port = 9981 # 本地服务 端口号subdomain = test # 分配一个二级域名
客户端 frpc 启动
# 服务在后台运行./frpc -c frpc.ini >> frpc.log 2>&1 &
启动完成之后,根据分配的二级域名来访问 http://test.domain.cn:7200