前言

在使用公网VPS服务器部署的frp 服务时,外网与内网之间的传输都会受到服务器的带宽限制.而在群晖NAS上使用docker来搭建frps,在让公司的电脑或服务器来配置客户端frpc,实现家中直连内网办公环境.

为什么要在家里部署 frps

本站及网上提供了各种免费 frp 服务,在加上远程办公的方式有很多,例如 TeamViewer,向日葵等,为什么要选择在家部署 frp 服务呢?

  • 使用公共 frp 服务器或者一些远程连接软件,都是要经过 frp 服务器或者软件厂商的服务器中转.在家中访问,速度上受到限制.
  • 在家中部署 frps ,公司的电脑或服务器穿透回来,相当于直连公司的设备,独享家庭宽带,速度和安全性得到了保障.

前提需求

家庭宽带必须满足以下需求:

  • 拥有公网IP
  • 自主管理端口映射

光猫桥接模式下,由路由器拨号并管理端口映射.
光猫路由模式时,必须能够登陆光猫并管理端口映射.

原理解释

由于家庭宽带一般封了80/443端口,所以此方案仅仅是利用家庭宽带的 公网 IP 来穿透办公室内网电脑,服务器的TCP端口,例如Windows3389端口,Linux22端口.以实现在家直连远程登陆办公室的电脑和服务器的需求.

本文为 Stille 原创文章.经实践,测试,整理发布.如需转载请联系作者获得授权,并注明转载地址.

本地网络配置

DDNS 配置

家庭宽带的公网IP每隔一段时间都会变,所以一般都会使用DDNS的方案,来让公网IP和绑定的域名实时同步.关于如何使用DDNS,请搜索本站教程:

端口配置

家庭宽带由于端口由路由器管理,加上运营商封了80/443端口,所以相比公网VPS的部署麻烦些,提前为使用场景规划端口以方便部署frps容器.

HTTP/HTTPS 端口

运营商封了公网的80/443端口,不代表内网没有80/443端口.群晖NAS中Web Station反向代理默认使用了80/443端口.为避免端口冲突,重新为此分配两个端口,以1008010443为例.

使用HTTP/HTTPS协议穿透的Web,需使用http://xxx.com:10080https://xxx.com:10443来访问.

  • 登陆路由器配置以下2个端口映射
  • 本地端口 10080/10443
  • 外部端口 10080/10443
  • IP为群晖NAS的内网IP

由于本文的宗旨是为远程办公使用,HTTP和HTTPS的需求相对很少.如有需求可使用本站提供的免费frp服务来实现无端口访问网站.

TCP 端口

本文将以穿透Windows3389远程桌面端口Linux服务器的22 SSH端口为例.由于此两个默认端口暴露在公网存在安全隐患,在端口映射时需选择高位端口以确保安全.本文以规划2222233333两个端口为例.同时frpsfrpc的通讯端口默认为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最新版.

由于我制作的docker镜像时间不久,搜索frps需要翻好几页,直接搜索ID更方便.

启动容器

映像中选择下载好的镜像点击启动.

高级设置

挂载 frps.ini

添加文件,选择上文配置的frps.ini文件,装载路径复制粘贴/frp/frps.ini路径.

请不要胡乱填写装载路径,此路径由镜像内指定路径,无法修改.

端口设置

端口设置中手动添加上文规划好的端口.其中7500为内网Web管理端口,无需路由器映射,仅在内网管理查看即可.

完成部署

应用即可启动服务.

frp服务器信息

  • 服务器地址:DDNS域名
  • 端口:7000
  • Token:12345678

配置客户端 frpc

frp 官方提供了LinuxWindows版客户端,访问官方项目releases页面下载.安装配置本站也有各种教程,详情请参考:FRP内网穿透专栏.

下文仅针对 Windows 远程桌面和 Linux 的 SSH 登陆为例,来配置 frpc.ini 文件.

配置 Windows 远程桌面穿透

开启Windows的远程桌面,并配置frpc.ini文件.注意修改IPWindows 电脑内网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一键安装脚本.注意修改IPLinux服务器内网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内网穿透相关技巧,教程及信息,请持续关注相关专栏:

本文为 Stille 原创文章.经实践,测试,整理发布.如需转载请联系作者获得授权,并注明转载地址.

本文链接 https://www.ioiox.com/archives/86.html

最后修改:2020 年 03 月 01 日 11 : 58 AM
如果喜欢我的文章,觉得对你有帮助,请随意赞赏!