17:40" href="https://www.cnblogs.com/itsheng/p/18048970" target="_blank" rel="noopener">


 



本教程将介绍玩客云安装Armbian系统后对docker容器进行frp内网穿透,只介绍frpc客户端的设置,frps服务端自行探索。
我的玩客云是1.0的主板,刷的是Armbian_20.05.4_Aml-s805_focal_current_5.7.0-rc5自带docker版,需要的请自行下载。
提取码:5wxi
<ignore_js_op>
教程正式开始:
ssh连接玩客云,以下命令均在ssh中执行。
1、确认处理器架构,确定frp下载文件。
下载 frpc 前,请先确认您的处理器架构。执行下面的命令,根据输出结果查表:
  1. uname -m
复制代码
架构
输出结果
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,复制下载链接。
<ignore_js_op>
2、拉取frp文件到玩客云,其他设备类似
依次执行以下命令
回到root下,拉取frp压缩文件,等待下载完成。用这方法尽量走代理,不然需要很久。或者本地下载好再用ftp上传到root文件夹下。
  1. cd /root
复制代码
  1. wget https://github.com/fatedier/frp/releases/download/v0.38.0/frp_0.38.0_linux_arm.tar.gz
复制代码
这里下载的文件是0.38版,请自行去frp仓库获取最新版链接。再ssh执行wget 获取的链接
下载完成后进行解压
  1. tar -zxvf frp_0.38.0_linux_arm.tar.gz
复制代码
删除解压后的压缩包,并重命名文件夹为frp
  1. rm -rf frp_0.38.0_linux_arm.tar.gz
复制代码
进入frp,列出所有文件,删除有关frps服务端的文件(一般是这三个文件frps、frps.ini、frps_full.ini),请务必确认仔细。
  1. cd /root/frp
复制代码
  1. ls
复制代码
  1. rm -rf frps frps.ini frps_full.ini
复制代码
3、frpc文件配置,适用所有的Linux系统设备。
编辑frpc.ini
  1. nano /root/frp/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、手动运行测试
  1. cd /root/frp
复制代码
  1. ./frpc -c ./frpc.ini
复制代码
浏览器远程访问配置的连接是否可用

格式如下:
http协议:
aaa.xxx.xxx.xxx

bbb.xxx.xxx.xxx
...
tcp协议:
xxx.xxx.xxx:远程端口1

xxx.xxx.xxx:远程端口2
...
5、frpc开机自启配置
配置systemctl进行开机启动
创建frpc.service服务
  1. nano /lib/systemd/system/frpc.service
复制代码
复制如下代码:
  1. [Unit]
  2. #服务描述
  3. Description=frpc service
  4. After=network.target syslog.target
  5. Wants=network.target
  6.  
  7. [Service]
  8. Type=simple
  9. #执行命令
  10. ExecStart=/root/frp/frpc -c /root/frp/frpc.ini
  11.  
  12. [Install]
  13. WantedBy=multi-user.target
复制代码
保存ctrl+o,退出ctrl+x,回车
终端里输入,重载服务
  1. systemctl daemon-reload
复制代码
使用systemctl命令来控制frpc
#启动
  1. sudo systemctl start frpc
复制代码
#关闭
  1. sudo systemctl stop frpc
复制代码
#重启
  1. sudo systemctl restart frpc
复制代码
#查看状态
  1. sudo systemctl status frpc
复制代码
设置开机自动启动
  1. sudo systemctl enable frpc
复制代码
禁用开机自动启动
  1. sudo systemctl disable frpc
复制代码
查看服务是否开机启动
  1. sudo systemctl is-enabled frpc
复制代码
查看frp进程
  1. ps -aux|grep frp| grep -v grep
复制代码
结束frp进程(找到进程号pid,即第一个数值)
  1. kill -9 pid
复制代码
查看所有服务进程
  1. ps aux
复制代码
参考地址:https://www.cnblogs.com/JenniePiggy/p/14828117.html