基于ubuntu系统的frp内网穿透搭建流程

下载

frp地址

#进入下载目录
cd ~  
#下载命令
wget https://github.com/fatedier/frp/releases/download/v0.54.0/frp_0.54.0_linux_amd64.tar.gz
#解压命令
tar -zxvf frp_0.54.0_linux_amd64.tar.gz

查看文件目录

cd frp_0.54.0_linux_amd64

目录下文件如下

total 31276
drwxr-xr-x 2 admin admin 4096 Feb 11 12:47 ./
drwxr-xr-x 6 admin admin 4096 Feb 11 12:47 …/
-rwxr-xr-x 1 admin admin 13946880 Feb 1 14:34 frpc*
-rw-r–r-- 1 admin admin 142 Feb 1 14:37 frpc.toml
-rwxr-xr-x 1 admin admin 18051072 Feb 1 14:34 frps*
-rw-r–r-- 1 admin admin 16 Feb 1 14:37 frps.toml
-rw-r–r-- 1 admin admin 11358 Feb 1 14:37 LICENSE

  • frpsfrps.toml分别是服务器(server)端的运行程序和配置文件。
  • frpcfrpc.toml分别是内网电脑(client)端的运行程序和配置文件。

服务端配置

配置frps

使用vim、nano或者任何文字编辑软件打开frps.toml,这里我在本地编辑好直接上传服务器😎。

sudo vim frps.toml
frps.toml内容
[common]
bindPort = 7000
vhost_http_port = 80

# dashboard's username and password are both optional
# 设置 dashboard 配置
dashboard_addr = 0.0.0.0
dashboard_port = 7500
dashboard_user = "admin"
dashboard_pwd = "admin"
  • bindPort: FRP Server 监听的端口,一般选择 7000。
  • vhost_http_port 和 vhost_https_port 可选,分别用于 HTTP 和 HTTPS 的域名映射。

使用如下命令在/etc下创建frp文件夹,并将frps和frps.toml复制到此。

sudo mkdir -p /etc/frp
sudo cp frps /etc/frp
sudo cp frps.toml /etc/frp

同时需要在公网服务器(server)将对应端口开放。

创建frps服务

使用systemd配置frps服务,命令安装如下。

sudo apt install systemd

使用nano创建服务配置文件frps.service。

sudo nano /etc/systemd/system/frps.service
frps.service内容
[Unit]
Description = frp server
After = network.target syslog.target 
Wants = network.target
 
[Service]

Type = simple
ExecStart = /etc/frp/frps -c /etc/frp/frps.toml

[Install] 
WantedBy = multi-user.target

frps已经配置完成,可以使用如下指令管理frps服务
sudo systemctl start frps
sudo systemctl stop frps
sudo systemctl restart frps
sudo systemctl status frps

开机自启

sudo systemctl enable frps   # 启用开机自启
sudo systemctl disable frps  # 禁用开机自启

客户端配置

同样需要在内网电脑上下载frp

配置frpc

使用vim、nano或者任何文字编辑软件打开frpc.toml,这里我在本地编辑好直接上传服务器😎。

sudo vim frpc.toml
frpc.toml内容
[common]
server_addr = 111.11.111.11 #(云服务器ip)
server_port = 7000  # 与 frps.ini 中的 bind_port 一致
# 设置 dashboard 配置
#dashboard_addr = 106.52.203.17
#dashboard_port = 8090
#dashboard_user = "admin"
#dashboard_pwd = "admin"
# http 配置
[web]
type = "tcp"
local_ip = 127.0.0.1 # 内网服务的 IP
local_port = 8888 # 内网服务的端口
remote_port = 8888 # FRP 服务器上的映射端口
custom_domains = 111.11.111.11# (云服务器ip) 或者替换为你的域名

使用如下命令在/etc下创建frp文件夹,并将frpc和frpc.toml复制到此。

sudo mkdir -p /etc/frp
sudo cp frps /etc/frp
sudo cp frps.toml /etc/frp

