logo
0
0
WeChat Login
add: 增加安装卸载脚本

FRP 内网穿透工具

这是一个基于 FRP 的内网穿透解决方案,包含服务端和客户端程序,支持自动启动和服务化管理。

项目结构

. ├── frps # 服务端可执行文件 ├── frps.toml # 服务端配置文件 ├── frps.service # 服务端systemd服务文件 ├── install-server.sh # 服务端安装脚本 ├── .env.example # 环境变量配置示例 ├── linux-x86-client/ # Linux客户端目录 │ ├── frpc # Linux客户端可执行文件 │ ├── frpc.toml # Linux客户端配置文件 │ ├── frpc.service # Linux客户端systemd服务文件 │ └── install-client.sh # Linux客户端安装脚本 └── windows-x86-client/ # Windows客户端目录 ├── frpc.exe # Windows客户端可执行文件 ├── frpc.toml # Windows客户端配置文件 ├── install-service.bat # Windows客户端服务安装脚本 └── uninstall-service.bat # Windows客户端服务卸载脚本

服务端部署

1. 在 CloudStudio 部署服务端

  1. 将项目文件上传到 CloudStudio
  2. 运行安装脚本:
sudo ./install-server.sh
  1. 服务状态管理:
# 查看服务状态 systemctl status frps # 重启服务 systemctl restart frps # 停止服务 systemctl stop frps # 查看服务日志 journalctl -u frps -f

2. 服务端配置

服务端配置文件 frps.toml

  • 端口 7000: 客户端连接端口
  • 端口 7500: Web管理界面端口
  • 默认账号: admin/admin

访问 Web 管理界面:http://127.0.0.1:7500 (默认配置)

服务启动状态:安装后服务将自动启动并设置为开机自启动

客户端部署

Linux 客户端

  1. 设置环境变量(可选,不设置将使用默认配置):
export FRP_SERVER_ADDR=your-server-ip export FRP_SERVER_PORT=7000 export FRP_CLIENT_NAME=my-device
  1. 运行安装脚本:
sudo ./install-client.sh
  1. 服务管理:
# 查看服务状态 systemctl status frpc # 重启服务 systemctl restart frpc # 停止服务 systemctl stop frpc # 查看服务日志 journalctl -u frpc -f

默认配置说明:如果不设置环境变量,客户端将使用默认配置连接到 127.0.0.1:7000

Windows 客户端

  1. 修改 install-service.bat 中的环境变量:
set FRP_SERVER_ADDR=your-server-ip set FRP_SERVER_PORT=7000 set FRP_CLIENT_NAME=my-device
  1. 以管理员身份运行安装脚本:
install-service.bat
  1. 服务管理:
# 查看服务状态 sc query FRPClient # 重启服务 sc stop FRPClient sc start FRPClient # 查看服务日志 # 日志保存在 Windows 事件查看器中
  1. 卸载服务:
uninstall-service.bat

默认配置说明:如果不修改环境变量,客户端将使用默认配置连接到 127.0.0.1:7000

技术说明:使用Windows原生sc命令创建服务,无需第三方工具

配置说明

客户端代理配置

客户端默认配置了多个常用服务的TCP代理,包括SSH、Web服务、数据库等。具体配置如下:

Linux 客户端默认代理服务

服务名称本地端口远程端口用途说明
SSH226000SSH远程连接
Web开发80806080本地Web开发服务器
MySQL33066306MySQL数据库访问
Redis63796379Redis缓存访问
PostgreSQL54325432PostgreSQL数据库访问
备用160016001自定义服务备用
备用260026002自定义服务备用
备用360036003自定义服务备用

Windows 客户端默认代理服务

服务名称本地端口远程端口用途说明
远程桌面33893389Windows远程桌面连接
SSH226000SSH服务(如Git Bash/WSL)
Web开发80806080本地Web开发服务器
IIS网站806080IIS默认网站
SQL Server143361433SQL Server数据库
MySQL33066306MySQL数据库访问
备用160016001自定义服务备用
备用260026002自定义服务备用
备用360036003自定义服务备用

注意:只有本地对应端口有服务在运行时,相应的代理才会生效。

