概述
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