同时需要在内网电脑将对应端口开放。

创建frpc服务

使用systemd配置frpc服务,命令安装如下。

sudo apt install systemd

使用nano创建服务配置文件frps.service。

sudo nano /etc/systemd/system/frpc.service
frpc.service内容
[Unit]
Description = frp client 
After = network.target syslog.target 
Wants = network.target 

[Service]
Type = simple 
ExecStart = /etc/frp/frpc -c /etc/frp/frpc.toml 

[Install]
WantedBy = multi-user.target
frpc已经配置完成,可以使用如下指令管理frps服务
sudo systemctl start frpc
sudo systemctl stop frpc
sudo systemctl restart frpc
sudo systemctl status frpc

开机自启

sudo systemctl enable frpc   # 启用开机自启
sudo systemctl disable frpc  # 禁用开机自启

解决frpc服务不稳定。

服务器端一般比较稳定,且如果出现问题可以通过公网IP远程连接解决。但内网电脑有可能因为停电、网络不稳等问题导致frpc服务不稳定,所以可以使用crontab实现frpc服务的定时重启,若无crontab可使用如下指令安装。

脚本监听frpc状态进行重启服务

#!/bin/bash

# 日志文件路径
LOG_FILE="/var/log/frp/monitor_network.log"
# frpc systemd 服务名
FRPC_SERVICE="frpc"

# 检查 frpc 服务状态
SERVICE_STATUS=$(systemctl is-active "$FRPC_SERVICE")

# 判断服务状态并执行相应操作
if [ "$SERVICE_STATUS" == "inactive" ] || [ "$SERVICE_STATUS" == "failed" ]; then
    echo "$(date): $FRPC_SERVICE 服务状态异常,尝试重启服务..." >> "$LOG_FILE"
    # 重启 frpc 服务
    if systemctl restart "$FRPC_SERVICE" &>> "$LOG_FILE"; then
        echo "$(date): $FRPC_SERVICE 服务重启成功" >> "$LOG_FILE"
    else
        echo "$(date): 无法重启 $FRPC_SERVICE 服务,请检查日志和服务配置" >> "$LOG_FILE"
        # 在此处添加发送警报或其他错误处理机制
    fi
else
    echo "$(date): $FRPC_SERVICE 服务状态正常,无需重启" >> "$LOG_FILE"
fi

frpc定时重启服务crontab -e

sudo apt install cron

使用如下指令进入crontab的编辑界面。

sudo crontab -e

在最后加入如下内容,即可实现一小时重启一次frpc服务。

0 * * * * systemctl restart frpc

命令行总结

 2812  2024-02-26 16:00:30 wget "https://github.com/fatedier/frp/releases/download/v0.54.0/frp_0.54.0_linux_amd64.tar.gz"
 2814  2024-02-26 16:24:03 tar -zxvf frp_0.54.0_linux_amd64.tar.gz
 2815  2024-02-26 16:33:03 sudo mkdir -p /etc/frp
 2816  2024-02-26 16:33:03 sudo cp frps /etc/frp
 2817  2024-02-26 16:33:03 sudo cp frps.toml /etc/frp
 2819  2024-02-26 16:33:22 cd frp_0.54.0_linux_amd64/
 2821  2024-02-26 16:41:47 sudo cp frps.toml /etc/frp
 2822  2024-02-26 16:42:44 sudo cp frps /etc/frp
 2830  2024-02-26 16:47:54 sudo nano /etc/systemd/system/frps.service
 2831  2024-02-26 16:48:07 sudo systemctl restart frps
 2832  2024-02-26 16:48:24 sudo systemctl enable frps
 2833  2024-02-26 16:53:56 systemctl status frpc.service
 2834  2024-02-26 16:54:03 systemctl status frpc.service
 2835  2024-02-26 16:54:22 sudo systemctl start frps
 2836  2024-02-26 16:54:24 systemctl status frpc.service
 2837  2024-02-26 16:55:57 sudo nano /etc/systemd/system/frps.service
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值