目录
场景说明
首先你需要一台云服务器,frp官方推荐为阿里的
frp能干什么?(可跳过)
【服务端配置:云服务器】
【客户端配置:linux1】
测试效果
拓展
关闭frp
frp映射不同局域网内的主机
映射同一设备多个端口、或同一局域网中的多台设备。
(ps:想要映射不同局域网内主机的方法见文末。)
在家ssh登录公司内网里的服务器
frp能干什么?
frp是一款内网穿透工具,只要你有一台云服务器
运行正确的frp配置,你就可以在任何地方访问内网中的设备
比如,在公司ssh家里的ubuntu,树莓派
或者你有智能家居平台,你也可以在任何地方查看家里的监控信息,甚至控制家居开关。
环境说明:
云服务器商:腾讯
云服务器系统:CentOS 7.4.1708
云服务器frp安装目录:/usr/local
登录你的云服务器,在这里下载frp压缩包并解压到指定位置
# cd /usr/local
# wget http://diannaobos.iok.la:81/frp/frp-v0.20.0/frp_0.20.0_linux_amd64.tar.gz
# tar -zxvf frp_0.20.0_linux_amd64.tar.gz
# cd frp_0.20.0_linux_amd64
查看frp目录下的文件
# ls
frpc frpc_full.ini frpc.ini frps frps_full.ini frps.ini LICENSE
编辑frps.ini中的bind_port值,默认是7000,由于7000被占用所以改为了7055,可不修改
# cat frps.ini
[common]
bind_port = 7055
启动frps,'&'为后台运行:
# ./frps -c frps.ini &
环境说明:
客户端系统:centos7
客户端安装目录:/usr/local
将服务端下载的frp压缩包同样下载至客户端linux1上
# cd /usr/local
# wget http://diannaobos.iok.la:81/frp/frp-v0.20.0/frp_0.20.0_linux_amd64.tar.gz
# tar -zxvf frp_0.20.0_linux_amd64.tar.gz
# cd frp_0.20.0_linux_amd64
修改frpc.ini 如下
# cat frpc.ini
[common]
server_addr = 云服务器IP
server_port = 7055
[ssh55]
type = tcp
local_ip = 127.0.0.1
local_port = 22
remote_port = 2255
[ssh56]
type = tcp
local_ip = 192.168.1.56
local_port = 22
remote_port = 2256
参数解释:
server_addr:云服务器地址
server_port:和云服务器中frps.ini的bind_port值一致
[ssh55]:一个配置组名,可以随意配置字符串,只要和其他组名区分开就行
type:tcp或者udp,映射web或者ssh端口都是tcp
local_ip:需要映射的内网主机ip,本机写127.0.0.1就可以
local_port:需要映射的内网主机端口
remote_port:使用云服务器哪个端口访问linux1
[ssh56]:配置组名,每个配置组名必须不同
type:同上
local_ip:内网中linux2的IP
local_port:linux2上需要映射的端口,此处配置的是ssh的22端口
remote_port:使用云服务器哪个端口访问linux2,每个配置组中的remote_port不能相同
启动frpc,'&'为后台运行:
# ./frpc -c frpc.ini &
以linux1为例,打开你的ssh工具,输入云服务器ip,端口为[ssh55]中的remote_port:2255,账号密码都是linux1的。
登录测试吧。
如果登陆后长时间没反应,或者提示connect failed
检查云服务器的安全组配置(阿里云安全组配置、腾讯云和阿里配置规则相似),是否开放端口
检查客户端防火墙是否开放端口
文中举例的两个配置组都是映射的ssh端口,若果你还想访问linux1的80或8080 web端口
只需要在linux1上的配置文件frpc.ini最后一行新加一个配置组:
(编辑前若客户端frpc已经启动,先停止掉)
[web8080]
type = tcp
local_ip = 192.168.1.56
local_port = 8080
remote_port = 28080
启动frpc,在浏览器使用 云服务器IP:28080 进行访问。
页面加载的速度受限于云服务带宽。
云服务器端结束frps进程:
# ps -aux | grep frps
root 11565 0.0 0.3 23540 6916 ? Sl 2018 6:43 ./frps -c frps.ini
# kill -9 11565
客户端结束frpc进程:
# ps -aux | grep frpc
root 6171 0.0 0.2 112704 972 pts/0 R+ 13:58 0:00 grep --color=auto frpc
# kill -9 6171
这里只做提示,有时间详细说明。
tips:在云服务器端复制frps.ini为frps_1.ini、frps_2.ini,将其中bind_port值改为不同,分别启动
如果哪里有不明或误导,烦请留言说明。