Frp内网穿透

1.Frp安装服务端(买个云服务器装一下,或者有公网ip的)

  1. 下载、上传、解压
 下载链接:https://github.com/fatedier/frp/releases/download/v0.41.0/frp_0.41.0_linux_amd64.tar.gz
  1. 文件介绍
## 文件涵义(C代表客户端,S代表服务端)
frpc			客户端 
frpc_full.ini	客户端完整配置文件 
frpc.ini		客户端简易配置文件 
frps			服务端 
frps_full.ini	服务端完整配置文件 
frps.ini		服务端简易配置文件
  1. 配置
    服务端默认监听端口为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
  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值