【Nas/群晖/服务器】FRP内网穿透实现外网访问

一般来说,在同一局域网下的终端设备可以相对自由地互相访问。但是,如果想要通过外网远程访问家中或者公司局域网中的服务器或者Nas,这种情况该怎么办呢?

解决的方法大致分为3种:
1. QuickConnect(QC):白群晖官方连接方式(黑群晖不可用!!!),但是由于服务器在台湾,所以并不那么Quick,不过尚可接受。
2. 外网映射:最推荐的方式!网络带宽可以跑满,流量无限制!是最简单也最困难的方式,因为需要公网IP!(这里指的是IPv4公网IP,因为IPv6全部都是公网IP,但是目前仅移动端4G/5G普及,运营商及路由器尚未普及IPv6)只要有了公网IP,那么恭喜你,自由的网络世界向你敞开,只需简单设置路由器的端口映射(动态IP需DDNS解析),即可实现外网访问。三大运营商中,电信和联通较容易通过打运营商电话获得公网IP(借口安装监控或者威胁投诉),移动就别想了(移动公网IP很少,不会给你的,洗洗睡吧~)。
3. 内网穿透:通过花生壳或者其他第三方服务进行内网穿透,缺点是免费版仅供体验,付费版收费太贵(土豪请忽略~)

本文主要介绍内网穿透,内网穿透具体有几种表现形式:
1. 第三方服务(如花生壳),优点省心,缺点贵!
2. Nas伴侣硬件
3. 蒲公英X1旁路组网,优点:便宜(100软妹币左右),缺点:有连接终端数量限制。
4. FRP(有其他网络的公网IP)。
它们原理相似,大致都是通过局域网内网IP绑定已有公网IP(第三方提供/硬件/云服务器),然后通过公网IP转发出去。

接下来详细介绍FRP,什么是FRP呢?Fast Reverse Proxy(FRP)是一种高性能的反向代理技术,能够使内网的机器对外网环境提供 http 或 https 服务。具体如何实现呢?首先你需要有两台机器,一台位于外网环境(云服务器或具有公网IP的机器)和一台处于内网环境(局域网)中的机器。本文以腾讯云Win10服务器(外网)和猫盘Plus刷的黑群晖(内网)为例,介绍FRP的具体实现步骤。首先在两台机器上根据操作系统和架构分别下载对应的压缩包,下载地址:GitHub地址

【Nas/群晖/服务器】FRP内网穿透实现外网访问插图
Github地址(可能需要翻墙)

Server端(外网端)配置

1.将压缩包解压至任意位置,右击编辑frps.ini。

【Nas/群晖/服务器】FRP内网穿透实现外网访问插图1

2.按以下提示修改frps.ini的内容,并保存。

[common] bind_port = 7000 #供客户端主机连接的端口,默认为7000 dashboard_port = 7001 #用于查看连接状态的端口,可以不设置

3.在解压目录下打开终端命令行,输入启动命令:

frps -c frps.ini # 成功启动后会输出以下信息: [root.go:200] frps uses config file: frps.ini [service.go:192] frps tcp listen on 0.0.0.0:7000 [service.go:294] Dashboard listen on 0.0.0.0:7001 [root.go:209] frps started successfully

4.登录localhost:7001 (dashboard端口)查看状态,若能打开此页面即为启动成功。

 FRP dashboard页面
FRP dashboard页面

Client端(内网端)配置

1.将下载好的Linux的FRP压缩包放到任意路径下,并解压。

【Nas/群晖/服务器】FRP内网穿透实现外网访问插图3

2.打开并按以下提示修改frpc.ini文件,并保存。

[common] server_addr = 120.88.88.88 #外网端机器的公网IP地址,必须修改为你自己的 server_port = 7000 #连接到服务器端的端口,必须与上面的bind_port保持一致 [ssh] type = tcp local_ip = 127.0.0.1 #局域网本机地址,默认为127.0.0.1,无需修改 local_port = 5000 #内网机器监听端口,群晖默认为5000 remote_port = 6002 #外网机器用于转发的端口

3.启动服务

由于无法直接输入终端指令,因此可以使用Putty等工具连接到群晖,IP填写Nas的局域网IP,端口默认22,连接后输入Nas的账号密码即可连接到群晖。进入刚刚解压后的文件路径,输入启动命令:

cd xxxx # xxxx为解压后的文件路径 ./frpc -c frpc.ini
【Nas/群晖/服务器】FRP内网穿透实现外网访问插图4
Putty

4. 成功连接后可以在外网服务器端查看连接状态,也可登录FRP的dashboard页面查看连接状态。

[service.go:449] [***] client login info: ip [xx.xx.xx.xx:xxxx] version [0.37.1] hostname [] os [linux] arch [arm64] [tcp.go:63] [***] [ssh] tcp proxy listen port [5000] [control.go:444] [***] new proxy [ssh] success

5.群晖每次开关机后都需要重新连接FRP,比较繁琐,因此可以按下图设置自定义脚本实现Nas开机自动启动FRP进行内网穿透。

cd xxxx && nohup ./frpc -c frpc.ini >/dev/null 2>&1 & #xxxx为压缩包解压后的文件路径,可右击文件夹查看文件路径

【Nas/群晖/服务器】FRP内网穿透实现外网访问插图5

那么现在,你应该已经可以通过 http://你的公网IP:6002(或者你自定义的端口号)来访问处于内网的服务器或Nas了,恭喜你!下面是我整理的网络通信示意图,来方便你理解FRP是如何工作的。

【Nas/群晖/服务器】FRP内网穿透实现外网访问插图6

原文链接:https://blog.csdn.net/qq_40039731/article/details/122962256?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522168525635616782427442085%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fblog.%2522%257D&request_id=168525635616782427442085&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~blog~first_rank_ecpm_v1~times_rank-22-122962256-null-null.268%5Ev1%5Econtrol&utm_term=NAS%E3%80%81%E7%BE%A4%E6%99%96%E3%80%81%E9%98%BF%E9%87%8C%E4%BA%91%E3%80%81%E5%9F%9F%E5%90%8D%E8%A7%A3%E6%9E%90%E3%80%81%E5%86%85%E7%BD%91%E7%A9%BF%E9%80%8F%E3%80%81ipv6%E3%80%81ddns%E3%80%81%E8%BD%BB%E9%87%8F%E7%BA%A7%E4%BA%91%E6%9C%8D%E5%8A%A1%E5%99%A8%E3%80%81%E9%93%81%E5%A8%81%E9%A9%AC%E3%80%81%E5%A8%81%E8%81%94%E9%80%9A%E3%80%81DSM%E3%80%81DSM6.0%E3%80%81%E7%BE%A4%E6%99%96nas%E3%80%81%E4%BA%91%E6%9C%8D%E5%8A%A1%E5%99%A8%E3%80%81%E8%9C%97%E7%89%9B%E6%98%9F%E9%99%85%E3%80%81%E9%BB%91%E7%BE%A4%E6%99%96%E3%80%81docker%E3%80%81%E5%AE%B9%E5%99%A8%E9%95%9C%E5%83%8F%E3%80%81%E5%9F%9F%E5%90%8D%E6%B3%A8%E5%86%8C%E3%80%81%E5%AE%9D%E5%A1%94%E3%80%81%E5%8F%8D%E5%90%91%E4%BB%A3%E7%90%86%E3%80%81nginx%E3%80%81frp%E3%80%81%E5%8A%A8%E6%80%81%E5%9F%9F%E5%90%8D%E8%A7%A3%E6%9E%90

© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享