添加更多代理

frpc.toml 中添加新的代理配置:

# HTTP代理 [[proxies]] name = "web" type = "http" localIP = "127.0.0.1" localPort = 80 customDomains = ["your-domain.com"] # HTTPS代理 [[proxies]] name = "web-secure" type = "https" localIP = "127.0.0.1" localPort = 443 customDomains = ["your-domain.com"] # TCP代理 [[proxies]] name = "database" type = "tcp" localIP = "127.0.0.1" localPort = 3306 remotePort = 3306

环境变量配置

客户端支持通过环境变量灵活配置服务器地址:

环境变量说明默认值
FRP_SERVER_ADDR服务器IP地址127.0.0.1
FRP_SERVER_PORT服务器端口7000
FRP_CLIENT_NAME客户端标识名称default-client

配置说明:默认配置适用于在同一台机器上测试,实际部署时需要将 FRP_SERVER_ADDR 修改为实际的服务器IP地址。

使用方法

Linux:

# 方法1:导出环境变量 export FRP_SERVER_ADDR=127.0.0.1 export FRP_SERVER_PORT=7000 sudo ./install-client.sh # 方法2:在运行时指定 sudo FRP_SERVER_ADDR=127.0.0.1 FRP_SERVER_PORT=7000 ./install-client.sh

Windows: 修改 install-service.bat 中的环境变量设置,例如:

set FRP_SERVER_ADDR=127.0.0.1 set FRP_SERVER_PORT=7000

使用场景

Linux 客户端

  1. 远程SSH访问:通过远程端口6000连接SSH服务
    ssh server-ip -p 6000
  2. Web开发调试:通过远程端口6080访问本地8080端口的Web应用
    http://server-ip:6080
  3. 数据库访问:远程访问MySQL、Redis、PostgreSQL等数据库服务
  4. 自定义服务:使用备用端口6001-6003部署自定义服务

Windows 客户端

  1. 远程桌面连接:通过远程端口3389访问Windows桌面
  2. Web开发调试:通过远程端口6080访问本地IIS或开发服务器
  3. 数据库管理:远程访问SQL Server、MySQL等数据库
  4. SSH访问:通过远程端口6000访问WSL或Git Bash的SSH服务

通用场景

  1. 开发环境共享:将本地开发环境暴露给团队成员或客户
  2. 家庭网络访问:从外部访问家庭网络中的设备和服务
  3. 测试环境部署:临时暴露测试服务供外部测试
  4. 备份服务同步:通过备用端口配置备份和数据同步服务

安全注意事项

  1. 修改Web管理界面的默认用户名和密码
  2. 合理配置防火墙规则,只开放必要的端口
  3. 使用域名和HTTPS保护敏感数据传输
  4. 定期更新FRP到最新版本

故障排除

服务无法启动

  1. 检查配置文件语法是否正确
  2. 确认端口未被占用
  3. 查看服务日志:journalctl -u frpsjournalctl -u frpc

客户端连接失败

  1. 确认服务器地址和端口配置正确
  2. 检查网络连通性和防火墙设置
  3. 验证服务端是否正常运行

代理不生效

  1. 检查本地服务状态:确认对应本地端口有服务在运行
    # Linux检查端口占用 netstat -tlnp | grep :22 netstat -tlnp | grep :8080 # Windows检查端口占用 netstat -an | findstr :22 netstat -an | findstr :8080
  2. 确认端口映射配置:检查frpc.toml中的localIP和localPort是否正确
  3. 查看服务端状态:访问Web管理界面 http://127.0.0.1:7500 检查连接和代理状态
  4. 检查防火墙设置:确保本地防火墙允许对应端口的连接

卸载说明

服务端

# 运行服务端卸载脚本 sudo ./uninstall-server.sh

Linux 客户端

# 运行客户端卸载脚本 sudo ./linux-x86-client/uninstall-client.sh

Windows 客户端

运行 windows-x86-client/uninstall-service.bat 即可。

注意:卸载脚本只会删除系统服务,配置文件和可执行文件会保留,如需完全删除请手动删除相关目录。

许可证

本项目基于原FRP项目,遵循相应的开源许可证。