使用 frp 实现内网穿透

frp 是一个可用于内网穿透的高性能的反向代理应用,支持 tcp, udp, http, https 协议。主要他是一个开源的。
项目地址:https://github.com/fatedier/frp

架构

架构图

使用示例

根据对应的操作系统及架构,从 Release 页面下载最新版本的程序。
将 frps 及 frps.ini 放到具有公网 IP 的机器上。
将 frpc 及 frpc.ini 放到处于内网环境的机器上。

服务端配置 frps.ini

[common]
# 用于接收 frpc 连接的端口,iptables 需要开放此端口
bind_port = 7000
# 如果需要支持http类型的代理则需要指定一个端口
vhost_http_port = 8000
vhost_https_port = 44300
log_file = ./frps.log
log_level = info
# 为了防止端口被滥用,可以手动指定允许哪些端口被使用
allow_ports = 8000,44300,7000,7400,33060

客户端配置 frpc.ini
假设 frps 所在服务器的公网 IP 为 x.x.x.x

[common]
server_addr = x.x.x.x
server_port = 7000
# 这两个配置用于启用客户端热加载配置文件功能 ./frpc reload
admin_addr = 127.0.0.1
admin_port = 7400
log_file = ./frpc.log
log_level = info

# 通过 ssh 访问内网机器
# ssh -oPort=6000 用户名@x.x.x.x
[ssh]
type = tcp
local_ip = 127.0.0.1
local_port = 22
remote_port = 6000

# 范围端口映射
[range:tcp]
type = tcp
local_ip = 127.0.0.1
local_port = 3306
remote_port = 33060

# 通过 http://www.einsition.com:8000 访问内网的 web 服务
[web]
type = http
local_ip = 127.0.0.1
local_port = 8000
custom_domains = www.einsition.com

启动 frps

$ nohup ./frps &

启动 frpc

$ nohup ./frpc &

更多配置请查阅 官方文档

本作品采用《CC 协议》,转载必须注明作者和本文链接
《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
讨论数量: 2

frp是很好的,就是需要一定的基础,不想配置的小伙伴可以用一下网云穿,很简单方便。

4年前 评论

内网穿透frp用过会比较折腾,后来一直在用nat123,远程办公网站和应用外网访问内网都很方便

4年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!