Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >FRP 内网穿透、反向代理

FRP 内网穿透、反向代理

作者头像
GoCoding
发布于 2022-02-23 06:02:36
发布于 2022-02-23 06:02:36
62200
代码可运行
举报
文章被收录于专栏:GoCodingGoCoding
运行总次数:0
代码可运行

frp[1] 是一个专注于内网穿透的高性能的反向代理应用,支持 TCPUDP、HTTP、HTTPS 等多种协议。可以将内网服务以安全、便捷的方式通过具有公网 IP 节点的中转暴露到公网。

本文将以暴露内网 Web 服务为例,实践 frp 的安装部署。更多应用场景,可见 frp 示例[2]

安装

frp 主要由 客户端(frpc)服务端(frps) 组成,服务端通常部署在具有公网 IP 的机器上,客户端通常部署在需要穿透的内网服务所在的机器上。

可以在 Github 的 Release[3] 页面中下载到最新版本的客户端和服务端二进制文件。

本文公网、内网机器都是 Linux x86_64,所以选择了 frp_0.39.0_linux_amd64.tar.gz。解压:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$ tar xzvf frp_0.39.0_linux_amd64.tar.gz
frp_0.39.0_linux_amd64/
frp_0.39.0_linux_amd64/frps
frp_0.39.0_linux_amd64/frps_full.ini
frp_0.39.0_linux_amd64/systemd/
frp_0.39.0_linux_amd64/systemd/frpc@.service
frp_0.39.0_linux_amd64/systemd/frps@.service
frp_0.39.0_linux_amd64/systemd/frpc.service
frp_0.39.0_linux_amd64/systemd/frps.service
frp_0.39.0_linux_amd64/LICENSE
frp_0.39.0_linux_amd64/frpc.ini
frp_0.39.0_linux_amd64/frpc_full.ini
frp_0.39.0_linux_amd64/frps.ini
frp_0.39.0_linux_amd64/frpc

公网

拷贝 frps 文件进公网机器,假设其 IP 为 x.x.x.x

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
scp frps* ubuntu@x.x.x.x:

修改 frps.ini 文件,设置监听 HTTP 请求端口为 8080:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
cat <<-EOF > ~/frps.ini
[common]
bind_port = 7000
vhost_http_port = 8080
EOF

安装 supervisor 进行部署,后台长期运行:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# 安装 supervisor
sudo apt install supervisor -y

# 添加配置
sudo -i
cat <<-EOF >> /etc/supervisor/supervisord.conf

[program:frps]
directory=/home/ubuntu
command=/home/ubuntu/frps -c /home/ubuntu/frps.ini
priority=999
autostart=true
autorestart=true
startsecs=10
startretries=3
stdout_logfile=/var/log/frps_out.log
stdout_logfile_maxbytes=1MB
stdout_logfile_backups=10
stdout_capture_maxbytes=1MB
stderr_logfile=/var/log/frps_err.log
stderr_logfile_maxbytes=1MB
stderr_logfile_backups=10
stderr_capture_maxbytes=1MB
environment=
nocleanup=false
EOF
exit

# 更新服务
sudo supervisorctl update all

# 查看服务
sudo supervisorctl status all

内网

拷贝 frpc 文件进内网机器,假设其 IP 为 192.168.1.100

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
scp frpc* ubuntu@192.168.1.100:

修改 frpc.ini 文件,假设 frps 所在的服务器的 IP 为 x.x.x.xlocal_port 为本地机器上 Web 服务监听的端口, 绑定自定义域名custom_domains

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
cat <<-EOF > ~/frpc.ini
[common]
server_addr = x.x.x.x
server_port = 7000

[web]
type = http
local_port = 8000
custom_domains = www.yourdomain.com
EOF

www.yourdomain.com 的域名 A 记录解析到 IP x.x.x.x

如果服务器已经有对应的域名,也可以将 CNAME 记录解析到服务器原先的域名。或者可以通过修改 HTTP 请求的 Host 字段来实现同样的效果。

简单运行服务,进行测试:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# 运行 HTTP 服务
python3 -m http.server 8000

