frp内网穿透详解
概述
- frp可以通过有公网IP的的服务器将内网的主机暴露给互联网,从而实现通过外网能直接访问到内网主机。
- frp有服务端和客户端,服务端需要2装在有公网ip的服务器上,客户端装在内网主机上。
下载安装frp
frp服务端和客户端是同样的安装包,只是应用的配置文件不一样
官网下载:https://gofrp.org/zh-cn/release/
下载对应版本之后上传到服务端服务器和客户端服务器即可
安装包获取:通过网盘分享的文件:frp_0.64.0_linux_amd64.tar.gz
链接: https://pan.baidu.com/s/15iPA1Vs1HvaqRM_g3fxOLw?pwd=f3wj 提取码: f3wj
--来自百度网盘超级会员v4的分享
搭建服务端
tar -xf frp_0.64.0_linux_amd64.tar.gz -C /usr/local/
mv /usr/local/frp_0.64.0_linux_amd64 /usr/local/frp_0.64
cd /usr/local/frp_0.64
cat frps.toml
[common]
# 绑定地址,这里设置为0.0.0.0表示监听所有可用的网络接口。
bind_addr = 0.0.0.0
# frps服务监听的端口,默认为7000。
bind_port = 7000
# HTTP虚拟主机监听端口,用于HTTP转发,这里设置为8080。
vhost_http_port = 8080
# HTTPS虚拟主机监听端口,用于HTTPS转发,这里设置为8443。
vhost_https_port = 8443
# Web管理面板的端口,这里设置为7001。
dashboard_port = 7001
# Web管理面板的用户名,这里设置为zqf
dashboard_user = zqf
# Web管理面板的密码,这里设置为1qaz!QAZ
dashboard_pwd = 1qaz!QAZ
# 日志文件的位置,这里设置为./frps-devops.log。
log_file = ./frps-devops.log
# 日志级别,这里设置为info,表示记录信息级别的日志。
log_level = info
# 日志文件最大保留天数,这里设置为3天。
log_max_days = 3
# 特权认证令牌,用于客户端连接时的认证,这里设置为1qaz!QAZ
privilege_token = 1qaz!QAZ
# 允许特权访问的端口范围
privilege_allow_ports = 80,90-3000,3001,3003,4000-50000
# 最大连接池数量,这里设置为100。
max_pool_count = 100
# 认证超时时间(秒),这里设置为900秒。
authentication_timeout = 900
配置systemd启动
cat /usr/lib/systemd/system/frps.service
[Unit]
Description=fraps service
After=network.target syslog.target
Wants=network.target
[Service]
Type=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
客户端配置
安装和服务端安装一样,参考上面的内容即可。
cat /usr/local/frp_0.64/frpc.toml
[common]
# 指定frp服务端的IP地址(一定要是公网)
server_addr = 8.159.128.153
# 指定frp服务器监听的端口
server port= 7000
# 指定客户端认证的令牌
auth token = zqf
[local_ssh]
# 指定代理类型
type = tcp
# 指定本地服务的IP地址
local_ip = 127.0.0.1
# 指定本地服务监听的端口
local_port= 22
# 指定在frp服务器上公开的端口,外部可以通过此端口访问客户端的22端口
remote_port = 12222
[web]
type = http
local_ip = 127.0.0.1
local_port = 80
custom_domains = zqf.stack.cn
# 启动客户端之后,可以配置一个nginx代理到frp监听http的端口(这里是8080),server_name为zqf.stack.cn,zqf.stacn.cn的解析为nginx的公网地址即可访问
配置systemd启动:
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_0.64/frpc -c /usr/local/frp_0.64/frpc.toml
[Install]
WantedBy=multi-user.target
systemctl daemon-reload
systemctl enable frpc.service
systemctl start frpc.service
systemctl status frpc.service
配置完成,之后测试即可。