Frps 是拥有公网IP的服务器(可以是Linux、Windows、Nas、OpenWrt、Ikuai(需要在Docker中运行))

Frpc 是没有公网IP的客户端(windows、Linux、Nas、OpenWrt、Ikuai(Docker中))

核心是两个ini文件,分别是Frpsini和Frpc.ini

除了配置文件及端口配置,启动逻辑基本相同

Linux Frps内网穿透——需要配合后台启动,以服务启动

windows Frp内网穿透——文件目录 直接输入Cmd启动,可开机启动

Nas群晖内网穿透——需要借助Docker进行安装,可开机启动

OpenWrt内容穿透——最简单,填好数据即可,可开机启动

Ikuai软路由内网穿透——可以借助Docker进行安装,可开机启动

1、启动Frps(以Linux及Windows为例)

1.1Linux下载并安装

下载linux frp服务(包含Frps及Frpc)

wget https://github.com/fatedier/frp/releases/download/v0.37.1/frp_0.37.1_linux_amd64.tar.gz

解压缩安装

tar -zxvf frp_0.37.1_linux_amd64.tar.gz

进入安装目录

cd frp_0.37.1_linux_amd64

修改配置文件(配置文件在下文:1.5配置文件内容)

vi /usr/local/frp/frps.ini

vi具体操作逻辑可百度

 测试运行

./frps -c ./frps.ini

内容为启动成功截图

黑群晖如何用命令行在docker上拉取ZDIR_配置文件

Ctrl+C 退出程序,可在文末查看后台方法

1.2Windows下载并安装

地址下载:Releases · fatedier/frp · GitHub

黑群晖如何用命令行在docker上拉取ZDIR_配置文件_02

下载并解压缩

修改配置文件(配置文件在下文:1.5配置文件内容)

windows Frp内网穿透——文件目录 直接输入Cmd

frps.exe -c frps.ini
frpc.exe -c frpc.ini

黑群晖如何用命令行在docker上拉取ZDIR_windows_03

1.3openwrt启动

首先在系统-软件包中找到并安装frps

在填写对应配置(配置可参考下文:1.5配置文件内容)

黑群晖如何用命令行在docker上拉取ZDIR_开源_04

1.4SynologyNas启动

Docker安装及部署就不展开了,可以自行查找

查找注册表

黑群晖如何用命令行在docker上拉取ZDIR_windows_05

安装注意事项

  1. 使用DockerHost 相同网络
  2. 先不要启用自动重新启动(配置错误很难删除docker,可以调整好再启动)
  3. 环境变量决定配置文件ARG5=frpc/frps
  4. 上传配置文件到文件中(具体配置详见下文2.5、frpc配置文件)
  5. 储存空间映射很关键!
  6. 环境变量决定配置文件

放一个配置成功的文件(如果是frps,环境变量中的ARGS变量为frps)

如果出现报错,同样可以在日志中查看问题

1.5配置文件内容(所有端都相同)

[common]
# 服务端和客户端的tcp通信端口
bind_port = 7000
# 服务端和客户端udp通信端口,本案例中不需要
bind_udp_port = 7001
# 客户端访问服务端的密码
token = abc123456

# 服务端仪表盘的端口,可以用浏览器访问查看
dashboard_port = 8888
# 服务端仪表盘的用户密码,自己设定,这里随便写的
dashboard_user = abc
dashboard_pwd = abc123456

# 日志保存设定,保存位置、保存时长
log_file = ./frps.log
log_level = info
log_max_days = 7

2、启动frpc(以Opwnwrt、Nas为例)

2.1 linux 启动

除配置文件外与frps基本相同

2.2windows启动

除配置文件外与frps基本相同

2.3openwrt启动

首先在系统-软件包中找到并安装frpC

黑群晖如何用命令行在docker上拉取ZDIR_windows_06

在服务-Frp内网穿透 中修改参数

黑群晖如何用命令行在docker上拉取ZDIR_windows_07

添加端口映射服务

黑群晖如何用命令行在docker上拉取ZDIR_linux_08

保存应用即可

如果失败可以日志中查看

2.4SynologyNas启动

Docker安装及部署就不展开了,可以自行查找

查找注册表

黑群晖如何用命令行在docker上拉取ZDIR_windows_05

