1. frp简介
frp是一个可用于内网穿透的高性能的反向代理应用,支持tcp,udp协议,为http和https应用协议提供了额外的能力,且尝试性支持了点对点穿透。
具体可参考官方文档
本文主要介绍通过ssh访问内网服务器
2. 配置前准备
- 一台需要内网穿透的内网服务器(客户端)
- 一台可以访问外网的服务器(服务端,本文使用阿里云云服务器ECS),如果是在校大学生或者24岁以下都可以使用阿里云的学生机
3. 安装frp
准备好上述服务器后,直接下载frp的Linux版本:下载地址。或者使用wget命令下载
wget https://github.com/fatedier/frp/releases/download/v0.13.0/frp_0.13.0_linux_amd64.tar.gz
这里下载的是0.13.0版本
3.1 外网服务器SSH配置
- 在外网服务器下创建新目录
mkdir -p /usr/local/frp
- 将安装包上传至该目录/usr/local/frp
mv frp_0.13.0_linux_amd64.tar.gz /usr/local/frp
- 解压到该目录下
cd /usr/local/frp
tar -zxvf frp_0.13.0_linux_amd64.tar.gz
进入解压后的目录下可以看到七个文件:frpc frpc_full.ini frpc.ini frps frps_full.ini frps.ini LICENSE
- frpc:客户端可执行程序
- frpc_full.ini:客户端所有配置项(可以再此文件查看frp的所有的配置项)
- frpc.ini:客户端配置项
- frps:服务端可执行程序
- frps_full.ini:服务端所有配置项(可以再此文件查看frp的所有的配置项)
- frps.ini:服务端配置项
- LICENSE:许可证
为了避免误操作,可以先删除所有客户端的配置
rm -rf frpc frpc_full,ini frpc.ini
对服务端配置进行修改
vi frps.ini
服务端的默认配置:
[common]
bind_port = 7000 #与客户端绑定的进行通信的端口
默认的配置信息中只有一个绑定端口为7000,意思是我们在外网服务器中绑定7000端口和客户端进行通信。注:端口可以自定义,但是需要客户端和服务端进行统一。阿里云服务器需要在esc管理中配置安全组规则中添加7000端口。
保存然后启动服务
./frps -c ./frps.ini
这是前台启动,后台启动命令为
nohup ./frps -c ./frps.ini &
3.2 内网服务器SSH配置
按照上述同样的操作安装frp后配置frpc.ini
[common]
server_addr = xxxx #公网服务器ip地址
server_port = 7000 #与公网服务器设置的bind_port一致
#公网通过ssh访问内部服务器
[ssh]
type = tcp #连接协议
local_ip = xxxx #内网服务器ip
local_port = 22 #ssh默认端口号
remote_port = 6000 #自定义的访问内部ssh端口号
remote_port 是外网服务器请求过来的端口 注:阿里云服务器需要在esc管理中配置安全组规则中添加6000端口
启动内网服务器的客户端程序
./frpc -c frpc.ini
启动成功后直接通过外网服务器IP和内网服务器配置的端口6000进行ssh连接
4. 参考文章
[1] https://blog.csdn.net/u013144287/article/details/78589643
[2] https://blog.csdn.net/u012198893/article/details/82348605