使用 FRP 实现内网穿透:客户端篇

by admin

背景: 家中宽带没有公网 IP,且了解到目前申请无望;花生壳、VNC、TeamViewer 又有各自局限,故决定用手头闲置的带公网 IP 的服务器,搭配 FRP 内网穿透实现对家中 NAS、Win10电脑、树莓派的访问。

目标: 在公网服务端和内网各类客户端安装并配置 FRP (2022年2月3日更新:新版本号及部分配置)

(2022年2月3日更新:新版本号及部分配置)

1. 客户端配置(Win10)

开启远程桌面功能   Window 10 对应客户端为

  • frp_0.39.0_windows_amd64.zip

配置方式类似,可实现 Windows 远程访问

[common]
# 服务器公网 IP 地址及端口
server_addr = x.x.x.x
server_port = 7000
# 验证访问内网客户端
token = 12345678
# 客户端内网监控页,可直接修改配置
admin_addr = 127.0.0.1
admin_port = 10500
admin_user = admin
admin_pwd = admin

用例1:浏览器通过 http://服务器公网 IP:10001 或 http://http.xxx.com 访问内网 Windows 设备网站服务

[http]
type = tcp
local_ip = 127.0.0.1
# 内网 Windows 设备 TCP 服务端口
local_port = x
# 服务器防火墙开放的 TCP 端口均可使用,本文例为 10001-10010
remote_port = 10001
# 子域名设置
subdomain = http

用例2:通过服务器公网 IP:10002 或 rdp.xxx.com 访问内网 Windows 远程桌面,其默认端口为 3389

[rdp]
type = tcp
local_ip = 127.0.0.1
local_port = 3389
remote_port = 10002
subdomain = rdp

用例3:通过服务器公网 IP:10003 访问内网 Windows SMB 共享文件,其默认端口为 445

[smb]
type = tcp
local_ip = 127.0.0.1
local_port = 445
remote_port = 10003

用例4:通过服务器公网 IP:10004 代理内网 Windows 设备 SSH 服务

[ssh]
type = tcp
local_ip = 127.0.0.1
local_port = 22
remote_port = 10004

用例5:浏览器通过服务器公网 IP:10080 或 http://web.xxx.com(已设置 vhost_http_port 监听此端口,故无需设置 remote_port)访问内网 Windows 设备网站服务

[web]
type = http
local_port = 80
subdomain = web

不要直接双击运行 frpc.exe,通过 Powershell 进入目录运行

cd C:\frp
./frpc -c ./frpc.ini

2. 客户端配置(树莓派

查看树莓派架构,下载对应 32 位 arm 版 FRP

  • frp_0.39.0_linux_arm.tar.gz

安装方法同上篇服务端(CentOS),打开 frpc.ini 配置客户端

[common]
server_addr = x.x.x.x
server_port = 7000
token = 12345678

[ssh]
type = tcp
local_ip = 127.0.0.1
local_port = 22
remote_port = 10005

[web]
type = http
local_ip = 127.0.0.1
local_port = 8080
# 一级域名,解析至服务器公网IP
custom_domains = 自定域名

运行客户端测试

nohup ./frpc -c frpc.ini>/dev/null 2>&1 &

现在可以通过服务器公网 IP 和对应端口访问树莓派上的信息了

华硕梅林和黑群晖配置方法略,本文完。