前言
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主路由器进行的。详细见电信光猫拨号上网的内网穿透操作
- 下载
linux_mipsle.tar.gz
后缀文件。 - 解压到指定位置之后,
vim frps.ini
:
[common]
bind_port = 7000
dashboard_port = 7500
dashboard_user = user
dashboard_pwd = password
- 启动
./frps -c ./frps.ini
,打开路由器IP:7500
就可以登录dashboard。
内网穿透注意:
- 路由器IP:内部端口7000和7500,对应转发至公网IP:外部端口a和b。
- 之后就可以通过
公网IP:外部端口b
访问dashboard。
二、待访问的目标服务器(客户端),使用frpc
,frpc.ini
。
- 下载解压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
- 启动
./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的绝对路径。
- 服务器
nohup /path/to/frps -c /path/to/frps.ini >/path/to/frps.log &
- 客户端
nohup /path/to/frpc -c /path/to/frpc.ini >/path/to/frpc.log &