1.Frp安装服务端(买个云服务器装一下,或者有公网ip的)
- 下载、上传、解压
下载链接:https://github.com/fatedier/frp/releases/download/v0.41.0/frp_0.41.0_linux_amd64.tar.gz
- 文件介绍
## 文件涵义(C代表客户端,S代表服务端)
frpc 客户端
frpc_full.ini 客户端完整配置文件
frpc.ini 客户端简易配置文件
frps 服务端
frps_full.ini 服务端完整配置文件
frps.ini 服务端简易配置文件
- 配置
服务端默认监听端口为7000,建议改成别的,这里我用7777。这里注意端口写哪个,相应的云服务器要开放端口。
dashboard_port相关的三个配置是仪表盘可装可不装
[common]
#frp服务器监听端口
bind_port = 7000
#开启token验证
authentication_method = token
token = xxxx
#frp的管理界面端口
dashboard_port = 7500
dashboard_user = xxxx
dashboard_pwd = xxxx
#通过http访问时使用该端口
vhost_http_port = 80
#通过https访问时使用该端口
vhost_https_port = 443
#公网域名
#subdomain_host = test.com
这里我用的是腾讯云,如果是别的云服务器(阿里云)可能要填写来源:0.0.0.0/0
启动服务(-c后面跟的是配置文件,意思就是以哪个配置文件启动服务)
#以简易配置启动服务
./frps -c ./frps.ini
2.Frp安装客户端(内网下的设备,这里用的是Centos7系统)
操作和上述基本一致,只是修改的文件夹不一样
vim frpc.ini
[common]
server_addr = 114.132.199.13
server_port = 7000
token=yeapt
[http测试]
type = http
local_ip = 192.168.1.2
#内网服务端口,外网请求根据vhost_http_port配置为准
local_port = 80
#映射的公网ip的端口(记得云服务器要开放)
remote_port = 6006
#公网ip或域名
custom_domains=httpTest.test.com
#需要访问的前缀,如这里的httpTest,那么访问就是:httpTest.test.com:6006。这个要和服务端搞配对
#subdomain = httpTest
[https测试]
type = https
local_ip = 192.168.1.4
local_port = 8080
remote_port = 6006
custom_domains = httpsTest.test.com
# https追加内容
plugin = https2http
plugin_local_addr = 192.168.1.4:8080
plugin_crt_path = /opt/frp/lisence/httpsTest.test.com.pem
plugin_key_path = /opt/frp/lisence/httpsTest.test.com.key
plugin_host_header_rewrite = 192.168.1.4
plugin_header_X-From-Where = frp
[tcp测试--ssh就用这个]
type = tcp
local_ip = 192.168.1.3
#映射的frps端口
local_port = 8083
#本地端口
remote_port = 8083
server_addr 就是服务端的公网ip,port就是端口。下面就代表每一台映射的内网电脑。
#以简易配置启动服务
./frpc -c ./frpc.ini
大功告成
启动完会发现,服务器弹日志了
后续
1.设置服务端开机启动
#编辑启动配置
vim /lib/systemd/system/frps.service
ExecStart代表你的frp路径,这个对其他照抄,然后保存
[Unit]
Description=Frps Service
After=network.target syslog.targer
[Service]
Type=simple
ExecStart=/opt/frp/frps -c /opt/frp/frps.ini
[Install]
WantedBy=multi-user.target
#启动服务
systemctl start frps
#设置自动启动(随系统)
systemctl enable frps
客户端的自启动同理,就是把frps都改成frpc
2.域名访问优化
域名访问还要加上端口多少有点不爽,直接上个nginx,没安装可以来这里参考下:Nginx安装
server {
listen 80;
server_name aaa.test.com; # 将泛解析的域名替换为你实际使用的域名
location / {
proxy_pass http://127.0.0.1:80; # 这里需要绑定公网服务器的 frps 里面的 vhost_http_port
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
server {
listen 80;
server_name bbb.test.com; # 将泛解析的域名替换为你实际使用的域名
location / {
proxy_pass http://127.0.0.1:80;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
踩坑
1.看似简单,但是要注意在客户端配置的端口,在服务端的服务器也要打开限制,比如服务端frp的端口是7000,你客户端设置的端口是6000,那么腾讯云就要开6000和7000这个端口才能使用
2.后来使用中发现仪表盘无法访问,经过查证是防火墙没有开放相关端口,所以记录一下
#检测端口是否开启,返回yes代表开启,no代表未开启。(7500表示端口,下同)
firewall-cmd --query-port=7500/tcp --zone=public
#开启代码端口,success表示成功
firewall-cmd --zone=public --add-port=7500/tcp --permanent
#批量开
firewall-cmd --zone=public --add-port=7001-7010/tcp --permanent
#查看放行的端口
firewall-cmd --list-all
#重载规则
firewall-cmd --reload
#重启服务器
systemctl restart firewalld