frp 是一个可用于内网穿透的高性能的反向代理应用,支持 tcp, udp, http, https 协议。本文简单的介绍frp的配置使用。

实现内网穿需要有一台公网服务器。本文将公网服务器称为服务端,内网服务器称为客户端。需要开启相关的端口。相关端口没开通,访问就会失败。

frp git地址:https://github.com/fatedier/frp 中文文档:https://github.com/fatedier/frp/blob/master/README_zh.md frp下载地址:https://github.com/fatedier/frp/releases 本文使用软件:frp_0.21.0_linux_amd64.tar.gz 本文使用系统:centos7(公网一台,内网一台)

本文使用软件:frp_0.21.0_linux_amd64.tar.gz,frp的客户端和服务端都在同一个包里。

文件说明 frps.ini: 服务端配置文件 frps: 服务端软件 frpc.ini: 客户端配置文件 frpc: 客户端软件

frps.ini配置

[common]
bind_port = 7000
# auth token
token = Qwert123
dashboard_port = 7500
# dashboard 用户名密码,默认都为 admin
dashboard_user = admin
dashboard_pwd = Qwert123
vhost_http_port = 7083

开启服务端服务 ./frps -c ./frps.ini

可以用脚本来启动:

#!/bin/sh
nohup /usr/local/frp/frps -c /usr/local/frp/frps.ini &

frpc.ini配置

[common]
#服务器ip地址
server_addr = 121.199.2.XXX
server_port = 7000

#开放api,提供reload服务
admin_addr = 127.0.0.1
admin_port = 7400

# auth token
token = Qwert123

[ssh]
type = tcp
local_ip = 127.0.0.1
#ssh端口
local_port = 22
remote_port = 1022

可以使用脚本来启动(start.sh)

#!/bin/sh
sudo nohup /usr/local/frp/frpc -c /usr/local/frp/frpc.ini &

如果更改配置文件,可以使用重新加载来更新配置(reload.sh)

#!/bin/sh
/usr/local/frp/frpc reload -c /usr/local/frp/frpc.ini &

配置完后就可以通过 ssh 121.199.2.XXX 1022 来连接到内网服务器。

centos7开机启动

/usr/lib/systemd/system/frp.service

[Unit]
Description=the frp service
After=syslog.target network.target

[Service]
Type=forking

ExecStart=/usr/local/frp/start.sh
ExecReload=/bin/kill -USR2 $MAINPID
ExecStop=/bin/kill -SIGINT $MAINPID

[Install]
WantedBy=multi-user.target

执行:

systemctl enable frp
systemctl start frp

转自:http://www.seaxiang.com/blog/frp