FRP实现内网穿透(笔记)
服务器(FRPS):华为云服务器
客户端(FRPC):树莓派4B
github开源FRP项目。
原理(百度图片)
可以将内网服务以安全、便捷的方式通过具有公网 IP 的节点中转暴露到公网。
FRPS下载
1、查看服务器处理器信息
arch
lscpu
2、下载对应版本
右键获取连接:
https://github.com/fatedier/frp/releases/download/v0.51.3/frp_0.51.3_linux_arm64.tar.gz
3、下载解压
下载:
wget https://github.com/fatedier/frp/releases/download/v0.51.3/frp_0.51.3_linux_arm64.tar.gz
# 也可以使用迅雷下载,更快。
解压:
tar -xzvf frp_0.51.3_linux_arm64.tar.gz
4、删除客户端文件
rm frpc*
FRPC下载
步骤同FRPS
远程SSH配置
FRPS配置
在华为云服务器安全组配置中开放一个TCP网络端口 用于 frp 服务器用户接收客户端连接,此处记作7000。
修改配置文件frps.ini,等号右边值自行设置即可。
sudo nano frps.ini
[common]
bind_port = 7000
dashboard_port = 7001 # web页面 使用 公网IP+7001 访问
token = mytoken # 客户端也要填写
dashboard_user = root # web页面 账户名
dashboard_pwd = root # web页面 密码
注意:运行前服务器安全组与服务器系统防火墙均需开启对应端口
运行FRPS:
./frps -c frps.ini
FRPC配置
sudo nano frpc.ini
[common]
server_addr = x.x.x.x # 云服务器公网ip
server_port = 7000 # 云服务器frp监听端口
token = mytoken # 与frps中token保持一致
[ssh]
type = tcp
# 将 公网IP的6000端口数据流转入本地(客户端)22端口:
local_ip = 127.0.0.1
local_port = 22 # ssh 端口
remote_port = 6000
运行客户端:
./frpc -c frpc.ini
尝试外网机器ssh访问内网机器
ssh -oPort=6000 pi@xxx.xxx.xx.xxx
# -oPort : 指定端口
# pi : 树莓派用户名
# xxx.xxx.xx.xxx : 公网服务器ip
成功:
远程VNC配置
FRPS
不变
FRPC
sudo nano frpc.ini
加入
[VNC]
type = tcp
# 将 公网IP的xxxx端口数据流转入本地(客户端)5900端口:
local_ip = 127.0.0.1
local_port = 5900 # VNC端口
remote_port = xxxx
尝试外网机器VNC访问内网机器
VNC Viewer 中使用IP+端口(xxxx)访问
成功
配置服务开机启动
FRPS
复制frpc文件到 /usr/bin/ 目录下
复制frps.ini文件到 /etc/frp 目录下,不存在就创建
sudo cp frps /usr/bin/frps
sudo mkdir /etc/frp
sudo cp frps.ini /etc/frp/frps.ini
创建frps.service写入:
[Unit]
Description=Frp Server Service
After=network.target
[Service]
Type=simple
Restart=always
RestartSec=1min
ExecStart=/usr/bin/frps -c /etc/frp/frps.ini
[Install]
WantedBy=multi-user.target
将frps.service复制到 /lib/systemd/system 目录下
sudo cp frps.service /lib/systemd/system/frps.service
启动FRPS
sudo systemctl start frps # 启动frps
sudo systemctl status frps # 查看运行状态
sudo systemctl stop frps # 停止frps
sudo systemctl enable frps # 设置开机启动
FRPC
同 FRPS