侧边栏壁纸
  • 累计撰写 251 篇文章
  • 累计创建 138 个标签
  • 累计收到 16 条评论

目 录CONTENT

文章目录

Frp 实现外网访问群晖 NAS

Sherlock
2018-02-15 / 0 评论 / 0 点赞 / 2631 阅读 / 6486 字 / 编辑
温馨提示:
本文最后更新于 2024-02-19,若内容或图片失效,请留言反馈。部分素材来自网络,若不小心影响到您的利益,请联系我们删除。

frps frpc 配置

不再赘述,具体可参考官方文档,贴一下我的配置文件:

#frps
[common]
bind_port=1103
vhost_http_port=11031
vhost_https_port=11034

## log - trace, debug, info, warn, error
log_file = ./frps.log
log_level = info
log_max_days = 3

## dashboard
dashboard_port=11030
dashboard_user=xxx
dashboard_pwd=xxx
#frpc
[common]
server_addr = frp.xxx.com
server_port = 1103
privilege_token = xxxxxx

log_file = ./frpc.log
log_level = info
log_max_days = 3

[ssh]
type = tcp
local_ip = 127.0.0.1
local_port = 22
remote_port = 11032

[nasdrivetcp]
type = tcp  
local_ip = 127.0.0.1  
local_port = 6690
remote_port = 11033

[nas]
type = http
local_port = 5000
custom_domains = nas.frp.xxx.com

[web]
type = http
local_port = 80
custom_domains = nasweb.frp.xxx.com

群晖下 frpc 自动启动

需要以 root 账号操作,DSM6+ 不再提供root账号,可登陆admin账号,然后sudo -i提升为root账号

部署 frpc

mkdir -p /usr/local/frp
cp -Rf /volume1/homes/y836097668/Drive/dev/frp_synology/frp_0.19.1_linux_amd64/ /usr/local/frp/

cd /usr/local/frp/

echo '#/bin/bash
cd /usr/local/frp/frp_0.19.1_linux_amd64
nohup ./frpc -c ./frpc.ini &
' > ./frpc.sh  

chmod +x frpc.sh  
# /usr/local/frp/frpc.sh

设置自启动

1.登录群晖 NAS 系统

2.进入控制面板

3.任务计划>新增>触发的任务>用户定义的脚本

4.常规

  • 设置名称名称,如:frp
  • 用户账号:root
  • 事件:开机

5.任务设置

用户定义的脚本,上面创建的脚本

/usr/local/frp/frpc.sh

以上设置可以成功,但在群晖系统升级后,启动文件和frpc文件都丢失了,故测试一下放到 /usr/local/frp/目录以观后效。。。。心累

Docker 启动

也可以使用docker部署,推荐stilleshan/frpc镜像。

挂载文件docker/frp/frpc.ini:/frp/frpc.ini
网络选择:使用与 Docker Host 相同的网络
高权限执行容器

centos 7 下 frps 自启动

复制文件

sudo cp frps /usr/local/bin/frps
sudo mkdir /etc/frp
sudo cp frps.ini /etc/frp/frps.ini

编写 frp service 文件,以 CENTOS7 为例

vim /usr/lib/systemd/system/frps.service

内容如下

[Unit]
Description=frps
After=network.target

[Service]
TimeoutStartSec=30
ExecStart=/usr/local/bin/frps -c /etc/frp/frps.ini
ExecStop=/bin/kill $MAINPID

[Install]
WantedBy=multi-user.target

启动 frp 并设置开机启动

sudo systemctl enable frps
sudo systemctl start frps
sudo systemctl status frps

群晖DSM 服务使用哪些网络端口

https://kb.synology.cn/zh-cn/DSM/tutorial/What_network_ports_are_used_by_Synology_services

类型端口号协议
DSM5000 (HTTP)、5001 (HTTPS)TCP
Synology Drive Server80链接共享、443链接共享、5000 (HTTP)、5001 (HTTPS)、6690文件同步/备份TCP
WebDAV5005、5006 (HTTPS)TCP

额外代理 6690 端口

前文 配置文件中已经体现

Synology Drive Client的默认端口是6690,移动端的Drive的默认端口是5000

这里的默认端口是指,NAS端的Drive服务对PC端Drive程序开放的默认访问端口为6690,对移动端的App开放的默认访问端口为5000。
默认还有一层意思是,Drive客户端程序在你输入域名后,会检测你输入的域名是不是带有端口号,如果没有填写端口号,客户端程序会自动添加上默认的访问端口去访问NAS端的Drive,PC端就自动添加6690,移动端就自动添加5000。
但如果你自己填写了端口号,就会使用你填写的端口号去访问NAS端的Drive。

所以在局域网中直接输入群晖的IP,加不加6690端口都能连接上Drive服务,但在外网下就需要用一个端口转发到群晖所在IP的6690端口。

不加端口号连接Drive。既然客户端会帮我默认添加6690端口,那么想要不加端口号连接Drive,只需要把外部的6690端口转发到局域网内群晖所在IP的6690端口上即可。如果外部6690端口不可用,只能单独指定一个端口了。

群晖DSM 集成短信提醒

选择的是国内小众的短信服务提供商,短信宝(0.1¥/条),支持最小50条充值。

接口调用示例:

http://www.smsbao.com/sms?u=$username&p=$password&m=$mobile&c=$content

# p 平台登录密码MD5后的值(32位,不区分大小写)
# u 在本短信平台注册的用户名
# m 接收的手机号;群发时多个手机号以逗号分隔,一次不要超过99个号码(不能带+86)
# 发送内容,采用UTF-8 URL ENCODE --- 代码示例:UrlEncode("【短信宝】您的验证码是4564", "UTF-8")

统一使用 UTF-8 编码,请确保文件编码及传入参数的格式

不过群晖是国际化的系统,要求必须带+86,可以通过服务端转发,以 Nginx 为例:

# 短信接口转发到短信宝	
server {
	listen       80;
	server_name  "sms.sherlocky.com";
	
	## 参数u 代表用户名
	set $u $arg_u;
	## 参数p 代表密码需要MD5以下:md5(xxx),此处暂时写死
	set $p $arg_p;

	## 根据国内运营商要求,必须加上【XXX】的内容才能发送短信,
	## 单独写个转发是因为国际化的群晖DSM在通知填写的号码的时候,强制填写国际代码,所以号码前面会加“+86”这3个字符
	## 而短信宝又太本土化,加了+86就发送不了短信了
	location /sms {
		## 参数m 代表手机号,不能带+86
		set $m "xxxxxxx";
		## 短信内容前缀:【XXXX】(国家要求必须有前缀)
		set $cPrefix "%E3%80%90XXX%E3%80%91";
		proxy_pass http://www.smsbao.com/sms?u=$u&p=$p&m=$m&c=$cPrefix$arg_c;
		proxy_redirect off;
		proxy_set_header X-Real-IP $remote_addr;
		proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
	}

	location /query {
		proxy_pass http://api.smsbao.com/query?u=$u&p=$p;
		proxy_redirect off;
		proxy_set_header X-Real-IP $remote_addr;
		proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
	}		
}	

查询余额API

http://api.smsbao.com/query?u=$username&p=$password

邮箱配置

使用126邮箱,用户名不包含@126.com,密码不是邮箱密码,是网易设置里的客户端授权密码。

0
  1. 支付宝打赏

    qrcode alipay
  2. 微信打赏

    qrcode weixin

评论区