搭建FRP很简单,关键的步骤只有三步:
1,获取FRP文件;
2,设置FRP配置文件;
3,启动FRP服务。
下载地址:https : //github.com/fatedier/frp/releases
一般linux平台下载的版本为:frp_版本号_linux_amd64.tar.gz
windows平台下载的版本为:frp_版本号_windows_amd64.zip
linux版本文件的解压缩命令为tar zxvf 文件名
,windows版本文件直接快捷解压即可。
文件解压后,一般都包含frps(frp服务端运行文件),frpc(frp客户端运行文件),frps。 ini(frp服务端配置文件),frpc.ini(frp客户端配置文件),以及frp_full.ini(frp全部配置文件解释说明和参考。)
[common]
#监听地址
bind_addr = 0.0.0.0
#服务端口
bind_port = 7000
#认证token
token = xxx
#面板界面
dashboard_addr = 0.0.0.0
dashboard_port = 7500
dashboard_user = xxx
dashboard_pwd = xxx
#http服务端口
vhost_http_port = 7080
#https服务端口
vhost_https_port = 7443
#日志
log_file = ./frps.log
log_level = info
log_max_days = 3
#Web 服务增加自定义二级域名
subdomain_host = ***.com #其次在 FRP 客户端配置文件配置 subdomain 参数 通过 subdomain.subdomain_host 就可以访问到内网的 Web 服务
[common]
# 公网ip地址
server_addr = 139.196.xx.x
# 服务监听端口
server_port = 7000
# token校验
token = raven
#本地监控
admin_addr = 127.0.0.1
admin_port = 7400
admin_user = admin
admin_pwd = admin
#web服务
[web-http]
type = http
local_port = 80
local_ip = 127.0.0.1
# 可以设置二级、三级域名 服务器端无需设置subdomain_host
custom_domains = raven520.top,www.raven520.top
#使用这个属性,服务端需用 subdomain_host 指定一个域名,并且只能用二级域名
#subdomain = hello
# 配置访问时候的账号密码
#http_user = abc
#http_pwd = abc
# tcp穿透 反向代理
[RDP]
type = tcp
local_port = 3389
# 指定服务器监听哪个端口进行监听。使用 ip:3388 即可远程连接本地主机
remote_port = 3388
local_ip = 0.0.0.0
服务器端:
[common]
bind_addr = 0.0.0.0 //绑定地址
bind_port = 8888 //TCP绑定端口
bind_udp_port = 8888 //UDP绑定端口
kcp_bind_port = 8888 //KCP绑定端口
vhost_http_port = 80 //HTTP代理端口
vhost_https_port = 443 //HTTPS代理端口
dashboard_addr = 0.0.0.0 //仪表盘地址
dashboard_port = 10000 //仪表盘端口
dashboard_user = admin //仪表盘用户名
dashboard_pwd = admin //仪表盘密码
token = 123456 //连接密码
subdomain_host = test.com //子域名使用的主机名
客户端:
[common]
server_addr = 172.16.100.100 //服务器地址
server_port = 8888 //服务器绑定端口
token = 123456 //特权模式密码
tls_enable = true //加密传输
admin_addr = 127.0.0.1 //客户端Web地址
admin_port = 7400 //Web访问端口
admin_user = admin //Web访问账户
admin_pwd = admin //Web访问密码
user = your_name //用户名,设置后代理将显示为 <用户名.代理名>
[web] //服务名称(自定义)
local_ip = 127.0.0.1 //本机ip
type = http //链路类型
local_port = 80 //本机端口
subdomain = web //服务端为test.com,故此处子域名为web.test.com
custom_domains = demo.com //自定义访问域名,多个使用,分割
use_compression = true //使用压缩
use_encryption = true //使用加密
[ssh]
local_ip = 127.0.0.1
type = tcp
local_port = 22
remote_port = 9000
use_compression = true
use_encryption = true
# 前端启动
cd /usr/lib/systemd/system/frpc.server
./frps -c ./frps.ini &
# 后台启动
nohup ./frps -c ./frps.ini &
nohup ./frpc -c ./frpc.ini &
centos 6 系统服务启动脚本存放在/etc/init.d/目录下
centos 7 系统服务启动脚本存放在/usr/lib/systemd/system/目录下
vim /home/program/frps_server/start_frps.sh
# 插入如下内容:
nohup /home/program/frps_server/frps -c /home/program/frps_server/frps.ini>/home/program/frps_server/frp_log 2>&1 &
# 赋予启动权限
chmod 755 /home/program/frps_server/start_frps.sh
# 启动服务
./start_frps.sh
# frp startup script for the server
# chkconfig: 2345 90 10
# description: start the frp
# Source function library
. /etc/rc.d/init.d/functions
#脚本名称
prog=frps
#frp安装目录
FRP_HOME=/home/program/frps_server/
export FRP_HOME
#frp运行命令
FRP_RUN_SERVICE=/home/program/frps_server/start_frps.sh
case "$1" in
start)
echo "Starting frp..."
$FRP_RUN_SERVICE
;;
*)
echo "Usage: $prog {start}"
;;
esac
exit 0
vim /usr/lib/systemd/system/frpc.server
# 插入如下内容
[Unit]
Description=Frp Client Service
After=network.target
# 安装目录
set Path=/usr/local/frp_client
[Service]
Type=simple
User=nobody
Restart=on-failure
RestartSec=5s
ExecStart=$Path/frpc -c $Path/frpc.ini
ExecReload=$Path/frpc reload -c $Path/frpc.ini
[Install]
WantedBy=multi-user.target
###########################################
# 修改文件为可运行文件:
chmod 755 /usr/lib/systemd/system/frpc.server
# 查看frp开机启动情况:
chkconfig --list
# 添加到系统启动队列中:
chkconfig --add frp
# 启动服务
service frp start
如果是阿里、华为等云服务器,需要添加防火墙规则和添加出入防火墙端口
开放你想要使用的端口:
firewall-cmd --zone=public --add-port=6000/tcp --permanent # 开放 6000 端口
firewall-cmd --zone=public --add-port=7000/tcp --permanent # 开放 7000 端口
或
直接在
vim /etc/sysconfig/iptables
-A INPUT -p tcp -m state --state NEW -m tcp --dport 80 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 7000 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 6000 -j ACCEPT
/etc/firewalld/zones/public.xml
<port protocol="tcp" port="7000"/>
<port protocol="tcp" port="6000"/>
重启防火墙
service firewalld restart
貌似不用,不过我也添加端口了
更多防火墙内容参考
Centos防火墙
Please To Touch