内网穿透
什么是内网穿透
内网穿透是一种网络技术,可以让处于局域网(比如你家里的网络)中的设备,通过互联网与外部设备进行通信。简单来说,就是让你家里的电脑、摄像头、服务器等设备,可以通过互联网从外面访问到。
| 方案 | 成本 | |
|---|---|---|
| frp |
需要公网服务器 | https://github.com/fatedier/frp |
| cpolar | 免费版收费版 | https://www.cpolar.com/ |
| Cloudflare Tunnel | 免费版 |
基于frp的内网穿透
frp 主要由两个组件组成:客户端(frpc) 和 服务端(frps)。通常情况下,服务端部署在具有公网 IP 地址的机器上,而客户端部署在需要穿透的内网服务所在的机器上。
由于内网服务缺乏公网 IP 地址,因此无法直接被非局域网内的用户访问。用户通过访问服务端的 frps,frp 负责根据请求的端口或其他信息将请求路由到相应的内网机器,从而实现通信。
官方教程文档:文档
在公网vps上部署frps
1 | wget https://github.com/fatedier/frp/releases/download/v0.54.0/frp_0.54.0_linux_amd64.tar.gz |
frps.toml的参数设置如下:
1 | #frps监听端口 |
使用systemd实现frps在后台长期运行:
1 | vim /etc/systemd/system/frps.service |
写入内容:
1 | [Unit] |
使用 systemd 命令管理 frps 服务
1 | 启动frp |
在本地电脑部署frpc
我个人电脑用的是win11,下载了windows版的frp压缩包:
https://github.com/fatedier/frp/releases/download/v0.54.0/frp_0.54.0_windows_amd64.zip
客户端frpc.toml文件配置:
1 | serverAddr = "xxx.xxx.xxx.xxx" #服务器公网ip |
nssm设置frpc开启启动
下载nssm
https://www.nssm.cc/download
https://www.nssm.cc/ci/nssm-2.24-101-g897c7ad.zip
解压后,把64位版本的nssm复制到 C:\Users\用户名\AppData\Local\Microsoft\WindowsApps 目录下。
进入frp 目录 ,编写start.bat文件后保存。
1 | @echo off |
打开管理员模式的命令提示符
执行命令
1 | nssm install frpc |
在弹出的nssm窗口选址执行文件路径 C:\frp\start.bat。点击保持。
nssm 一些管理命令:
1 | # 启动任务 |
基于cpolar的内网穿透
- 下载与安装:首先,用户需要从Cpolar的官方网站(https://www.cpolar.com/)下载对应操作系统的安装包,并按照提示完成安装。
- 注册与登录:在安装完成后,用户需要注册一个Cpolar账号并登录。
- 配置隧道:登录后,用户可以通过Cpolar的Web UI界面或命令行界面来配置隧道。隧道配置包括选择协议类型、本地服务端口号以及域名类型等。
- 获取公网地址:配置完成后,Cpolar会自动分配一个公网地址给隧道,用户可以通过这个公网地址来访问内网服务。
- 测试与访问:用户可以在浏览器中输入公网地址加接口路径来测试访问内网服务。