安装注意事项

  1. 使用DockerHost 相同网络
  2. 先不要启用自动重新启动(配置错误很难删除docker,可以调整好再启动)
  3. 环境变量决定配置文件ARG5=frpc/frps
  4. 上传配置文件到文件中(具体配置详见下文2.5、frpc配置文件)
  5. 储存空间映射很关键!
  6. 环境变量决定配置文件

放一个配置成功的文件

如果出现报错,同样可以在日志中查看问题

2.5、frpc配置文件(所有都通用)

server_addr = xxx.   #frps服务端的地址(基本上是公网IP或者域名)
server_port = 7000          #frps服务端端口号(可以自己单独指定)
token = www.     #frps服务端token认证 (这个可以加也可以不加,需要根据服务端配置文件来对应)
[nas]                                   #穿透的名称
protocol = kcp                  #端口号协议
local_ip = 192.168.31.200       #本地IP (需要映射公网的IP)
local_port = 5001                   #本地端口 (需要映射公网的内网端口)
remote_port = 5019              #公网端口号
custom_domains = dsm.        #访问标识(可加可不加)

注意事项:

linux服务需要在后台运行

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

#   nohup命令用于在后台运行程序,即使用户退出终端或注销也不会停止程序的运行。
#   ./frps表示要运行的程序名为"frps”,"./"表示当前目录。
#   -c ./frps.ini表示使用当前目录下的"frps.ini"文件作为程序的配置文件。
#   >/dev/null表示将标准输出重定向到/dev/null,即不显示输出信息。
#   2>&1表示将标准错误输出重定向到标准输出,即也不显示错误信息。
#   &表示将命令放到后台运行。

Linux可以 写成systemctl服务

vi /usr/lib/systemd/system/frps.service

打开后可编辑内容

[Unit]
Description=frps
After=network.target

[Service]
Type=simple
#这里的frp需要变更为自己frp路径
ExecStart=/usr/local/frp_0.37.1_linux_amd64/frps -c /usr/local/frp_0.37.1_linux_amd64/frps.ini
ExecStop=/bin/kill $MAINPID
Restart=always 
RestartSec=5

[Install]
WantedBy=multi-user.target

刷新systemctl

systemctl daemon-reload

启动、开机启动

systemctl start frps && systemctl enable frps

查看运行状态

systemctl status frps

Windows服务可以开机启动并在后台运行

新建Bat文件,并把以下内容写入文件(后缀.bat)

D:
cd D:\AppGreen\frp_0.37.1_windows_amd64
frpc.exe -c frpc.ini

 start.vbs--用来后台启动start.bat,使其无运行窗口(后缀.vbs)

Set ws = CreateObject("Wscript.Shell")
ws.run "cmd /c D:\AppGreen\frp_0.37.1_windows_amd64\start.bat",0

然后打开任务计划程序,可以在win搜索中直接搜索 任务计划程序

  1. 右侧创建定时任务
  2. 创建触发器,触发条件,“启动时”
  3. 延迟任务时间“10s后自动启动”
  4. 创建操作,在程序和版本处添加vbs文件。

黑群晖如何用命令行在docker上拉取ZDIR_配置文件_10

OpenWrt开机启动

黑群晖如何用命令行在docker上拉取ZDIR_linux_11

SynologyNas可以自动启动

黑群晖如何用命令行在docker上拉取ZDIR_服务器_12

可用过该命令查看进程情况、并杀死该进程(root)

#查看frp 进程情况
ps -aux|grep frp | grep -v grep
# X为进场的PID 
kill -x (pid)

黑群晖如何用命令行在docker上拉取ZDIR_linux_13

开启穿透需要打开防火墙(需要先安装firewall、并以root用户进行)

开完防火墙还需要进行端口转发/开放防火墙。

#查看防火墙规则
firewall-cmd --list-all 
#查询端口是否开放
firewall-cmd --query-port=8080/tcp
#开放80端口
firewall-cmd --permanent --add-port=80/tcp
#移除端口
firewall-cmd --permanent --remove-port=8080/tcp
#重启防火墙(修改配置后要重启防火墙)
firewall-cmd --reload

端口成功添加

黑群晖如何用命令行在docker上拉取ZDIR_windows_14

安装依赖

黑群晖如何用命令行在docker上拉取ZDIR_windows_15

仪表板可以看端口情况

黑群晖如何用命令行在docker上拉取ZDIR_开源_16