利用 frp 进行内网穿透

利用 frp 进行内网穿透

内网穿透

内网穿透是一种通过互联网将局域网内的服务暴露给外部网络的技术。在一些情况下,由于网络环境或安全限制,局域网内的设备无法直接通过公网访问。内网穿透技术通过一些手段,使外部网络能够访问局域网内的服务,就像这些服务直接部署在公网上一样。

frp

frp(Fast Reverse Proxy)是一款开源免费的内网穿透的工具,它使用了反向代理的方式来实现内网穿透。frp由客户端和服务器端组成,客户端运行在局域网内,服务器端运行在公网上。frp通过在服务器上创建一个反向代理端口,将外部请求转发到客户端上,从而实现对局域网内服务的访问。

下载和安装:

在 frp 的 GitHub Releases 下找到相应版本

1
2
wget https://github.com/fatedier/frp/releases/download/v0.53.2/frp_0.53.2_linux_amd64.tar.gz
tar -xf frp_0.53.2_linux_amd64.tar.gz

之后进入目录,分别在局域网客户端 (Client) 和公网服务端 (Server) 进行配置

1
2
3
4
5
6
7
8
9
10
# vim frpc.toml
# Client
serverAddr = "YOUR_SERVER_IP"
serverPort = 7000

[[proxies]]
name = "web"
type = "http"
localPort = 5000 # 局域网内 Client 的服务端口
customDomains = ["YOUR_CUSTOM_DOMAIN", "YOUR_SERVER_IP", "0.0.0.0", "localhost", "127.0.0.1"] # 只能通过相应host访问,例如如果没有 "localhost" 一项,则就算在 frp Server的服务器上也无法通过 http://localhost 访问服务
1
2
3
4
# vim frps.toml
# Server
bindPort = 7000 # 上面的 serverPort
vhostHTTPPort = YOUR_SERVICE_PORT # 代理服务的访问端口

保存后分别在服务端和客户端启动服务

1
2
# Server
./frps -c frps.toml
1
2
# Client
./frpc -c frpc.toml

其他配置可以参考 frp 的官方网站

Reference


利用 frp 进行内网穿透
https://blog.iks-ran.com/2024/01/29/reverse_proxy_with_frp/
Author
iks-ran
Posted on
January 29, 2024
Licensed under