- frp 是一个可用于内网穿透的高性能的反向代理应用,支持 tcp, udp, http, https 协议。
- 实现内网穿需要有一台公网服务器。本文将公网服务器称为服务端,内网服务器称为客户端。需要开启相关的端口。相关端口没开通,访问就会失败。
centos7(公网一台,内网一台)
frp_0.33.0_linux_amd64.tar.gz,frp的客户端和服务端都在同一个包里。
文件说明
frps.ini: 服务端配置文件
frps: 服务端软件
frpc.ini: 客户端配置文件
frpc: 客户端软件
frps.ini配置:
[common]
bind_port = 7000
# auth token
token = 1234
dashboard_port = 7500
# dashboard 用户名密码,默认都为 admin
dashboard_user = admin
dashboard_pwd = 1234
vhost_http_port = 7083
开启服务端服务
nohup ./frps -c frps.ini &
frpc.ini配置:
[common]
#服务器ip地址
server_addr = 182.16.7.166
server_port = 7000
#开放api,提供reload服务
admin_addr = 127.0.0.1
admin_port = 7400
# auth token
token = 1234
[ssh]
type = tcp
local_ip = 127.0.0.1
#ssh端口
local_port = 22
remote_port = 1022
后台启动客户端的frp
nohup ./frpc -c frpc.ini &
配置完后就可以通过 ssh root@182.16.7.166 -p 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
centos8 的配置有点不一样:
[Unit]
Description=the frp service
After=syslog.target network.target network-online.target
Wants=network.target network-online.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