Frp实现内网穿透-以群辉NAS为例

当你在新装系统时使用微软账号登录,系统会自动截取邮箱前五位用作你的用户名,在某些时候会让人非常难受,所以接下来会尝试进行对他进行重命名。

# 基本概述

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

frp示意图.png

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

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

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

# 软件下载

[button color=“success” icon=“iconfont icon-fork” url=“https://github.com/fatedier/frp/releases”]github[/button]

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

# 安装

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

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

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

1
2
3
4
5
6
7
[common]
bind_port = 7000
vhost_http_port = 8080
max_pool_count = 5
authentication_timeout = 900
authentication_method = token
token = password

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

1
./frps -c frps.ini

开启frps成功.png

# 2.客户端(本地NAS)

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

1
2
3
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

[scode type=“red”] 注:服务器有防火墙的话需要将用到的 remote_port 端口全部打开 [/scode]

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
[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
1
2
# 同样方式打开客户端
./frpc -c frpc.ini

客户端成功连接.png

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

# 3.开机自启

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

# 群晖

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

脚本中填上这两行

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

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

1
2
chmod +x frpc.sh
vim /etc/rc

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

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

添加脚本启动项.png

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

# centos

1.创建自启服务

1
vim /etc/systemd/system/frps.service

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

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
[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)

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

# 官方文档

本文只是介绍基本使用,更多功能和详细使用方式见: [button color=“success” icon=“iconfont icon-fork” url=“https://github.com/fatedier/frp/blob/master/README_zh.md”]官方文档[/button]

转载请保留本文转载地址,著作权归作者所有
使用 Hugo 构建 主题 StackJimmy 设计