frp 内网穿透安装配置使用

文档先发一下(好像要科学上网)
Github 项目地址

查看系统架构

需要一个服务器当做服务端进行端口转接,连接服务器之后,输入以下命令查看系统

uname -a

在这里插入图片描述

拉取程序包

输入以下命令下载 frp 程序包,按版本号改第一个命令,按系统改拉取的文件类型,我这里是 0.49.0 的,上面系统显示我是 Linux 系统 arm64 架构,所以命令如下

# 设置变量FRP版本号
export FRP_VERSION=0.49.0
# 创建/etc/frp文件夹
sudo mkdir -p /etc/frp
# 打开/etc/frp文件夹
cd /etc/frp
# 下载符合要求的程序包,按需更改系统和架构
sudo wget "https://github.com/fatedier/frp/releases/download/v${FRP_VERSION}/frp_${FRP_VERSION}_linux_arm64.tar.gz"
# 解压程序包
sudo tar xzvf frp_${FRP_VERSION}_linux_arm64.tar.gz
# 将解压出来的文件夹内的文件全部移动到/etc/frp文件夹
sudo mv frp_${FRP_VERSION}_linux_arm64/* /etc/frp

在这里插入图片描述

frp 解压之后有两个端,分别是服务端(frps)和客户端(frpc),还有他们的配置文件 frps.ini 和 frpc.ini
在这里插入图片描述

服务端配置目录下的 frps.ini

frps.ini 配置转接端口和仪表盘信息,下面是配置示例

[common]
# 服务端绑定的端口
bind_port = 7000
# 仪表盘绑定的端口
dashboard_port = 7500
# 客户端与服务端连接时配置的token
token = 123456789
# 仪表盘用户名
dashboard_user = admin
# 仪表盘密码
dashboard_pwd = 123456
# 设置监听 HTTP 请求端口
vhost_http_port = 7080

在这里插入图片描述

直接启动服务的命令

./frps -c ./frps.ini

在这里插入图片描述

放行 7500 端口,可以看到已经可以访问到仪表盘了
在这里插入图片描述

使用 systemctl 配置后台运行和开机自启

sudo vim /lib/systemd/system/frps.service

在 frps.service 里写入以下内容

[Unit]
# 服务描述:frps服务
Description=frps service
# 在network.target和syslog.target之后启动
After=network.target syslog.target
# 需要network.target服务
Wants=network.target

[Service]
# 服务类型为简单类型
Type=simple
# 执行启动frps服务的命令,并指定配置文件路径为/etc/frp/frps.ini
ExecStart=/etc/frp/frps -c /etc/frp/frps.ini

[Install]
# 安装为多用户目标所需
WantedBy=multi-user.target

在这里插入图片描述

使用 systemctl 启动 frps

sudo systemctl start frps

打开自启动

sudo systemctl enable frps

其他

如果要重启应用,sudo systemctl restart frps
如果要停止应用,sudo systemctl stop frps
如果要查看应用的日志,sudo systemctl status frps

如果启动时 7000 端口被占用

#查看端口号
netstat -anp|grep 7000
或

#查看端口号
lsof -i:7000
或

#查看程序进程
ps -ef|grep frps
得到进程id(pid)之后,使用下面命令杀掉进程

kill pid

客户端配置目录下的 frpc.ini

frpc.ini 配置需要穿透的信息,下面是配置示例

[common]
# frp服务端ip
server_addr = frp服务端ip
# frp服务端绑定的端口
server_port = 7000
# frp服务端配置的token
token = 123456789

[ssh]
type = tcp
local_ip = 127.0.0.1
local_port = 22
remote_port = 7022

在这里插入图片描述

如果服务端是国外服务器的话需要挂代理才能链接上,不然会报i/o deadline reached
需要在客户端的配置文件的 common 里面添加代理

protocol = tcp
http_proxy = http://user:pwd@代理ip:端口

使用下面命令直接启动

./frpc -c ./frpc.ini

在这里插入图片描述

上面示例客户端配置 ssh 穿透,服务器将 7022 防火墙端口打开,测试使用内网穿透连接,可以正常连接
在这里插入图片描述

使用 systemctl 配置后台运行和开机自启

sudo vim /lib/systemd/system/frpc.service

在 frpc.service 里写入以下内容

[Unit]
# 服务单元:frpc service
Description=frpc service
# 在network.target和syslog.target之后启动
After=network.target syslog.target
# 需要network.target服务
Wants=network.target

[Service]
# 服务类型:简单
Type=simple
# 启动超时时间:10秒
TimeoutStartSec=10
# 重启延迟时间:30秒
RestartSec=30s
# 总是自动重启
Restart=always
# 执行启动frpc服务的命令,并指定配置文件路径为/etc/frp/frpc.ini
ExecStart=/etc/frp/frpc -c /etc/frp/frpc.ini

[Install]
# 安装为多用户目标所需
WantedBy=multi-user.target

在这里插入图片描述

使用 systemctl 启动 frpc

sudo systemctl start frpc

打开自启动

sudo systemctl enable frpc

其他

如果要重启应用,sudo systemctl restart frpc
如果要停止应用,sudo systemctl stop frpc
如果要查看应用的日志,sudo systemctl status frpc

猜你喜欢

转载自blog.csdn.net/sywdebug/article/details/132763528
今日推荐