Frp内网穿透实战:从零开始搭建远程访问

1206 字
6 分钟
Frp内网穿透实战:从零开始搭建远程访问

📝 本文基于作者实际部署经验,已在云服务器和家庭网络间成功搭建 Frp 内网穿透,实现远程访问 NAS 和开发环境。

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

  1. 下载、上传、解压
Terminal window
下载链接:https://github.com/fatedier/frp/releases/download/v0.41.0/frp_0.41.0_linux_amd64.tar.gz
  1. 文件介绍
Terminal window
## 文件涵义(C代表客户端,S代表服务端)
frpc 客户端
frpc_full.ini 客户端完整配置文件
frpc.ini 客户端简易配置文件
frps 服务端
frps_full.ini 服务端完整配置文件
frps.ini 服务端简易配置文件
  1. 配置 服务端默认监听端口为7000,建议改成别的,这里我用7777。这里注意端口写哪个,相应的云服务器要开放端口。
    frps.ini配置文件修改监听端口
    frps.ini配置文件修改监听端口
    dashboard_port相关的三个配置是仪表盘可装可不装
    dashboard仪表盘相关配置
    dashboard仪表盘相关配置
Terminal window
[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后面跟的是配置文件,意思就是以哪个配置文件启动服务)

Terminal window
#以简易配置启动服务
./frps -c ./frps.ini

启动frp服务端
启动frp服务端
frp服务端启动成功
frp服务端启动成功

2.Frp安装客户端(内网下的设备,这里用的是Centos7系统)#

操作和上述基本一致,只是修改的文件夹不一样

Terminal window
vim frpc.ini
Terminal window
[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就是端口。下面就代表每一台映射的内网电脑。

Terminal window
#以简易配置启动服务
./frpc -c ./frpc.ini

客户端frpc启动
客户端frpc启动

大功告成#

启动完会发现,服务器弹日志了

服务器弹出连接日志表示穿透成功
服务器弹出连接日志表示穿透成功

后续#

1.设置服务端开机启动#

Terminal window
#编辑启动配置
vim /lib/systemd/system/frps.service

ExecStart代表你的frp路径,这个对其他照抄,然后保存

Terminal window
[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
Terminal window
#启动服务
systemctl start frps
#设置自动启动(随系统)
systemctl enable frps

客户端的自启动同理,就是把frps都改成frpc

2.域名访问优化#

域名访问还要加上端口多少有点不爽,直接上个nginx,没安装可以来这里参考下:Nginx安装

Terminal window
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.后来使用中发现仪表盘无法访问,经过查证是防火墙没有开放相关端口,所以记录一下

Terminal window
#检测端口是否开启,返回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

相关推荐#

文章分享

如果这篇文章对你有帮助,欢迎分享给更多人!

Frp内网穿透实战:从零开始搭建远程访问
https://blog.wmovie.site/posts/frp-nat-penetration/
作者
朵朵
发布于
2024-04-05
许可协议
CC BY-NC-SA 4.0
Profile Image of the Author
朵朵
全栈开发者,5 年 Java/SpringBoot + Vue/React 开发经验,曾维护 Delphi 遗留系统。业余深耕 NAS 与软路由,专注 Homelab 家庭网络搭建及 Docker 自托管应用实战。坐标福州,正迈向独立开发之路。
公告
欢迎来到我的博客!有什么想要的邮箱告诉我,最近沉迷nas和软路由。
分类
标签
站点统计
文章
25
分类
4
标签
18
总字数
32,908
运行时长
0
最后活动
0 天前

文章目录