查看系统架构
需要一个服务器当做服务端进行端口转接,连接服务器之后,输入以下命令查看系统
uname -a
拉取程序包
输入以下命令下载 frp 程序包,按版本号改第一个命令,按系统改拉取的文件类型,我这里是 0.49.0 的,上面系统显示我是 Linux 系统 arm64 架构,所以命令如下
# 设置变量FRP版本号
export FRP_VERSION=0.49.0
# 创建/etc/frp文件夹
sudo mkdir -p /etc/frp
# 打开/etc/frp文件夹
cd /etc/frp
# 下载符合要求的程序包,按需更改系统和架构
sudo wget "https://github.com/fatedier/frp/releases/download/v${FRP_VERSION}/frp_${FRP_VERSION}_linux_arm64.tar.gz"
# 解压程序包
sudo tar xzvf frp_${FRP_VERSION}_linux_arm64.tar.gz
# 将解压出来的文件夹内的文件全部移动到/etc/frp文件夹
sudo mv frp_${FRP_VERSION}_linux_arm64/* /etc/frp
frp 解压之后有两个端,分别是服务端(frps)和客户端(frpc),还有他们的配置文件 frps.ini 和 frpc.ini
服务端配置目录下的 frps.ini
frps.ini 配置转接端口和仪表盘信息,下面是配置示例
[common]
# 服务端绑定的端口
bind_port = 7000
# 仪表盘绑定的端口
dashboard_port = 7500
# 客户端与服务端连接时配置的token
token = 123456789
# 仪表盘用户名
dashboard_user = admin
# 仪表盘密码
dashboard_pwd = 123456
# 设置监听 HTTP 请求端口
vhost_http_port = 7080
直接启动服务的命令
./frps -c ./frps.ini
放行 7500 端口,可以看到已经可以访问到仪表盘了
使用 systemctl 配置后台运行和开机自启
sudo vim /lib/systemd/system/frps.service
在 frps.service 里写入以下内容
[Unit]
# 服务描述:frps服务
Description=frps service
# 在network.target和syslog.target之后启动
After=network.target syslog.target
# 需要network.target服务
Wants=network.target
[Service]
# 服务类型为简单类型
Type=simple
# 执行启动frps服务的命令,并指定配置文件路径为/etc/frp/frps.ini
ExecStart=/etc/frp/frps -c /etc/frp/frps.ini
[Install]
# 安装为多用户目标所需
WantedBy=multi-user.target
使用 systemctl 启动 frps
sudo systemctl start frps
打开自启动
sudo systemctl enable frps
其他
如果要重启应用,sudo systemctl restart frps
如果要停止应用,sudo systemctl stop frps
如果要查看应用的日志,sudo systemctl status frps
如果启动时 7000 端口被占用
#查看端口号
netstat -anp|grep 7000
或
#查看端口号
lsof -i:7000
或
#查看程序进程
ps -ef|grep frps
得到进程id(pid)之后,使用下面命令杀掉进程
kill pid
客户端配置目录下的 frpc.ini
frpc.ini 配置需要穿透的信息,下面是配置示例
[common]
# frp服务端ip
server_addr = frp服务端ip
# frp服务端绑定的端口
server_port = 7000
# frp服务端配置的token
token = 123456789
[ssh]
type = tcp
local_ip = 127.0.0.1
local_port = 22
remote_port = 7022
如果服务端是国外服务器的话需要挂代理才能链接上,不然会报i/o deadline reached
需要在客户端的配置文件的 common 里面添加代理
protocol = tcp
http_proxy = http://user:pwd@代理ip:端口
使用下面命令直接启动
./frpc -c ./frpc.ini
上面示例客户端配置 ssh 穿透,服务器将 7022 防火墙端口打开,测试使用内网穿透连接,可以正常连接
使用 systemctl 配置后台运行和开机自启
sudo vim /lib/systemd/system/frpc.service
在 frpc.service 里写入以下内容
[Unit]
# 服务单元:frpc service
Description=frpc service
# 在network.target和syslog.target之后启动
After=network.target syslog.target
# 需要network.target服务
Wants=network.target
[Service]
# 服务类型:简单
Type=simple
# 启动超时时间:10秒
TimeoutStartSec=10
# 重启延迟时间:30秒
RestartSec=30s
# 总是自动重启
Restart=always
# 执行启动frpc服务的命令,并指定配置文件路径为/etc/frp/frpc.ini
ExecStart=/etc/frp/frpc -c /etc/frp/frpc.ini
[Install]
# 安装为多用户目标所需
WantedBy=multi-user.target
使用 systemctl 启动 frpc
sudo systemctl start frpc
打开自启动
sudo systemctl enable frpc
其他
如果要重启应用,sudo systemctl restart frpc
如果要停止应用,sudo systemctl stop frpc
如果要查看应用的日志,sudo systemctl status frpc