基于FRP内网穿透实现plex远程访问

最近折腾了plex电影库,但是不能够远程访问,本着折腾无止境的念头,所以才有了使用frp服务器内网穿透的想法……周末开干。

使用了云穿透www.yunchuantou.com,提供免费线路

frp工作原理:简单地说,frp就是一个反向代理软件,它体积轻量但功能很强大,可以使处于内网或防火墙后的设备对外界提供服务,它支持HTTP、TCP、UDP等众多协议。

服务器端


系统使用Ubuntu 18.04.5 x64,frp客户端和服务端本身同时均支持Linux和Windows,且配置方法一样,请根据实际环境自行测试。

服务器端配置代码:

# 下载frp文件并进行解压wget https://github.com/fatedier/frp/releases/download/v0.29.0/frp_0.29.0_linux_amd64.tar.gz
tar -zxvf frp_0.29.0_linux_amd64.tar.gz
cp -r frp_0.29.0_linux_amd64 frpcd 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的密码Copy
  • “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可以看后台运行的服务。Copy

针对上述第二种方案怎么关闭:

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.inikill -9 3600Copy

怎么开机启动:

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 frpsCopy

客户端


同样地,根据客户端设备的情况选择相应的frp程序进行下载,Windows下下载和解压等步骤不再描述。
假定你下载了“frp_0.29

.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"是你在服务器上设置的连接口令,原样填入即可。Copy

原理图:来源于网络

运行:

cmd命令符窗口进入目录:frpc -c frpc.ini,同样的,会有一个窗口,而且关了就停了。

后台运行:新建frp.bat,将下述命令放进去,点击frp.bat即可运行。

@echo offif "%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.iniexitCopy

关闭:

之后直接运行这个 .bat 文件即可启动frpc并隐藏窗口(可在任务管理器中退出)。
至于开机启动,把这个 .bat 文件直接扔进Windows的开机启动文件夹就好了 🙂

总结


至此,我们可以通过手机用vps的ip地址加7003端口访问plex服务了,至于怎么绑定域名,还没有折腾明白,先写到这里。

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注