概述

frp可以通过有公网IP的的服务器将内网的主机暴露给互联网,从而实现通过外网能直接访问到内网主机;frp有服务端和客户端,服务端需要装在有公网ip的服务器上,客户端装在内网主机上。

下载安装frp

frp服务端和客户端都是一样的应用,只是应用的配置文件不一样

官网下载:https://gofrp.org/zh-cn/release/

下载对应版本之后上传到服务端服务器和客户端服务器即可

服务端

tar -xf frp_0.60.0_linux_amd64.tar.gz -C /usr/local/
cd /usr/local/
mv frp_0.60.0_linux_amd64  frp
cd frp/
vim frps.toml
[common]                                                    
bind_addr = 0.0.0.0     #绑定地址,这里设置为0.0.0.0表示监听所有可用的网络接口。
bind_port = 7000        #frps服务监听的端口,默认为7000。
vhost_http_port = 8080   #HTTP虚拟主机监听端口,用于HTTP转发,这里设置为8080。
vhost_https_port = 8443   #HTTPS虚拟主机监听端口,用于HTTPS转发,这里设置为8443。
dashboard_port = 7001     #Web管理面板的端口,这里设置为7001。
dashboard_user = zqf      #Web管理面板的用户名,这里设置为zqf
dashboard_pwd = 1qaz!QAZ   #Web管理面板的密码,这里设置为1qaz!QAZ
log_file = ./frps-devops.log   #日志文件的位置,这里设置为./frps-devops.log。
log_level = info           #日志级别,这里设置为info,表示记录信息级别的日志。
log_max_days = 3          #日志文件最大保留天数,这里设置为3天。
privilege_token = 1qaz!QAZ    #特权认证令牌,用于客户端连接时的认证,这里设置为1qaz!QAZ
privilege_allow_ports = 80,90-3000,3001,3003,4000-50000     #允许特权访问的端口范围
max_pool_count = 100     #最大连接池数量,这里设置为100。
authentication_timeout = 900   #认证超时时间(秒),这里设置为900秒。

启动:

cat  /usr/lib/systemd/system/frps.service
[Unit]
Description=fraps service
After=network.target syslog.target
Wants=network.target

[Service]
Type=simple   #Type=simple当设置为 simple 时,这意味着该服务进程是主要的服务进程,并且它不会产生子进程
ExecStart=/usr/local/frp/frps -c /usr/local/frp/frps.toml

[Install]
WantedBy=multi-user.target



systemctl daemon-reload
systemctl enable  frps.service
systemctl start frps.service

客户端配置

安装和服务端安装一样

tcp类型

编辑frpc.toml:

cat frpc.toml
[common] 
server_addr = 39.105.128.155    #指定frp服务器的IP地址(一定要是公网)
server port= 7000               #指定frp服务器监听的端口
auth token = zqf                #指定客户端认证的令牌

[local_ssh] 
type = tcp                      # 指定代理类型
local_ip = 127.0.0.1            #指定本地服务的IP地址
local_port= 22                  #指定本地服务监听的端口
remote_port = 12222             #指定在frp服务器上公开的端口,外部可以通过此端口访问客户端的22端口

http类型

[common]
server_addr = 39.105.128.155   #指定frp服务器的IP地址(一定要是公网)
server port=7000     #指定frp服务器监听的端口
auth token = zqf    #指定客户端认证的令牌

[web]
type = http
local_ip = 127.0.0.1
local_port = 80
custom_domains = zk.andaren.com
启动客户端之后,可以配置一个nginx代理到frp监听http的端口(这里是8080),server_name为k.andaren.com,
k.andaren.com的解析为nginx的公网地址即可访问

启动

cat  /usr/lib/systemd/system/frpc.service
[Unit]
Description=frpc service
After=network.target syslog.target
Wants=network.target

[Service]
Type=simple
ExecStart=/usr/local/frp/frpc -c /usr/local/frp/frpc.toml

[Install]
WantedBy=multi-user.target


systemctl daemon-reload
systemctl enable frpc.service
systemctl start  frpc.service

results matching ""

    No results matching ""