基本概述

当我们想要在外地连接家里的网络服务,而家里又没有公网ip,此时就需要用到内网穿透。

frp示意图.png

当用户无法直接连上家里的服务时,借助一台带有公网ip的服务器就可以使其通信。

接下来我们要做的就是在服务器和家里分别安上frp的服务端和客户端软件。

软件安装地frp软件
服务器frp服务端-frps
本地(NAS、Windows等)frp客户端-frpc

软件下载

1.直接下载

wget https://github.com/fatedier/frp/releases/download/v0.32.0/frp_0.32.0_linux_amd64.tar.gz

2.网盘下载

安装

1.服务端(带公网ip的主机)

tar -xvf frp_0.32.0_linux_amd64.tar.gz
rm -f frpc*        # 删除客户端多余文件,可以不执行
vim frps.ini    # 编辑配置文件

输入以下字段后保存就行,其中bind_port = 7000就是frp之间通信所用端口。

[common]
bind_port = 7000
vhost_http_port = 8080
max_pool_count = 5
authentication_timeout = 900
authentication_method = token
token = password

然后就可以开启服务端等待客户端的连接

./frps -c frps.ini

开启frps成功.png

2.客户端(本地NAS)

同样解压刚才的压缩包(如果客户端是windows/mac的话前往原git下载)

tar -xvf frp_0.32.0_linux_amd64.tar.gz
rm -f frps*        # 删除服务端多余文件,可以不执行
vim frpc.ini    # 编辑配置文件

输入以下字段后保存就行,其中bind_port = 7000是frp之间通信所用端口

可以配置多个应用,比如你想在外连接NAS,那么就把NAS本地的22端口映射到服务器的6000端口(或其他任意未占用端口)。

这样访问 服务器ip:6000就等同于本地访问127.0.0.1:22

注:服务器有防火墙的话需要将用到的 remote_port 端口全部打开

[common]
server_addr = 服务器的公网ip
server_port = 7000
token = password
pool_count = 1

[ssh]
type = tcp
local_ip = 127.0.0.1
local_port = 22
remote_port = 6000
use_compression = true

[nas]
type = tcp
local_ip = 127.0.0.1
local_port = 5000
remote_port = 5000
use_compression = true

[mysql]
type = tcp
local_ip = 127.0.0.1
local_port = 3306
remote_port = 3306
use_compression = true
# 同样方式打开客户端
./frpc -c frpc.ini

客户端成功连接.png

这时,内网穿透就算完成了,但想要长期稳定使用的话还得加上后台运行和开机自启。

3.开机自启

这里提供两种自启方式,如果客户端/服务端是windows/mac的话自行搜索一下

群晖

cd /usr/syno/etc.defaults/rc.sysv/
vim frpc.sh    # 创建启动脚本

脚本中填上这两行

cd /usr/frp_0.32.0_linux_amd64    # 进入frpc路径
nohup ./frpc -c ./frpc.ini &    # 后台启动frpc

设置脚本权限并编辑启动项

chmod +x frpc.sh
vim /etc/rc

输入 :$ 跳转至最后一行,在exit 0之前添加:

/usr/syno/etc.defaults/rc.sysv/frpc.sh

添加脚本启动项.png

这时可以重启系统查看frp是否启动成功

centos

1.创建自启服务

vim /etc/systemd/system/frps.service

填入:(记得将 ExecStart 路径换成自己frps的路径)

[Unit]
Description=Frp Server Service
After=network.target

[Service]
Type=simple
User=nobody
Restart=on-failure
RestartSec=5s
ExecStart=/home/izumi/frp_0.32.0_linux_amd64/frps -c /home/izumi/frp_0.32.0_linux_amd64/frps.ini

[Install]
WantedBy=multi-user.target

2.开启服务 -- (只需要执行1、3)

sudo systemctl enable frps        #打开自启
sudo systemctl disable frps        #关闭自启
sudo systemctl start frps        #开启frps
sudo systemctl status frps        #查看frps运行状态

官方文档

本文只是介绍基本使用,更多功能和详细使用方式见:

最后修改:2020 年 03 月 22 日 12 : 21 PM
如果觉得我的文章对你有用,请随意赞赏