一、环境
- 云服务器(轻量应用服务器)
- 黑群晖DSM 6.2-23739
- frp版本0.38.0
二、云服务器frps配置
- 云服务器用的是腾讯云的,直接用wget去GitHub下载比较慢,最后还卡住了。先下载下来拷到服务器上,此处推荐用FinalShell,自带文件管理,对新手太友好了,传文件非常方便(当然用WinSCP也可以但要再开一个软件),再也不用vi/vim啥的了,自己电脑上编辑好,拉进去,或者直接在软件里改就行。
wget https://github.com/fatedier/frp/releases
下载下来的文件解压,直接传到/usr/local
里。
当然命令行解压也可以,解压到指定目录
tar -xvf frp_0.38.0_linux_amd64.tar.gz -C /usr/local
- 配置服务文件frp.service
[Unit]
Description=The nginx HTTP and reverse proxy server
After=network.target remote-fs.target nss-lookup.target
[Service]
Type=simple
ExecStart=/usr/local/frp/frps -c /usr/local/frp/frps.ini
KillSignal=SIGQUIT
TimeoutStopSec=5
KillMode=process
PrivateTmp=true
StandardOutput=syslog
StandardError=inherit
[Install]
WantedBy=multi-user.target
其中ExecStart=/usr/local/frp/frps -c /usr/local/frp/frps.ini改成对应的文件地址。
-
把文件frp.service放到指定位置
/usr/lib/systemd/system/frp.service
-
重新加载服务的配置文件
systemctl daemon-reload
-
启动/停止/重启,查看状态,设置开机自启/关闭开机自启
systemctl start frp
systemctl stop frp
systemctl restart frp
systemctl status frp
systemctl enable frp
systemctl disable frp
- 服务端 frps.ini配置
[common]
bind_port = 10001 # 监听端口,客户端配置对应端口
vhost_http_port = 8080 # 当客户端配置type为http时使用这个端口访问
vhost_https_port = 8080 # 当客户端配置type为https时使用这个端口访问
token = csdn # 认证token,客户端配置对应token
dashboard_port = 10000 # frp控制台,看起来更直观,建议开起来
dashboard_user = csdn
dashboard_pwd = csdn # dashboard的用户名、密码
log_file = ./frps.log # 日志文件记录位置
log_level = info # 日志级别
log_max_days = 3 # 记录日志天数
三、群晖docker配置frpc
- docker注册表搜frp,之前的教程基本用的是oldiy那个,已经很久没更新了,红框这个是最新0.38.0版本的。
- 配置frpc.ini,这里放的路径是我自己新建的文件夹
docker/frp
。
[common]
server_addr = 124.1.1.1 #腾讯云服务器的外网
server_port = 10001 #服务器配置的监听端口
token = csdn
[nas]
type = http #http方式,下面会介绍一种tcp方式
local_ip = 192.168.199.199 #群晖在内网使用的ip
local_port = 5000 #本地端口
custom_domains = 124.1.1.1 #域名,无域名配置服务器ip
# 此种配置方式与frps.ini中配置的vhost_http_port相关联,访问时使用124.1.1.1:8080访问
- 为了更好理解配置两个ini文件,下面示例另一种WEB访问方式,使用tcp
[common]
server_addr = 124.1.1.1 #腾讯云服务器的外网
server_port = 10001 #服务器配置的监听端口
token = csdn
[nas]
type = tcp #tcp方式
local_ip = 192.168.199.199 #群晖在内网使用的ip
local_port = 5000 #本地端口
remote_port = 9991 #远程端口,也是是外网访问端口
custom_domains = 124.1.1.1 #域名,无域名配置服务器ip
# 此种配置方式与frps.ini中配置的vhost_http_port无关,访问时使用124.1.1.1:9991访问
- 去【映像】里启动,勾上【使用高权限执行容器】,进入【高级设置】。
- 【存储空间】里【添加文件】,选中刚配置好的frpc.ini,装载路径按图中配置
/etc/frp/frpc.ini
。
- 【网络】里【使用与 Docker Host 相同的网络】打勾
- 启动容器,便可以在刚才配置的控制台dashboard里按刚配置HTTP或者TCP选项里看到此客户端,至此利用frp实现内网穿透。
参考
https://gofrp.org/
https://zhuanlan.zhihu.com/p/129076009
https://post.smzdm.com/p/aoowo2kn/