树莓派安装Aria2结合frp实现外网域名访问

0x00 准备工作

  • LNMP环境
  • 已经安装好Aria2并能够正常访问,Aria2安装过程:https://nico.cc/archives/85/
  • 单端口多域名,80端口访问http,443端口访问https

0x01 frp安装及配置

服务器安装frps及配置

我的安装路径/opt/frps/以下是我的两个frps的配置,需要运行两个frps进程,一个用来转发80端口,另一个用来转发aria2 RPC 地址端口,端口可自定义,我的为6800

frps_6800

[common]
bind_addr = 0.0.0.0
bind_port = 7001
auth_token = 1234567
vhost_https_port = 6800
log_file = /opt/frps/frps_6800/frps.log
log_level = info

frps_80

[common]
bind_addr = 0.0.0.0
bind_port = 7000
auth_token = 1234567
vhost_https_port = 80
vhost_https_port = 443
log_file = /opt/frpc/frpc_80/frpc.log
log_level = info

2. 本地安装frpc

  • 由于我是在树莓派上安装的,因此frpc选择的是ARM版本,根据相应环境选择相对应版本。

我的安装路径/opt/frpc/,以下是我的两个frpc的配置

frpc_6800

[common]
server_addr = 136.45.16.84
server_port = 7001
auth_token = 1234567
log_file = /opt/frpc/frpc_6800/frpc.log
log_level = info

[web]
type = http
local_port = 6800
custom_domains = aria2.920.ai
host_header_rewrite = aria2.920.ai

frpc_80

[common]
server_addr = 136.45.16.84
server_port = 7000
auth_token = 1234567
log_file = /opt/frpc/frpc_80/frpc.log
log_level = info

[web]
type = http
local_port = 80
custom_domains = aria2.920.ai
host_header_rewrite = aria2.920.ai

注意:

  • 由于本地多个域名共用一个80端口,nginx通过http 请求中的 host 字段来确定是哪个网站,因此需要加上host_header_rewrite,而 custom_domains是必须的。

0x02 frp自启动

frps实现开机自启

cd /etc/init.d
touch frps && chmod +x frps
vim frps

其中frps的内容为

#!/bin/sh
### BEGIN INIT INFO
# Provides: frps
# Required-Start: $network $remote_fs $local_fs
# Required-Stop: $network $remote_fs $local_fs
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: frps
# Description: frp
### END INIT INFO

nohup /opt/frps/frps_6800/./frps -c /opt/frps/frps_6800/./frps.ini >/dev/null 2>&1 &

nohup /opt/frps/frps_80/./frps -c /opt/frps/frps_80/./frps.ini >/dev/null 2>&1 &

exit 0

保存并设置为开机自启

update-rc.d frps defaults

frpc实现开机自启

由于需要启动两个frpc进程,在利用Systemd Service实现开机自启的过程中,由于[Service] 部分Type为simple时
ExecStart后面只能跟一条命令,因此需要把启动两个frpc的命令封装成一条命令,使用shell脚本完成

/opt/frpc/目录下新建一个frpc.sh,并赋予执行权限

cd /opt/frpc/
touch frpc.sh && chmod +x frpc.sh
vim frpc.sh

其中frpc.sh的内容为

#!/bin/bash

/opt/frpc/frpc_80/./frpc -c /opt/frpc/frpc_80/./frpc.ini &

/opt/frpc/frpc_1638/./frpc -c /opt/frpc/frpc_1638/./frpc.ini

然后在/usr/lib/systemd/system/创建frpc.service,如果没有system文件夹,创建一个即可

cd /usr/lib/systemd/system/
touch frpc.service
vim frpc.service

其中frpc.service的内容为

[Unit]
Description=frpc
After=network.target

[Service]
Type=simple
ExecStartPre=/bin/sleep 6
ExecStart=/opt/frpc/./frpc.sh
ExecStop=/bin/kill $MAINPID

[Install]
WantedBy=multi-user.target

保存并设置为开机自启

systemctl enable frpc.service

0x03 参考资料

2019.06.11 10:19

添加新评论

๑òωó๑