基于FRP内网穿透实现plex远程访问 _
anka前言
最近折腾了plex电影库,但是不能够远程访问,本着折腾无止境的念头,所以才有了使用frp服务器内网穿透的想法……周末开干。
使用了digitalocean的vps作为服务器,一个月5刀的费用。后续还可以翻墙,搭建各种功能,还算可以吧~
frp工作原理:简单地说,frp就是一个反向代理软件,它体积轻量但功能很强大,可以使处于内网或防火墙后的设备对外界提供服务,它支持HTTP、TCP、UDP等众多协议。
服务器端
系统使用Ubuntu 18.04.5 x64,frp客户端和服务端本身同时均支持Linux和Windows,且配置方法一样,请根据实际环境自行测试。
服务器端配置代码:
# 下载frp文件并进行解压
wget https://github.com/fatedier/frp/releases/download/v0.22.0/frp_0.22.0_linux_amd64.tar.gz
tar -zxvf frp_0.22.0_linux_amd64.tar.gz
cp -r frp_0.22.0_linux_amd64 frp
cd frp && rm frpc && rm frpc.ini
# 修改配置文件
vim frps.ini
# 文件大致格式
[common]
bind_port = 7000 # 默认只有这一行
dashboard_port = 7500 # 开启dashboard
token = 12345678 # token为服务器端和客户端的标识
dashboard_user = admin # dashboard的用户名
dashboard_pwd = admin # dashboard的密码
- “bind_port”表示用于客户端和服务端连接的端口,这个端口号我们之后在配置客户端的时候要用到。
- “dashboard_port”是服务端仪表板的端口,若使用7500端口,在配置完成服务启动后可以通过浏览器访问 x.x.x.x:7500 (其中x.x.x.x为VPS的IP)查看frp服务运行信息。
- “token”是用于客户端和服务端连接的口令,请自行设置并记录,稍后会用到。
- “dashboard_user”和“dashboard_pwd”表示打开仪表板页面登录的用户名和密码,自行设置即可。
运行服务器:
# 第一种
./frps -c frps.ini # 这样会阻塞住,ctrl+c就会停止
# 第二种
nohup ./frps -c frps.ini & # 这样就丢到后台去了,通过jobs可以看后台运行的服务。
针对上述第二种方案怎么关闭:
ps -aux|grep frp| grep -v grep
root 3600 0.1 0.1 110188 9484 pts/0 Sl 15:04 0:00 ./frpc -c ./frpc.ini
kill -9 3600
怎么开机启动:
vi /etc/systemd/system/frps.service # 新建此文件,并写入以下内容,注意frps和frps.ini的位置
[Unit]
Description=frps daemon
[Service]
Type=simple
ExecStart=/usr/bin/frps -c /etc/frps/frps.ini
[Install]
WantedBy=multi-user.target
# 启动并设为开机自启。
systemctl start frps
systemctl enable frps
客户端
同样地,根据客户端设备的情况选择相应的frp程序进行下载,Windows下下载和解压等步骤不再描述。
假定你下载了“frp_0.22.0_windows_amd64.zip”,将其解压在了D盘根目录下,并且将文件夹重命名为“frp”,可以删除其中的frps和frps.ini文件。
用文本编辑器打开frpc.ini,与服务端类似,内容如下。
[common]
server_addr = x.x.x.x
server_port = 7000
token = 12345678
[plex]
type = tcp
local_ip = 127.0.0.1
local_port = 32400
remote_port = 7001
"server_addr" 为服务端IP地址,填入即可。
"server_port"为服务器端口,填入你设置的端口号即可,如果未改变就是7000
"token"是你在服务器上设置的连接口令,原样填入即可。
原理图:来源于网络
运行:
cmd命令符窗口进入目录:frpc -c frpc.ini,同样的,会有一个窗口,而且关了就停了。
后台运行:新建frp.bat,将下述命令放进去,点击frp.bat即可运行。
@echo off
if "%1" == "h" goto begin
mshta vbscript:createobject("wscript.shell").run("""%~nx0"" h",0)(window.close)&&exit
:begin
REM
D:
cd D:\frp
frpc -c frpc.ini
exit
关闭:
之后直接运行这个 .bat 文件即可启动frpc并隐藏窗口(可在任务管理器中退出)。
至于开机启动,把这个 .bat 文件直接扔进Windows的开机启动文件夹就好了 🙂
总结
至此,我们可以通过手机用vps的ip地址加7003端口访问plex服务了,至于怎么绑定域名,还没有折腾明白,先写到这里。
后续
已经使用宝塔面板反代绑定了域名,但是……传出去之后宿舍看还是渣渣画质,不如不开。如果回家或者在外边,倒是可以开,或者后期再弄一个私有云盘。
参考
[基于FRP内网穿透实现plex远程访问 – Tomorrow’s blog](https://tomorrow505.xyz/%E5%9F%BA%E4%BA%8EFRP%E5%86%85%E7%BD%91%E7%A9%BF%E9%80%8F%E5%AE%9E%E7%8E%B0plex%E8%BF%9C%E7%A8%8B%E8%AE%BF%E9%97%AE/)
评论列表(1条)
参考:
[基于FRP内网穿透实现plex远程访问 – Tomorrow’s blog](https://tomorrow505.xyz/%E5%9F%BA%E4%BA%8EFRP%E5%86%85%E7%BD%91%E7%A9%BF%E9%80%8F%E5%AE%9E%E7%8E%B0plex%E8%BF%9C%E7%A8%8B%E8%AE%BF%E9%97%AE/)