准备
一台公网服务器(配置无要求网络稳定就行)
内网客户端(准备要穿透出去的设备)
服务端(公网服务器)
这里是为服务端配置frp
只关注frps
和frps.ini
即可
frp项目地址 :https://github.com/fatedier/frp
不知道公网服务器对应那个架构可以输入:arch
来进行查询自己的架构
x86_64 对应frp_0.38.0_linux_amd64.tar.gz
解压:tar -zxvf frp_0.48.0_linux_amd64.tar.gz
进入文件夹:cd frp_0.38.0_linux_amd64/
frps配置
对frps.ini文件进行配置
bind_port:
表示用于客户端和服务端连接的端口,这个端口号我们之后在配置客户端的时候要用到
dashboard_port:
是服务端仪表板的端口,若使用7500端口,在配置完成服务启动后可以通过浏览器访问 x.x.x.x:7500 (其中x.x.x.x为公网服务器的IP)查看frp服务运行信息
token:
用于客户端和服务端连接的口令,请自行设置并记录,稍后会用到
dashboard_user、dashboard_pwd:
表示打开仪表板页面登录的用户名和密码,自行设置即可
这时候我们的服务器需要放开两个端口 一个为8599
(和客户端通信的端口)、另一个为7500
(服务端仪表板的端口)
运行frps
出现以下输出说明正常运行
将其在后台运行
查询进程是否存在:ps -aux|grep fr
这样服务端frp的配置就完成了,通过访问公网7500
端口进入后台管理页面
客户端
在客户端这边我们只需要关注frpc、frpc.ini就可以了
安装frp
步骤同服务端相同自行操作即可
配置frpc
cd frp_0.38.0_linux_amd64/
vim frpc.ini
[common]
server_addr = 47.108.71.55
server_port = 8599
token = safrhdnv7943horizonlink888
[8215TO7005]
type = tcp
local_ip = 127.0.0.1
local_port = 8125
remote_port = 7005
server_addr:
为服务端IP地址,填入即可。
server_port:
为服务器端口,填入你设置的端口号即可,如果未改变就是7000
token:
是你在服务器上设置的连接口令,原样填入即可。
[xxx]:
表示一个规则名称,自己定义,便于查询即可。
type:
表示转发的协议类型,有TCP和UDP等选项可以选择,如有需要请自行查询frp手册。
local_port:
是本地应用的端口号,需要穿透的端口号。
remote_port:
是该条规则在服务端开放的端口号
运行frpc
一样挂在后台运行即可:nohup ./frpc -c frpc.ini &
查看后台进程:ps -aux|grep fr
frp中文文档
参考链接:
设置开机自动执行的.sh
编辑 /etc/rc.d/rc.local
在上述文件中的 touch /var/lock/subsys/local
后面加上要执行的.sh目录及文件名。比如/opt/frp/start.sh
保存退出后执行chmod +x /etc/rc.d/rc.local
使开机启动生效
start.sh
#!/bin/bash
#启动frpc
#检查程序的运行状态,避免重复启动
frpc_kill=`ps -ef | grep "frpc" | grep -v grep | awk '{print $2}'`
echo ${frpc_kill}
if [ -n "${frpc_kill}" ];
then
echo "frpc started"
else
#后台运行脚本
#这里是你自己的frp路径 进入
cd /opt/frp/frp_0.48.0_linux_amd64/
#这里是你自己的frp路径 删除nohup.out文件
rm -rf /opt/frp/frp_0.48.0_linux_amd64/nohup.out
#启动frpc
nohup ./frpc -c frpc.ini &
#查看启动日志
tail -f /opt/frp/frp_0.48.0_linux_amd64/nohup.out
echo "frpc successfully started"
fi