在当今互联网时代,远程访问内网资源已成为一种常见需求。无论是在家访问办公室的电脑,还是远程管理家庭NAS,内网映射都是一种强大的解决方案。
本文将详细介绍如何使用frp(Fast Reverse Proxy)来实现这一目标。
frp是一个高性能的反向代理应用,可以帮助您轻松地进行内网穿透,将NAT或防火墙后的本地服务器暴露到互联网。它支持TCP、UDP、HTTP、HTTPS等多种协议,使用起来非常灵活。
frp主要由两部分组成:
frps (服务端): 运行在具有公网IP的服务器上
frpc (客户端): 运行在您想要暴露到公网的内网机器上
内网映射的概念和用途:内网映射允许您将内网服务器的端口映射到公网IP的特定端口上,使得外网用户可以通过访问公网IP和端口来访问内网服务
访问frp的GitHub发布页面: https://github.com/fatedier/frp/releases
根据您的操作系统下载适合的版本
解压下载的文件,您会看到frps和frpc两个可执行文件
下载后的操作步骤
Windows:
创建目录:C:\frp
使用内置的解压工具或7-Zip等软件,将文件解压到 C:\frp 目录下
Linux/macOS:
创建目录:
sudo mkdir /usr/local/frp
解压文件到该目录:
sudo tar -zxvf frp_x.xx.x_linux_amd64.tar.gz -C /usr/local/frp
设置适当的权限:
sudo chown -R $(whoami):$(whoami) /usr/local/frp
解压后,在您指定的目录(如 C:\frp 或 /usr/local/frp)中,您会看到以下文件:
frps: 服务端程序(用于公网服务器)
frpc: 客户端程序(用于内网设备)
frps.ini: 服务端配置文件模板
frpc.ini: 客户端配置文件模板
frps_full.ini 和 frpc_full.ini: 包含所有可能配置项的完整配置文件
配置服务端(公网服务器)
配置完即可通过客户端ssh连接到服务端
进入 frp 目录:
Windows: cd C:\frp
Linux/macOS: cd /usr/local/frp
编辑 frps.ini 文件:
[common]
bind_port = 7000
token = your_secure_token
将 frps 和 frps.ini 上传到您的公网服务器的相应目录(如 /usr/local/frp/)
配置客户端(内网设备)
进入 frp 目录:
Windows: cd C:\frp
Linux/macOS: cd /usr/local/frp
编辑 frpc.ini 文件:
[common]
server_addr = your_server_public_ip
server_port = 7000
token = your_secure_token
[ssh]
type = tcp
local_ip = 127.0.0.1
local_port = 22
remote_port = 6000
确保 frpc 和 frpc.ini 保存在您的内网设备上的指定目录中
启动服务
在公网服务器上启动 frps:
cd /usr/local/frp
./frps -c frps.ini
在内网设备上启动 frpc:
Windows:
cd C:\frp
frpc.exe -c frpc.ini
Linux/macOS:
cd /usr/local/frp
./frpc -c frpc.ini
编辑 frps.ini 文件,添加 HTTP 服务的端口:
[common]
bind_port = 7000
vhost_http_port = 80
token = your_secure_token
这里的 vhost_http_port 是用于接收 HTTP 请求的端口,通常设置为 80。
如果您的服务器已经有 Web 服务占用了 80 端口,可以选择其他端口,如 8080:
vhost_http_port = 8080
编辑 frpc.ini 文件,添加 HTTP 服务的配置:
[common]
server_addr = your_server_public_ip
server_port = 7000
token = your_secure_token
[web]
type = http
local_ip = 127.0.0.1
local_port = 8080
custom_domains = yourdomain.com
undefined
type = http: 指定这是一个 HTTP 服务。
local_ip 和 local_port: 指向您本地的 Web 服务地址和端口。
custom_domains: 指定要使用的域名,这个域名应该解析到您的公网服务器 IP。
如果您想要通过子域名访问,可以这样配置:
[web]
type = http
local_ip = 127.0.0.1
local_port = 8080
subdomain = test
启动服务
在公网服务器上启动 frps:
./frps -c frps.ini
在内网设备上启动 frpc:
./frpc -c frpc.ini
访问测试
配置完成后,您应该能够通过 http://yourdomain.com 或 http://test.yourdomain.com 来访问您的内网 Web 服务了。
这样就配置完成。
下一篇博客会讲完成之后如何测试是否联通,以及一些debug方法。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。