条件
- 需要内网服务器能访问公网
下载
- 在公网服务器和内网机器上都要下载frp安装包并解压:
$ wget https://github.com/fatedier/frp/releases/download/v0.21.0/frp_0.21.0_linux_amd64.tar.gz
$ tar -xzvf frp_0.21.0_linux_amd64.tar.gz
配置
- 公网服务器上修改服务端frps.ini
vim frps.ini
[common]
bind_port = 7000 #frp服务端端口(必须)
vhost_http_port = 8888 #web应用服务端口(部署web应用才必须)
- 内网目标主机修改客户端frpc.ini
vim frpc.ini
[common]
server_addr = xxx.xxx.xxx.xxx #frp服务端地址(公网服务器地址),必须是公网ip或者域名,这里假设为xxx.xxx.xxx.xxx
server_port = 7000 #frp服务端端口,即填写服务端配置中的 bind_port
[ssh]
type = tcp #连接类型,填tcp或udp
local_ip = 127.0.0.1 #填127.0.0.1或内网ip都可以
local_port = 22 #需要转发到的端口,ssh端口是22
remote_port = 6000 #frp服务端的远程监听端口,即你访问服务端的remote_port就相当于访问客户端的(即ssh登录时的端口)
local_port,如果填0则会随机分配一个端口
[web]
type = http #连接类型
local_ip = 127.0.0.1 #填127.0.0.1或内网ip都可以
local_port = 8080 #需要转发到的端口,web项目的端口
custom_domains = test.com #访问时域名加服务端设置的端口即可访问内网web 域名需解析在公网服务器上
运行
- 在公网上运行服务端并且查看查看运行状态
$ nohup ./frps -c frps.ini &
$ tail -f nohup.out # 显示success即成功
- 在内网目标主机上运行客户端并且查看查看运行状态
$ nohup ./frpc -c frpc.ini &
$ tail -f nohup.out
停止
找到并杀死进程
$ ps -aux|grep frp| grep -v grep
root 19764 0.0 0.5 22524 10888 pts/0 Sl Jan07 0:09 ./frps -c frps.ini
$ kill -9 19764