FRP内网穿透篇二【Docker版】,搭建方式再次精简优化

FRP内网穿透篇二【Docker版】,搭建方式再次精简优化

小吴 169 2023-02-02

2023.03.05更新:经反复测试发现,最新版0.47.0经常出现502页面,非常不稳定,frp一定要力求稳定,不需要太多花哨的功能,现在退回0.44.0版养老,不进行更新了。

内网穿透

  即NAT穿透,网络连接时术语,计算机是局域网内时,外网与内网的计算机节点需要连接通信,有时就会出现不支持内网穿透。本教程主要讲解如何利用docker服务器进行FRP的内网穿透。
项目地址:https://github.com/fatedier/frp
FRP内网穿透【首篇教程】:FRP内网穿透教程
  由于第一次的教程是根据大神司波图的视频,一步一步操作的,当时用的centos 7.6系统,整体操作太过繁琐,由于经常使用docker,越来越熟练docker的配置,也越来越依赖它了,俗话说“docker在手,天下我有”。

教程

一、前期准备:

① VPS服务器,要有公网IP,系统为docker,这次在阿里云买的香港轻量服务器,24元/月,买一年打五折相当于12元/月。虽然香港服务器有时候不稳定,但是便宜啊,国内的服务器最低也要60元/月。
1-1

② frp客户端,使用群晖docker安装

二、服务器端教程

  此次配置全程代码,无需额外的软件了,当然,你也可以使用finalshell软件,连上vps服务器的SSH,直接使用阿里云自带的SSH工具效果是一样的。
finalshell软件官网下载地址:https://www.hostbuf.com/
1-9

阿里云的登录无需密钥,比腾讯云要简单许多,root密码首次使用需要重置密码。

1-2
1-3

登录SSH

1-4

登录成功界面

1-5

输入代码

mkdir -p /etc/frp && touch /etc/frp/frps.ini && vi /etc/frp/frps.ini

意思是在etc目录创建frp文件夹以及frps.ini配置文件,并对文件进行编辑
1-6

编辑界面如下,需要按“i”键进入编辑模式

1-7

然后粘贴以下代码

[common]
bind_port = 7000
token = 123456

这里的token后面的123456用于加密,你可以自行设置,这里仅作案例

ESC键推出编辑模式,并输入英文小写的:wq进行保存(注意冒号)

1-8

安装snowdreamtech/frps镜像

docker pull snowdreamtech/frps:0.44.0

配置并启动容器

docker run \
--name frps \
--restart=always \
--network host -d \
-v /etc/frp/frps.ini:/etc/frp/frps.ini \
snowdreamtech/frps:0.44.0

阿里云防火墙设置

1-13
到这里,你就完成了frp服务器端的所有配置

二、客户端教程(群晖为例,其他任何支持docker的客户端都一样)

直接在docker套件内搜索frp注册表,双击下载

如果下载比较慢,可以看我另外一篇教程:解决群晖NAS Docker注册表下载失败、或者下载很慢
1-10

网络配置要选择host

1-12

这里添加frpc.ini的文件,不是文件夹

1-11

可以自行创建,新建txt文档,然后改后缀名未ini就可以了,frpc.ini的文件内容如下。

# frpc.ini
[common]
server_addr = 115.***.***.116
server_port = 7000
token = 123456

[群晖管理页面]
type = tcp
local_ip = 192.168.1.134
local_port = 5000
remote_port = 5000

内容解释:
server_addr =这里填写你服务器的公网IP
server_port = 7000与之前配置的的frps.ini要一致
token = 123456与之前配置的的frps.ini要一致
local_ip =群晖内网的IP
local_port = 群晖管理页面的端口,你可以在下面继续增加其他端口
remote_port = 你需要转发的端口

简单原理解释:

  你原本只能在内网用:http://192.168.1.134:5000访问群晖页面,这个配置文件就是告诉服务器,你现在可以用http://公网IP:5000来访问了,相当于把群晖的内网IP变成了你的公网IP,可以随时随地的访问你内网的任何TCP端口网页。
  这里也存在风险,一旦你的公网IP被坏人知道了,会攻击你的群晖,所以我建议你remote_port = 转发的端口尽量不要选择常用端口,第二个就是域名解析,然后用Nginx反代https并增加证书。详细看这篇教程轻量服务器安装汉化版nginx-proxy-manager工具