frp 简单使用
frp 是一个可用于内网穿透的高性能的反向代理应用,支持 tcp, udp, http, https 协议。
views
| comments
官方地址:https://github.com/fatedier/frp ↗
准备#
需要一台公网机器( vps 或云主机)
需要一台内网机器
frps.ini: 服务端配置文件
frps: 服务端软件
frpc.ini: 客户端配置文件
frpc: 客户端软件
plaintext服务端#
配置#
我使用的是 centOS,当然你也可以部署到其他平台上。
# 下载所需文件
wget https://github.com/fatedier/frp/releases/download/v0.13.0/frp_0.13.0_linux_amd64.tar.gz
# 解压缩
tar -zxvf frp_0.13.0_linux_amd64.tar.gz
cd frp_0.13.0_linux_amd64
# 删除无用文件(服务端不需要)
rm -f frpc
rm -f frpc.ini
shell修改服务端配置 frps.ini
# frps.ini
[common]
bind_port = 7000
dashboard_port = 7500
dashboard_user = admin
dashboard_pwd = En1xIcYe4hV2
auth_token = En1xIcYe4hV2
# 启用特权模式
privilege_mode = true
privilege_token = En1xIcYe4hV2
vhost_http_port = 80 // 国内vps未备案可能会禁用80端口,如果被禁换个端口即可
vhost_https_port = 443 // 国内vps未备案可能会禁用80端口,如果被禁换个端口即可
subdomain_host = frp.xxx.com
plaintext启动#
如果只是简单启动可执行下面的命令
./frps -c ./frps.ini &
shell如果需要开机后台自启动则需要编写 FRP SERVICE 文件,以 CENTOS7 为例
# 复制文件
cp frps /usr/local/bin/frps
mkdir /etc/frp
cp frps.ini /etc/frp/frps.ini
# 编写 frp service 文件
vim /usr/lib/systemd/system/frps.service
shell内容如下
[Unit]
Description=frps
After=network.target
[Service]
TimeoutStartSec=30
ExecStart=/usr/local/bin/frps -c /etc/frp/frps.ini
ExecStop=/bin/kill $MAINPID
[Install]
WantedBy=multi-user.target
plaintext启动 FRP 并设置开机启动
sudo systemctl enable frps
sudo systemctl start frps
sudo systemctl status frps
shell客户端#
支持的客户端有很多,macOS、Linux、Synology、路由器等。
配置#
我使用的是 macOS,所以登录服务器之后下载文件。
# 下载所需文件(mac 下下载会出现文件损坏,不知道什么原因,如果出现请使用其他方式下载)
curl -O https://github.com/fatedier/frp/releases/download/v0.13.0/frp_0.13.0_darwin_amd64.tar.gz
# 解压缩
tar -zxvf frp_0.13.0_darwin_amd64.tar.gz
cd frp_0.13.0_darwin_amd64
shell修改客户端配置 frpc.ini,注意与 frps.ini 的配置对应
# frpc.ini
[common]
server_addr = frp.xxx.com
server_port = 7000
auth_token = En1xIcYe4hV2
privilege_token = En1xIcYe4hV2
[ssh]
type = tcp
local_ip = 127.0.0.1
local_port = 22
remote_port = 6000
[nextcloud]
type = http
local_ip = 192.168.1.x
local_port = 8888
subdomain = nextcloud
plaintext启动#
如果只是简单启动可执行下面的命令
./frpc -c ./frpc.ini &
shell如果需要开机后台自启动则需要编写 shell 脚本,以 macOS 为例
# 编辑脚本文件
vi /Users/carlisle/Documents/frp_0.13.0_darwin_amd64/frp_start.sh
shell填入一下内容
# /bin/bash
cd /Users/carlisle/Documents/frp_0.13.0_darwin_amd64
nohup ./frpc -c ./frpc.ini &
shell# 设置文件权限
chmod +x frp_start.sh
shell按照下面的路径设置自启动
System Preferences → Users and groups → Login ite → add ite → frp_start.sh
测试#
测试 web#
在客户端启动一个 Web 服务器
# 这里的 8000 端口对应上面客户端的配置中的 local_port
python -m SimpleHTTPServer 8000
shell在地址栏输入 vps_ip:6002 如果能成功访问到则说明测试通过。
测试 ssh#
ssh -oPort=6000 [email protected]
shell登录成功则说明测试通过。
如果出现访问失败的情况,注意检查 客户端
是否开启了远程登录。