# 运行 frpc 服务
./frpc -c ./frpc.ini

# 访问测试
curl http://www.yourdomain.com:8080/

systemd 进行部署,后台长期运行:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# 拷贝文件
sudo cp frpc /usr/bin/frpc
sudo mkdir -p /etc/frp
sudo cp frpc.ini /etc/frp/frpc.ini

# 添加配置(frp 给的 systemd 配置)
sudo -i
cat <<-EOF > /etc/systemd/system/frpc.service
[Unit]
Description=Frp Client Service
After=network.target

[Service]
Type=simple
User=nobody
Restart=on-failure
RestartSec=5s
ExecStart=/usr/bin/frpc -c /etc/frp/frpc.ini
ExecReload=/usr/bin/frpc reload -c /etc/frp/frpc.ini
LimitNOFILE=1048576

[Install]
WantedBy=multi-user.target
EOF
exit

# 重载配置
sudo systemctl daemon-reload

# 开机启动
sudo systemctl enable frpc.service

# 启动服务
sudo systemctl start frpc.service

# 查看状态
sudo systemctl status frpc.service

脚注

[1]

frp: https://github.com/fatedier/frp

[2]

frp 示例: https://gofrp.org/docs/examples/

[3]

Release: https://github.com/fatedier/frp/releases

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-02-14,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 GoCoding 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
内网穿墙利器frp,实现无公网IP穿透(支持windows+linux)
开源项目下载地址→https://github.com/fatedier/frp/releases frp 是一个可用于内网穿透的高性能的反向代理应用,支持 tcp, udp, http, https 协议。
Lcry
2022/11/29
3.7K0
【内网穿透】用frps实现内网穿透
在当今互联网时代,远程访问内网资源已成为一种常见需求。无论是在家访问办公室的电脑,还是远程管理家庭NAS,内网映射都是一种强大的解决方案。
云帆沧海
2024/10/15
8030
常见内网穿透工具,收好了!
目前支持tcp、udp流量转发,可支持任何tcp、udp上层协议(访问内网网站、本地支付接口调试、ssh访问、远程桌面,内网dns解析等等……)。
网络工程师笔记
2023/09/09
1.3K0
常见内网穿透工具,收好了!
如何使用frp搭建内网穿透、TCP/UDP代理、http/https代理、Socks5代理?
官方文档:https://github.com/fatedier/frp/blob/dev/README_zh.md、https://gofrp.org/docs/setup/
房东的狗丶
2023/04/28
4.5K0
如何使用frp搭建内网穿透、TCP/UDP代理、http/https代理、Socks5代理?
Frps使用说明
​ frp 让本地局域网的机器可以暴露到公网,简单的说就是在世界的任何地方,你可以访问家里开着的那台电脑。 FRP 支持 TCP、UDP、HTTP、HTTPS, 就是说不仅仅限于本地web服务器可以暴露,整台机器都可以暴露,windows的远程控制,mac和linux的ssh都可以被暴露。
mikelLam
2022/10/31
1.5K0
Frps使用说明
内网穿透工具 frp
frp 是一个高性能的反向代理应用,可以帮助您轻松地进行内网穿透,对外网提供服务,支持 tcp, http, https 等协议类型,并且 web 服务支持根据域名进行路由转发。
凯哥Java
2019/06/28
1.8K0
内网穿透工具 frp
frp内网穿透应用1-通过外网ip访问布置于内网的web服务
1、修改 服务器端frps.ini 文件,配置一个名为 web 的 http 反向代理,设置 http 访问端口为 8080,绑定自定义域名 www.yourdomain.com
用户1086810
2018/08/02
2.5K0
推荐几款实用的内网穿透工具
本文以渗透的视角,总结几种个人常用的内网穿透,内网代理工具,介绍其简单原理和使用方法。
Java团长
2022/02/10
9K1
推荐几款实用的内网穿透工具
利用frp工具实现内网穿透、随时随地访问内网服务
之前分享过一次《ZeroTier实现内网穿透、异地组网》,其基本工作原理是组建一个虚拟局域网,各个设备(NAS、Linux、Windows、Mac、iOS、Android)安装了客户端、加入到这个虚拟局域网后,就会自动分配一个IP,从而实现局域网内各个设备及服务的相互访问。
大刚测试开发实战
2023/01/18
2.9K0
frp内网穿透设置_frp内网穿透原理
(2)内网服务器1台(我这里演示的是linux环境,win10上面vmware安装的centos7)
全栈程序员站长
2022/11/04
2.4K0
黑科技-内网穿透frp
之前用过 ngrok ,但去国外“旅游”了一圈还是慢了些。和运维探讨了一下,他是用什么来做内网穿透的,曰:frp
lukachen
2023/10/22
5780
安排几款实用的内网穿透工具+教程
本文以渗透的视角,总结几种个人常用的内网穿透,内网代理工具,介绍其简单原理和使用方法。
民工哥
2021/11/26
1.3K0
使用 frp 进行内网穿透的基本操作
frp 是一个专注于内网穿透的高性能的反向代理应用,支持 TCP、UDP、HTTP、HTTPS 等多种协议,且支持 P2P 通信。可以将内网服务以安全、便捷的方式通过具有公网 IP 节点的中转暴露到公网。
Hopetree
2023/07/21
7350
使用 frp 进行内网穿透的基本操作
frp 内网穿透含web和ssh(已验证)
用公司内网的服务器,或者公司的电脑搭建了一个web站点,却无法在外网访问web站点,或者在家想用ssh连接公司的内网服务器。frp就是如何利用内网穿透的方式实现以上功能。
用户10002156
2023/08/07
1.3K0
frp 内网穿透含web和ssh(已验证)
搭建属于自己的FRP内网穿透
内网穿透对于多我们程序员来讲,应该是不陌生的。在对接某些第三方平台的时候,比如说:微信支付,经常会涉及到回调,在开发的时候就需要使用内网穿透来进行本地调试。那么今天给大家分享一下用 frp 搭建属于自己的内网穿透,方便在我们日常的开发中进行调试。同时是 frp 是开源并且是免费的,只需要一台云服务器即可搭建。
不一样的科技宅
2020/09/18
9.1K1
搭建属于自己的FRP内网穿透
内网穿透工具 frp 使用教程
frp 适用于有公网IP需求的用户,如果有需要在互联网中找到自己的电脑,但是电脑又没有公网IPv4地址,又不想用IPv6地址,恰好还有一个空闲的拥有IPv4公网地址的云服务器,那么frp 是使用你需要的工具。
为为为什么
2022/08/06
6.1K0
内网穿透工具 frp 使用教程
简单使用 Frp
frp 是一个专注于内网穿透的高性能的反向代理应用,支持 TCP、UDP、HTTP、HTTPS 等多种协议。可以将内网服务以安全、便捷的方式通过具有公网 IP 节点的中转暴露到公网。
EmoryHuang
2022/10/31
5340
简单使用 Frp
快速搭建frp的ssh和http的内网穿透
frp 是一个用Go语言开发的,可用于内网穿透的高性能的反向代理应用,支持 tcp, udp 、 http 和 https。可将一个部署在本机的web服务映射到外网。
没有故事的陈师傅
2020/11/11
5.7K2
快速搭建frp的ssh和http的内网穿透
【技术创作101训练营】腾讯云主机上部署 FRP+Teamviewer 穿透内网进行远程运维
【技术创作101训练营】腾讯云主机上部署工具 FRP+Teamviewer 穿透内网进行远程运维
yuanfan2012
2020/09/21
2.8K2
【技术创作101训练营】腾讯云主机上部署 FRP+Teamviewer 穿透内网进行远程运维
frp配置-内网穿透工具最佳实践
frp是一个可用于内网穿透的高性能的反向代理应用,支持 tcp, udp 协议,为 http 和 https 应用协议提供了额外的能力,且尝试性支持了点对点穿透。
zhangheng
2020/04/29
9.1K0
frp配置-内网穿透工具最佳实践
相关推荐
内网穿墙利器frp,实现无公网IP穿透(支持windows+linux)
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档