使用理由
本人前期入坑星际蜗牛安装了黑群晖从而接触到了nas/软路由的坑,一通折腾也了解了不少知识。由于单位有动态公网ip,而且由我维护,所以这台蜗牛一直可以连接公网,使用非常方便。后来打算在家里也安装一个黑群晖,可惜家里的网络是中国移动没有外网ip,必须进行内网穿透。研究了不少方案,看了好多教程基本思路是搭建一个服务器端进行转发,但是本人蜗牛已安装了黑群晖,不想(也没钱)另外搭建服务器,于是花了点时间找到一篇文章写的是群晖上搭建frp的教程
按照这个操作了一通,发现客户端一直崩溃。研究了半天发现他的代码有错误。现在更正一下。
代码展示
服务器端Frps.ini的代码:
# frps.ini
[common]
bind_port = 4000 #服务器的端口
token = 123456 #明文密码,简单设置即可(设置自己的简单密码)
客户端 Frpc.ini代码:
#frpc.ini
[common]
server_addr = www.xxxx.cn #服务器网址或ip(xxx.xxx.xxx.xxx)
server_port = 4000 #服务器端口
token = 123456 #服务器frps.ini中设置的明文密码
[ssh] #穿透名称
type = tcp #协议,不要修改
local_ip = 127.0.0.1 #本机端口是127.0.0.1,其他设备修改为该ip
local_port = 22 #内部的端口
remote_port = 6000 #映射到外部的端口
[DSM] #复制以上信息,按需修改
type = tcp
local_ip = 127.0.0.1
local_port = 5000
remote_port = 3000
其它重点
以下这些重点是我研究念你Gentle的文章和司波图大佬的视频总结的。
1. Docker注册表中搜索并下载chenhw2/frp
2. Frps是服务器端,frpc是客户端
3. Docker卷映射:frps.ini映射到/frp/frps.ini ,frpc.ini映射到/frp/frpc.ini
4. 网络设置必须勾选“使用与Docker Host相同的网络”
5. 环境设置要选择性输入frpc或者frps
6. 设置自动重新启动
7. 两端都正常运行后还需要在服务器的路由器里做端口映射,映射到服务器ip上。除了服务器端开放的端口用于双方连接必须做端口映射以外,客户端需要穿透哪个端口,服务器端路由器就要映射哪个端口。
8. Frp也可以穿透其他内网ip的设备
9. Unraid 系统的docker ip和主机分离,需要使用虚拟机作为frp跳板或者物理机安装frp
10. 客户端修改了Frpc.ini内容添加了新的端口映射后需重启一下容器才能生效。
11.内网穿透的速度完全取决于服务器端的速度。
总结
成功启动后发现docker占用其实是非常低,几乎可以忽略不计,不需要服务器级别的硬件就能支持。但是高负载的情况没有测算过,应该也高不到哪去。现在的穿透服务器是放到了群晖上。单位的主路由是我安装的ikuai,听说ikuai4.0系统将会支持docker,到时候也可以直接将服务器端安装在主路由上。其实在研究中还发现了一个叫lanproxy的工具也可以在两个群晖docker上部署内网穿透,但是我不太会用docker,不知道这个软件的秘钥要写在哪个配置文件,又应该映射到哪个路径,研究两天放弃了,哪个大佬懂的可以告知一下我呗,谢谢!
另外我就是一个小白,研究这些都是业余爱好,请各位大佬轻怼。