自建内网穿透服务
本文最后更新于:几秒前
自建内网穿透服务
开源工具:frp
仓库地址:https://github.com/fatedier/frp
下载对应的版本。
我是基于centos与window使用
服务端配置
上传包,解压
配置文件默认是7000端口,不改也行
直接启动./frps
即可
当然,可以使用 pm2 来管理 FRP 服务端
1. 安装 pm2(如果尚未安装)
- 如果服务器是基于 Node.js 环境,使用以下命令全局安装 pm2:
1 |
|
2. 配置frps
启动脚本
- 创建一个启动
frps
的脚本文件(例如frps-start.sh
),内容如下:
1 |
|
- 赋予脚本执行权限:
1 |
|
3. 使用 pm2 启动frps
- 在终端中执行以下命令,通过 pm2 启动
frps
:
1 |
|
这里--name frps
是给这个进程命名为frps
,方便后续对其进行管理。
4. pm2 常用管理命令
- 查看
frps
运行状态:
1 |
|
- 重启
frps
**:
1 |
|
- **停止
frps
**:
1 |
|
- 查看
frps
的日志:
1 |
|
使用 pm2 管理frps
可以方便地实现进程守护、自动重启等功能,提高服务的稳定性和可维护性。同时,在配置过程中要注意脚本中的路径和参数设置与你的实际环境相匹配。
客户端
解压,修改配置文件:
1 |
|
可以配置多组
启动服务,用命令行交互窗口frpc.exe -c ./frpc.toml
为了方便,可以写个bat脚本,下次双击启动
1 |
|
测试
假设你已经将本地的 8080 端口服务通过 FRP 映射到公网
- 本地服务情况
- 假设本地运行着一个简单的 Web 服务,比如使用 Python 的 Flask 框架启动的一个应用,监听在本地的 8080 端口。示例代码如下(仅为示例,你可以是其他类型的 8080 端口服务):
1 |
|
测试访问公网映射端口
- 在公网的其他设备(比如你的手机使用移动数据网络,或者另外一台不在本地局域网内的电脑)上,打开浏览器。
- 在浏览器地址栏中输入公网服务器的 IP 地址(如果配置了域名,使用域名也可以)和映射的公网端口(这里是 8080),例如
http://公网服务器IP:8080
或者http://your_domain.com:8080
(如果使用域名)。 - 如果一切正常,你应该能够看到在本地 8080 端口服务返回的内容,比如上述 Flask 示例中的 “Hello, World!” 信息。这就表明 FRP 成功实现了内网穿透,使得公网设备可以访问到本地局域网内的服务。
如果是其他类型的服务如 SSH、数据库等),可以使用相应的客户端工具进行测试
- 对于 SSH 服务(假设将本地 22 端口的 SSH 服务通过 FRP 映射到公网 6000 端口)
- 在公网设备上,使用 SSH 客户端(如 PuTTY,如果是 Windows 系统)。在 PuTTY 的配置中,输入公网服务器的 IP 地址(或域名)和映射的公网端口 6000,然后尝试连接。如果连接成功并能正常登录到本地 SSH 服务所在的机器,说明 FRP 对 SSH 服务的内网穿透成功。
- 对于数据库服务(假设将本地 MySQL 的 3306 端口通过 FRP 映射到公网 7000 端口)
- 在公网设备上,可以使用数据库连接工具(如 MySQL Workbench)。在连接设置中,将服务器地址设置为公网服务器的 IP 地址(或域名),端口设置为 7000,然后尝试使用正确的用户名和密码连接本地的 MySQL 数据库。如果能成功连接,表明 FRP 对数据库服务的内网穿透有效。
自建内网穿透服务
https://yan-sheng-li.github.io/blog/posts/57913.html