前言
在使用公网VPS服务器
部署的frp 服务
时,外网与内网之间的传输都会受到服务器的带宽限制
.而在群晖NAS上使用docker
来搭建frps
,在让公司的电脑或服务器来配置客户端frpc
,实现家中直连
内网办公环境.
为什么要在家里部署 frps
本站及网上提供了各种免费 frp 服务,在加上远程办公的方式有很多,例如 TeamViewer,向日葵等,为什么要选择在家部署 frp 服务呢?
- 使用公共 frp 服务器或者一些远程连接软件,都是要经过 frp 服务器或者软件厂商的服务器中转.在家中访问,速度上受到限制.
- 在家中部署 frps ,公司的电脑或服务器穿透回来,相当于
直连
公司的设备,独享家庭宽带,速度和安全性得到了保障.
前提需求
家庭宽带必须满足以下需求:
- 拥有公网IP
- 自主管理端口映射
光猫路由模式时,必须能够登陆光猫并管理端口映射.
原理解释
由于家庭宽带一般封了80/443
端口,所以此方案仅仅是利用家庭宽带的 公网 IP 来穿透办公室内网电脑,服务器的TCP
端口,例如Windows
的3389
端口,Linux
的22
端口.以实现在家直连
远程登陆办公室的电脑和服务器的需求.
本地网络配置
DDNS 配置
家庭宽带的公网IP
每隔一段时间都会变,所以一般都会使用DDNS
的方案,来让公网IP
和绑定的域名实时同步.关于如何使用DDNS,请搜索本站教程:
端口配置
家庭宽带由于端口由路由器管理,加上运营商封了80/443
端口,所以相比公网VPS的部署麻烦些,提前为使用场景规划端口
以方便部署frps容器
.
HTTP/HTTPS 端口
运营商封了公网的80/443
端口,不代表内网没有80/443
端口.群晖NAS中Web Station
和反向代理
默认使用了80/443
端口.为避免端口冲突,重新为此分配两个端口,以10080
和10443
为例.
使用HTTP/HTTPS
协议穿透的Web
,需使用http://xxx.com:10080
和https://xxx.com:10443
来访问.
- 登陆路由器配置以下
2
个端口映射 - 本地端口 10080/10443
- 外部端口 10080/10443
- IP为群晖NAS的内网IP
TCP 端口
本文将以穿透Windows
的3389远程桌面端口
和Linux
服务器的22 SSH端口
为例.由于此两个默认端口暴露在公网存在安全隐患,在端口映射时需选择高位端口以确保安全.本文以规划22222
和33333
两个端口为例.同时frps
和frpc
的通讯端口默认为7000
.
- 登陆路由器配置以下
3
个端口映射 - 本地端口 7000/22222/33333
- 外部端口 7000/22222/33333
- IP为群晖NAS的内网IP
部署服务端 frps
配置 frps.ini
任意文件夹下创建frps.ini
文件,本文以/docker/frps/frps.ini
为例.参照以下配置参数,如不太熟悉请直接复制粘贴,修改token
即可.熟悉frp的用户可配合路由器端口映射来自行修改端口.
[common]
bind_addr = 0.0.0.0
bind_port = 7000
bind_udp_port = 7001
kcp_bind_port = 7000
vhost_http_port = 10080
vhost_https_port = 10443
dashboard_addr = 0.0.0.0
dashboard_port = 7500
dashboard_user = admin
dashboard_pwd = admin
log_file = ./frps.log
log_level = info
log_max_days = 3
disable_log_color = false
token = 12345678
allow_ports = 2000-3000,3001,3003,4000-50000
max_pool_count = 5
max_ports_per_client = 0
subdomain_host = frps.com
tcp_mux = true
部署 frps
下载镜像
打开 docker - 注册表,搜索stilleshan
,找到stilleshan/frps
的镜像,下载latest
最新版.
启动容器
映像中选择下载好的镜像点击启动.
高级设置
挂载 frps.ini
在卷
中添加文件
,选择上文配置的frps.ini
文件,装载路径复制粘贴/frp/frps.ini
路径.
端口设置
端口设置中手动添加上文规划好的端口.其中7500
为内网Web管理端口,无需路由器映射,仅在内网管理查看即可.
完成部署
应用即可启动服务.
frp服务器信息
- 服务器地址:DDNS域名
- 端口:7000
- Token:12345678
配置客户端 frpc
frp 官方提供了Linux
和Windows版
客户端,访问官方项目releases页面下载.安装配置本站也有各种教程,详情请参考:FRP内网穿透专栏.
下文仅针对 Windows 远程桌面和 Linux 的 SSH 登陆为例,来配置 frpc.ini 文件.
配置 Windows 远程桌面穿透
开启Windows
的远程桌面,并配置frpc.ini
文件.注意修改IP
为Windows 电脑
的内网IP
.
[common]
server_addr = DDNS域名
server_port = 7000
token = 12345678
[Windows3389]
type = tcp
local_ip = 192.168.1.10
local_port = 3389
remote_port = 33333
完成配置并启动服务后,可以使用Microsoft Remote Desktop
来连接你的电脑.在家中可以直接使用frp服务器(即群晖NAS)的内网IP
加上33333
来连接.在外网也可使用DDNS域名
加上3333
端口来连接.
配置 Linux 服务器 SSH 端口
在同局域网内
你可以直接使用上文 Windows 版的 frpc 来为 Linux 配置穿透服务,也可以在 Linux 服务器上安装配置 frpc .详情可参考: frpc一键安装脚本.注意修改IP
为Linux服务器
的内网IP
.
[common]
server_addr = DDNS域名
server_port = 7000
token = 12345678
[LinuxSSH]
type = tcp
local_ip = 192.168.1.11
local_port = 22
remote_port = 22222
完成配置并启动服务后,可以使用以下命令登陆服务器:
ssh -p 22222 root@192.168.1.X
# 内网访问,IP为frp服务器(即群晖NAS)的内网IP
ssh -p 22222 root@xxx.com
# 外网访问,xxx.com为DDNS域名
结语
内网群晖NAS和公网VPS服务器部署的frps其实并无区别,只是受限于家用宽带的特殊环境,只需要注意 frps 提供的端口与群晖NAS自己的端口冲突问题以及路由器端口映射两个重点,就可以好好利用公网IP带来的好处.更多群晖NAS和FRP内网穿透相关技巧,教程及信息,请持续关注相关专栏:
40 条评论
哇 大哥你的博客主题看起来好舒服啊 能说下是什么软件搭建的嘛,用的什么主题
每个教程都很用心,详细的说明了操作步骤。感恩分享!!!希望博主更多分享
从博主这里学到了好多,感恩
域名打开 显示page not found,,
The page you requested was not found.
 ̄﹃ ̄
按照此方法,docker启动后无法访问后台,用另一个docker镜像cloverzrg-frps-docker 可以访问后台,请问是怎么回事?
[common]
bind_addr = 0.0.0.0
bind_port = 7000
bind_udp_port = 7001
kcp_bind_port = 7000
vhost_http_port = 11080
vhost_https_port = 11443
dashboard_addr = 0.0.0.0
dashboard_port = 7500
dashboard_user = admin
dashboard_pwd = admin
log_file = ./frps.log
log_level = info
log_max_days = 3
disable_log_color = false
token = 82578359
allow_ports = 2000-3000,3001,3003,4000-50000
max_pool_count = 5
max_ports_per_client = 0
subdomain_host = frps.com
tcp_mux = true
多半是挂载路径不对吧,导致没读取到frps.ini