前言

frp安装地址:
https://github.com/fatedier/frp/releases 需要一台有公网IP的服务器(服务端B)走反向代理,手头上的电脑(客户端A),需要访问的目标服务器(客户端C,无公网IP)

流程:客户端A想访问客户端C,但是客户端C没公网IP,没办法直接访问,这时候可以通过先访问有公网IP的服务端B,服务器B和客户端C需要先组建一个类似局域网的环境(frp),然后让服务端B走流量访问客户端C,并将内容返回给客户端A。
反向代理是服务端B设置的。

流程

一、小米路由器3(服务器),使用frps,frps.ini
提一嘴,我的小米路由器(192.168.0.101)是自己房间内,有公网IP的主路由器(192.168.0.1)是在客厅,所以我设置了中继模式,可以通过192.168.0.101访问小米路由器(一级地址),否则是192.168.31.1(二级地址),操作更加麻烦。后续转口转发是通过192.168.0.1主路由器进行的。详细见电信光猫拨号上网的内网穿透操作

  1. 下载linux_mipsle.tar.gz后缀文件。
  2. 解压到指定位置之后,vim frps.ini:
[common]
bind_port = 7000
dashboard_port = 7500
dashboard_user = user
dashboard_pwd = password
  1. 启动./frps -c ./frps.ini,打开路由器IP:7500就可以登录dashboard。
    内网穿透注意:
  • 路由器IP:内部端口7000和7500,对应转发至公网IP:外部端口a和b。
  • 之后就可以通过公网IP:外部端口b访问dashboard。

二、待访问的目标服务器(客户端),使用frpc,frpc.ini

  1. 下载解压frpc_xxx_.tar.gz,修改vim frpc.ini:
[common]
server_addr = 路由器IP或公网IP
server_port = 7000或外部端口a
[ssh]
type = tcp
local_ip = 127.0.0.1
local_port = 22
remote_port = 8000
  1. 启动./frpc -c ./frpc.ini,打开dashboard的TCP发现多了一条链接即成功。 此时通过ssh路由器IP:8000就可以访问目标服务器了,但一般还要进一步内网穿透到公网使用。
    内网穿透注意:
  • 路由器IP:8000【remote_port 】转发至公网IP:外部端口c。
  • 之后就可以通过公网IP:外部端口c访问目标服务器了。

三、加入开机启动项

sudo su #切换root权限
vim /etc/rc.local

exit 0之前加入以下代码,将/path/to/改为frp的绝对路径。

  1. 服务器
nohup /path/to/frps -c /path/to/frps.ini >/path/to/frps.log &
  1. 客户端
nohup /path/to/frpc -c /path/to/frpc.ini >/path/to/frpc.log &