1. 什么是frp
frp 是一个高性能的反向代理应用,可以帮助您轻松地进行内网穿透,对外网提供服务,支持 tcp,udp, http, https 等协议类型,并且 web 服务支持根据域名进行路由转发。实际上frp的官方中文文档里面已经有比较详细的教程了,这里只是对具体的环境进行内网穿透,达到在外网可以通过ssh连接到内网的服务器。
2. 准备
- 一台有公网IP的VPS主机
- 内网服务器(我使用的是树莓派)
3. 开始使用
3.1 服务端(外网主机)
1.根据操作系统可以在官网GitHub的Release页面找到相应的版本下载(我这里是CentOS7的系统,所以选择amd64的版本)。
wget https://github.com/fatedier/frp/releases/download/v0.14.0/frp_0.14.0_linux_amd64.tar.gz
2.解压
tar -zxvf frp_0.14.0_linux_amd64.tar.gz
cd frp_0.14.0_linux_amd64
# 外网主机作为服务端,可以删掉不必要的客户端文件
rm frpc
rm frpc.ini
3.frps.ini
为服务端的配置文件,在默认的配置文件里已经有相关的配置了
执行 vim frps.ini
配置如下
[common]
bind_port = 7000
[common]
为必须的配置,bind_port
为绑定frp的服务端端口,如果需要修改,则可以进行修改。
保存配置文件
4.后台启动服务nohup ./frps -c ./frps.ini &
3.2 内网主机(树莓派)
1.我这里使用的是树莓派,所以下载的是arm的版本,如果是其他的操作系统,请下载相应的其它版本。
wget https://github.com/fatedier/frp/releases/download/v0.14.0/frp_0.14.0_linux_arm.tar.gz
2.解压
tar -zxvf frp_0.14.0_linux_arm.tar.gz
cd frp_0.14.0_linux_arm
# 内网的刻画端,就可以删掉不必要的服务端的文件
rm frps
rm frps.ini
3.执行 vim frpc.ini
配置如下
[common]
server_addr = x.x.x.x
server_port = 7000
[ssh]
type = tcp
local_ip = 127.0.0.1
local_port = 22
remote_port = 6000
[common]
中的server_addr
填frp服务端的ip(也就是外网主机的IP),server_port
填frp服务端的bind_prot
。
[ssh]
中为本地的配置,local_port
是本地的ssh端口,remote_port
为服务端监听的端口
4.后台启动服务nohup ./frpc -c ./frpc.ini &
4. 设置开机启动
vim /etc/systemd/system/frps.service
新建此文件,并写入以下内容
[Unit]
Description=frps daemon
After=syslog.target network.target
Wants=network.target
[Service]
Type=simple
ExecStart=/home/pi/Developer/frp_0.14.0_linux_arm/frpc -c /home/pi/Developer/frp_0.14.0_linux_arm/frpc.ini
Restart= always
RestartSec=1min
ExecStop=/usr/bin/killall frpc
[Install]
WantedBy=multi-user.target
启动并设为开机自启。
$ sudo systemctl start frps
$ sudo systemctl enable frps
5. 连接
通过 ssh 访问内网机器,假设用户名为 test:
ssh -oPort=6000 [email protected]
6. 参考资料
转载请注明出处:
文章地址:使用frp搭建内网穿透服务
文章作者:凌风
原始连接:https://lingfeng.me/blog/linux/raspbian-frp/
许可协议:转载请注明原文链接及作者。
系列博文:树莓派系列文章
- Raspbian Pi无屏幕无键盘开箱配置
- 使用frp搭建内网穿透服务
- 树莓派安装Samba服务实现远程共享文件
- 树莓派安装配置摄像头