本帖最后由 岁月的牵绊 于 2021-11-10 12:57 编辑
本教程将介绍玩客云安装Armbian系统后对docker容器进行frp内网穿透,只介绍frpc客户端的设置,frps服务端自行探索。 我的玩客云是1.0的主板,刷的是Armbian_20.05.4_Aml-s805_focal_current_5.7.0-rc5自带docker版,需要的请自行下载。 教程正式开始:
ssh连接玩客云,以下命令均在ssh中执行。
1、确认处理器架构,确定frp下载文件。
下载 frpc 前,请先确认您的处理器架构。执行下面的命令,根据输出结果查表:
架构 | 输出结果 | i386 | i386,i686 | amd64 | x86_64 | arm_garbage | arm, armel | armv7 | armv7l, armhf | arm64 | aarch64, armv8l | mips* | mips | mips64* | mips64 | 玩客云输出的是armv7l,是armv7的架构。
浏览器打开frp仓库:https://github.com/fatedier/frp/releases
下载对应的文件,玩客云选择frp_0.38.0_linux_arm.tar.gz,复制下载链接。
2、拉取frp文件到玩客云,其他设备类似
依次执行以下命令
回到root下,拉取frp压缩文件,等待下载完成。用这方法尽量走代理,不然需要很久。或者本地下载好再用ftp上传到root文件夹下。
- wget https://github.com/fatedier/frp/releases/download/v0.38.0/frp_0.38.0_linux_arm.tar.gz
复制代码 这里下载的文件是0.38版,请自行去frp仓库获取最新版链接。再ssh执行wget 获取的链接
下载完成后进行解压
- tar -zxvf frp_0.38.0_linux_arm.tar.gz
复制代码 删除解压后的压缩包,并重命名文件夹为frp
- rm -rf frp_0.38.0_linux_arm.tar.gz
复制代码 进入frp,列出所有文件,删除有关frps服务端的文件(一般是这三个文件frps、frps.ini、frps_full.ini),请务必确认仔细。- rm -rf frps frps.ini frps_full.ini
复制代码 3、frpc文件配置,适用所有的Linux系统设备。
编辑frpc.ini
复制下面的代码模板:
请自行修改设置,这里只给出的是默认http的配置,更详细的配置请移步【参考frp配置教程】或者【frp仓库配置说明】
[common]
#frps服务器IP或域名<必改项>
server_addr = xxx.xxx.xxx
#frps服务器监听端口<必改项>
server_port = 7000
#协议类型tcp/kcp
protocol = tcp
#frps服务提供商提供的密码<有就加,没有就用#注释掉>出现错误改成privilege_token
token = xxxxx
#日志存放路径,请提前创建
log_file = /root/frp/log/frps.log
#日志记录类别
log_level = info
#最多保存多少天日志,选择范围1-7天
log_max_days = 3
###以下是默认http配置###
#本地内网配置1
[web01]
#Frp 协议类型【可选:tcp,udp,http,https,stcp,xtcp】默认http
type = http</div><div>#内网ip(玩客云的ip)<必改项>
local_ip = 192.168.1.1
#内网运行端口(docker容器端口,列如青龙)<必改项>
local_port = 5701
<div>#远程监听端口【协议类型为tcp使用,去除#启用】端口须在frps服务端开放端口范围内<tcp协议的必改>
#remote_port = 远程端口1
#自定义域名
#custom_domains = www.yourdomain.com
#子域名,自行填写<必改项>
subdomain = aaa
#穿透通讯加密【可选:false,true】
use_encryption = true
#穿透通讯压缩【可选:false,true】
use_compression = true
#HTTP用户名和密码安全认证【默认关闭】
#http_user = abc
#http_pwd = abc
#本地内网配置2
[web02]
#Frp 协议类型【可选:tcp,udp,http,https,stcp,xtcp】默认http
type = http
#内网设备ip(玩客云的ip)<必改项>
local_ip = 192.168.1.1
#内网运行端口(docker容器端口,列如青龙)<必改项>
local_port = 5700
#远程监听端口【协议类型为tcp使用,http勿启用。去除#启用】端口须在frps服务端开放端口范围内<tcp协议的必改>
#remote_port = 远程端口2
#自定义域名
#custom_domains = www.yourdomain.com
#子域名,自行填写 <必改项>
subdomain = bbb
#穿透通讯加密【可选:false,true】
use_encryption = true
#穿透通讯压缩【可选:false,true】
use_compression = true
#HTTP用户名和密码安全认证【默认关闭】
#http_user = abc
#http_pwd = abc
保存ctrl+o,退出ctrl+x,回车
如果需要穿透多个容器请在文件后面添加[web03]、[web04]....依次类推。
以上配置请务必修改标注的<必改项>,确保与服务端保持正常连接,白嫖的用户可以自行去查找免费的frps服务端提供商提供的配置信息,但不建议哈,有一定的安全风险。
4、手动运行测试
浏览器远程访问配置的连接是否可用
格式如下:
http协议:
aaa.xxx.xxx.xxx
bbb.xxx.xxx.xxx
...
tcp协议:
xxx.xxx.xxx:远程端口1
xxx.xxx.xxx:远程端口2
...
5、frpc开机自启配置
配置systemctl进行开机启动
创建frpc.service服务
- nano /lib/systemd/system/frpc.service
复制代码 复制如下代码:
- [Unit]
- #服务描述
- Description=frpc service
- After=network.target syslog.target
- Wants=network.target
- [Service]
- Type=simple
- #执行命令
- ExecStart=/root/frp/frpc -c /root/frp/frpc.ini
- [Install]
- WantedBy=multi-user.target
复制代码 保存ctrl+o,退出ctrl+x,回车
终端里输入,重载服务
使用systemctl命令来控制frpc
#启动
- sudo systemctl start frpc
复制代码 #关闭
#重启
- sudo systemctl restart frpc
复制代码 #查看状态
- sudo systemctl status frpc
复制代码 设置开机自动启动
- sudo systemctl enable frpc
复制代码 禁用开机自动启动
- sudo systemctl disable frpc
复制代码 查看服务是否开机启动
- sudo systemctl is-enabled frpc
复制代码 查看frp进程
- ps -aux|grep frp| grep -v grep
复制代码 结束frp进程(找到进程号pid,即第一个数值)
查看所有服务进程
参考地址:https://www.cnblogs.com/JenniePiggy/p/14828117.html
|