一.前言
1.前因后果
突发奇想搞这个FRP内网穿透的原因很简单,之前一直使用的是TODESK这个软件远程连接自己家里的电脑,前两天再次使用TOdesk的时候提示我免费用户每月超过120小时或者300次的连接就无法使用,只能等待下一个月了,所以就一直在网上找相关资料,想自己搭建一个远程连接,在网上找到许多关于FRP内网穿透搭建教程,自己试验后发现无法使用,所以就根据自己查询到的多个教程整合了一下,终于完成搭建,成功连上了远程电脑.
2.完全可控的内网穿透需求
1、可以清楚的查看到该内网穿透服务内容的源码,可以追查确保源头干净;
2、可以自己掌控部署服务端(即搭建自己的公网服务跳板机)且通讯安全便捷;
3、需要支持主流的协议(如:tcp、udp、http、https、socks5以及p2p通信);
二.准备工作
1.环境准备
1.1 服务器一台
本次教程使用的服务器是华为云轻量服务器,搭载的是Debian 11系统,使用云服务器是为了有一个公网IP去转发.
1.2 FRP穿透工具
① FRP穿透服务端:
官方下载地址:https://gofrp.org/zh-cn/
由于官网下载比较慢,这里我就提供自己已经下载好的linux系统端和WIN系统端的软件包
蓝奏云下载地址:https://yezilife.lanzouq.com/b03408t3hg密码:1cgd
② FRP穿透客户端:
下载地址同上,每个包都有对应环境的服务端和客户端.
WIN包内说明:
三.正文开始
1.服务端部署
1.1 将上述下载的安装包解压 tar -zxf frp_0.61.1_linux_amd64.tar.gz
1.2 使用mv frp_0.59.0_linux_amd64 frp对文件进行重命名
1.3执行命令sudo vim frps.toml打开配置文件,然后保存退出。
bindPort = 7000 #自定义代码
auth.token = "zbcd" #自定义接口秘钥
WebServer.addr = "0.0.0.0" #要外网连接保持不修改
WebServer.port = 7600 #外网连接端口可自定义
WebServer.user = "admin" #登录的账号
WebServer.password = "admin"#登录的密码
1.4使用命令 ./frps -c ./frps.toml启动frp。并且在云服务的安全组以及防火墙上放行对应端口。输入地址(公网ip:端口号)可以查看服务端管理页面。
2.客户端部署
1.1解压文件后,用文本编辑软件打开frpc.toml。
1.2修改配置,添加映射关系
serverAddr = "0.0.0.0" #公网IP
serverPort = 7000
auth.token = "zbcd" #服务端里面的秘钥
[[proxies]]
name = "web-2" #可自定义
type = "tcp" #一般不修改
localIP = "127.0.0.1"#一般不修改
localPort = 8090#自定义端口
remotePort = 8090
1.3地址栏中输入cmd回车打开终端。
1.4终端输入命令frpc -c frpc.toml启动。
出现如下效果就启动成功了
服务端显示注册了两个连接,一个tcp,一个http。
tcp:
http:
3.设置服务自启动
在 Linux 系统下,使用 systemd 可以方便地控制 frps 服务端的启动、停止、配置后台运行以及开机自启动。
以下是具体的操作步骤:
1.安装 systemd
如果您的 Linux 服务器上尚未安装 systemd,可以使用包管理器如 yum(适用于 CentOS/RHEL)或 apt(适用于 Debian/Ubuntu)来安装它:
# 使用 yum 安装 systemd(CentOS/RHEL)
yum install systemd
# 使用 apt 安装 systemd(Debian/Ubuntu)
apt install systemd
2.创建 frps.service 文件
使用文本编辑器 (如 vim) 在 /etc/systemd/system 目录下创建一个 frps.service 文件,用于配置 frps 服务。
$ sudo vim /etc/systemd/system/frps.service
写入内容
[Unit]
Description = frp server # 服务名称,可自定义
After = network.target syslog.target
Wants = network.target
[Service]
Type = simple
# 启动frps的命令,需修改为步骤2.3中的frps的安装路径
ExecStart = /usr/local/frp/frps -c /usr/local/frp/frps.toml
[Install]
WantedBy = multi-user.target
3.使用 systemd 命令管理 frps 服务
# 启动frp
sudo systemctl start frps
# 停止frp
sudo systemctl stop frps
# 重启frp
sudo systemctl restart frps
# 查看frp状态
sudo systemctl status frps
4.设置 frps 开机自启动
sudo systemctl enable frps
四.总结
技术可以引领业务,业务也同样可以驱动技术,由于小伙伴的跑路,和高额的服务器费用,驱使着我寻找方便且廉价的解决方案。下面贴出一下本项目中可能会用到的linux命令。
1.查看所有监听的端口以及相应的进程sudo lsof -i -P -n | grep LISTEN
2.切换admin账号 sudo su
3.关闭某个进程 pkill example