三、内网穿透
1、docker设置
docker去套件中心点一下就可以安装。
首先点开docker,
- 选择注册表(docker的软件库),
- 搜索栏输入 chenhw 搜索,
- 双击 chenhw/frp 默认下载就可以了。

等待 chenhw/frp 下载时候可以设置下FRP服务端和客户端的配置文件。
准备工作:
1.一个域名,只要能够正常解析就行
2.xshell或其他ssh软件
3.一台云服务器,流量尽可能多,带宽能够尽量跑满自己家庭宽带的上行即可
4.基础linux知识(实在不会可以寻求百度自行琢磨
查看frp目前的版本:https://github.com/fatedier/frp/releases, 本教程以0.33版本作为例子
一、服务端:
wget https://github.com/fatedier/frp/releases/download/v0.33.0/frp_0.33.0_linux_amd64.tar.gz |
编辑frps.ini文件:
[common] |
保存后启动服务端, 测试没问题后用nohup在后台运行就行了
nohup ./frps -c ./frps.ini & |

上图为直接执行./frps -c ./frps.ini返回的成功启动语句,使用nohup启动不会显示
二、frpc群晖docker配置
1、点进file station 在docker文件夹下创建frp文件夹,然后把编辑好的frpc.ini上传上去

2、在docker映像里双击打开刚刚下载好的映像。

3、选择高级设置

4、高级设置自动启动打√,设置卷、网络、环境。和我设置的一样就可以




这样服务器端和客户端就都设置好了
三、frpc群晖群晖ssh配置
也可以通过登陆群晖ssh来设置客户端
wget https://github.com/fatedier/frp/releases/download/v0.33.0/frp_0.33.0_linux_amd64.tar.gz |
编辑frpc.ini文件:
[common] |
群晖上使用 nohup后台启动程序:
nohup ./frpc -c ./frpc.ini & |
穿透后即可出门在外访问群晖网页
群晖客户端设置开机自启:
vi /usr/syno/etc.defaults/rc.sysv/frpc.sh |
设置脚本权限:
cd /usr/syno/etc.defaults/rc.sysv/ |
编辑启动文件:
vi /etc/rc |
在倒数第二排添加:
/usr/syno/etc.defaults/rc.sysv/frpc.sh |

然后可以重启群晖测试自启脚本了
四、端口映射
服务器的运营商经常将443,80等端口禁用,我们想从外网访问群晖的应用就需要进行端口映射
协议类型
代理名称(不能一样)
域名配置(根据域名解析)
内网主机地址(内网主机ip)
内网端口
远程主机端口(HTTP和HTTPS端口和服务端一致)
加密(是和否不影响连接)
压缩
tcp
nas1
192.168.1.100
5001
443
是
是
tcp
drive
192.168.1.100
6690
6690
是
是
tcp
photo
192.168.1.100
80
80
是
是
tcp
note
192.168.1.100
5000
5000
是
是
tcp
download
192.168.1.100
8000
8000
是
是
tcp
audio
192.168.1.100
8800
8800
是
是
tcp
video
192.168.1.100
9007
9007
是
是
https
nas
192.168.1.100
5001
443
是
是
https
router
192.168.1.1
8443
443
是
是
群晖各个应用端口
这里可以配置多个端口映射服务。我设置了三个,一个是软路由的ssh端口,一个是群晖5000端口,一个是jellyfin的8096端口。frpc.ini配置如下
[common]
server_addr = nat.vps.com #服务器域名或者公网ip,这里填的是我nat vps的外网域名
server_port = 23001 #与服务端bind_port一致
token = 123456 #与服务端密钥对应
[ssh]
type = tcp #连接协议
local_ip = blog.leihub.cn #表示本地主机
local_port = 22 #内部的ssh端口号
remote_port = 23002 #自定义外部端口
[DSM]
type = tcp #连接协议
local_ip = 192.168.1.2 #群晖的内网ip地址
local_port = 5000 #群晖的5000端口
remote_port = 23003 #自定义外部端口
[Jellyfin]
type = tcp #连接协议
local_ip = 192.168.1.2 #群晖的内网ip地址
local_port = 8096 #jellyfin的8096端口
remote_port = 23004 #自定义外部端口
————————————————
附
- 一个服务器 frps 可以对多个客户端来使用,服务器 HTTP 和 HTTPS 端口是固定的两个,所以多个客户端使用时就得使用不同的域名了。
- 群晖各服务的端口:https://www.synology.com/zh-cn/knowledgebase/DSM/tutorial/General/What_network_ports_are_used_by_Synology_services
- 通过群晖内置 DNS 服务器来自动识别同一域名的内外网访问:https://post.smzdm.com/p/674271/
注意服务器端和客户端的时间要一致,不然会不定时的断线
五、端口转发
如果
