Frp内网穿透实战:从零开始搭建远程访问
1206 字
6 分钟
Frp内网穿透实战:从零开始搭建远程访问
📝 本文基于作者实际部署经验,已在云服务器和家庭网络间成功搭建 Frp 内网穿透,实现远程访问 NAS 和开发环境。
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相关的三个配置是仪表盘可装可不装
frps.ini配置文件修改监听端口 
dashboard仪表盘相关配置
[common]#frp服务器监听端口bind_port = 7000
#开启token验证authentication_method = tokentoken = xxxx
#frp的管理界面端口dashboard_port = 7500dashboard_user = xxxxdashboard_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.13server_port = 7000token=yeapt
[http测试]type = httplocal_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 = httpslocal_ip = 192.168.1.4local_port = 8080remote_port = 6006custom_domains = httpsTest.test.com# https追加内容plugin = https2httpplugin_local_addr = 192.168.1.4:8080plugin_crt_path = /opt/frp/lisence/httpsTest.test.com.pemplugin_key_path = /opt/frp/lisence/httpsTest.test.com.keyplugin_host_header_rewrite = 192.168.1.4plugin_header_X-From-Where = frp
[tcp测试--ssh就用这个]type = tcplocal_ip = 192.168.1.3#映射的frps端口local_port = 8083#本地端口remote_port = 8083server_addr 就是服务端的公网ip,port就是端口。下面就代表每一台映射的内网电脑。
#以简易配置启动服务 ./frpc -c ./frpc.ini
大功告成
启动完会发现,服务器弹日志了

后续
1.设置服务端开机启动
#编辑启动配置vim /lib/systemd/system/frps.serviceExecStart代表你的frp路径,这个对其他照抄,然后保存
[Unit]Description=Frps ServiceAfter=network.target syslog.targer
[Service]Type=simpleExecStart=/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相关推荐
- SoftEther使用教程:搭建私有VPN服务器完整指南 - VPN 远程访问方案
- ESXi虚拟化软路由:OpenWrt和爱快安装配置全攻略 - 网络架构搭建
- 群晖NAS入门教程:从零开始搭建家庭云盘和影视库 - NAS 远程访问需求
文章分享
如果这篇文章对你有帮助,欢迎分享给更多人!
Frp内网穿透实战:从零开始搭建远程访问
https://blog.wmovie.site/posts/frp-nat-penetration/ 相关文章 智能推荐
1
SSE服务器推送:实时网络传输协议详解与实战
软路由与网络 SSE是基于HTTP的轻量级单向传输协议,允许服务器主动向客户端推送实时数据。本文介绍SSE的客户端和服务端实现方式。
2
SoftEther使用教程:搭建私有VPN服务器完整指南
软路由与网络 SoftEther作为一款开源VPN软件的安装配置指南,包括Linux服务端安装、Windows管理客户端配置及Linux客户端连接。
3
群晖虚拟机安装OpenWRT作旁路由:完整教程+避坑指南
软路由与网络 在群晖NAS虚拟机中安装OpenWRT作为旁路由,实现AdGuard去广告和网络加速功能。
4
ESXi虚拟化软路由:OpenWrt和爱快安装配置全攻略
软路由与网络 在ESXi虚拟化环境下安装OpenWrt和爱快路由系统,包括镜像转换、网卡直通、虚拟机创建和旁路由配置。
5
宝塔面板部署项目踩坑记录:PHP/Java/Node.js
运维自动化 宝塔面板部署各类项目的实战经验,包括PHP、Java、Node.js等框架的部署流程和常见问题解决。
随机文章 随机推荐