Skip to content

端口转发

Terminal Electron 提供了强大的端口转发功能,支持本地转发、远程转发和动态转发等多种模式。

转发类型

1. 本地转发 (Local Forwarding)

将本地端口转发到远程服务器,用于访问远程服务。

工作原理

本地机器:8080 -> SSH隧道 -> 远程服务器:80

使用场景

  • 访问远程 Web 服务
  • 连接远程数据库
  • 访问内网服务
  • 绕过防火墙限制

配置示例

json
{
  "name": "Web Server Forward",
  "type": "local",
  "localHost": "127.0.0.1",
  "localPort": 8080,
  "remoteHost": "192.168.1.100",
  "remotePort": 80,
  "serverId": "server-uuid"
}

连接步骤

  1. 在端口转发页面点击 "新建转发"
  2. 选择 "本地转发" 类型
  3. 配置本地和远程端口
  4. 选择目标服务器
  5. 点击 "启动转发"

2. 远程转发 (Remote Forwarding)

将远程服务器端口转发到本地机器,用于内网穿透。

工作原理

远程服务器:8080 -> SSH隧道 -> 本地机器:80

使用场景

  • 内网服务暴露
  • 远程调试
  • 文件共享
  • 反向代理

配置示例

json
{
  "name": "Remote Debug Forward",
  "type": "remote",
  "bindAddress": "0.0.0.0",
  "bindPort": 8080,
  "localHost": "127.0.0.1",
  "localPort": 3000,
  "serverId": "server-uuid"
}

连接步骤

  1. 在端口转发页面点击 "新建转发"
  2. 选择 "远程转发" 类型
  3. 配置绑定地址和端口
  4. 配置本地服务地址
  5. 选择目标服务器
  6. 点击 "启动转发"

3. 动态转发 (Dynamic Forwarding)

创建 SOCKS 代理,支持动态端口转发。

工作原理

本地SOCKS代理 -> SSH隧道 -> 远程网络

使用场景

  • 网络代理
  • 绕过网络限制
  • 安全浏览
  • 应用程序代理

配置示例

json
{
  "name": "SOCKS Proxy",
  "type": "dynamic",
  "localHost": "127.0.0.1",
  "localPort": 1080,
  "serverId": "server-uuid"
}

连接步骤

  1. 在端口转发页面点击 "新建转发"
  2. 选择 "动态转发" 类型
  3. 配置本地代理端口
  4. 选择目标服务器
  5. 点击 "启动转发"

转发配置

1. 基本配置

转发参数

  • 名称: 转发规则名称
  • 类型: 本地/远程/动态转发
  • 状态: 活跃/非活跃
  • 服务器: 目标 SSH 服务器

端口配置

  • 本地主机: 本地绑定地址
  • 本地端口: 本地监听端口
  • 远程主机: 远程目标地址
  • 远程端口: 远程目标端口

2. 高级配置

绑定选项

  • 绑定地址: 指定绑定 IP 地址
  • 端口范围: 支持端口范围配置
  • 多端口: 同时转发多个端口

安全选项

  • 访问控制: 限制访问来源
  • 认证要求: 设置访问认证
  • 日志记录: 启用转发日志

3. 性能配置

优化选项

  • 压缩: 启用数据压缩
  • 缓存: 配置数据缓存
  • 超时: 设置连接超时
  • 重试: 配置重连机制

转发管理

1. 状态监控

实时状态

  • 活跃: 绿色指示灯
  • 启动中: 黄色指示灯
  • 错误: 红色指示灯
  • 停止: 灰色指示灯

统计信息

  • 连接数量
  • 数据传输量
  • 连接时间
  • 错误次数

2. 操作管理

基本操作

  • 启动转发: 激活转发规则
  • 停止转发: 停止转发服务
  • 重启转发: 重新启动转发
  • 删除转发: 移除转发规则

批量操作

  • 批量启动: 启动多个转发
  • 批量停止: 停止多个转发
  • 批量删除: 删除多个转发
  • 导入导出: 配置导入导出

3. 监控和日志

实时监控

  • 连接状态监控
  • 流量统计
  • 性能指标
  • 异常检测

日志管理

  • 访问日志
  • 错误日志
  • 性能日志
  • 安全日志

使用场景

1. Web 开发

本地开发

bash
# 转发远程数据库到本地
ssh -L 3306:localhost:3306 user@remote-server

# 访问远程 Web 服务
ssh -L 8080:localhost:80 user@web-server

远程调试

bash
# 转发远程调试端口
ssh -R 9229:localhost:9229 user@remote-server

# 访问远程开发环境
ssh -L 3000:localhost:3000 user@dev-server

2. 数据库管理

数据库连接

bash
# MySQL 远程连接
ssh -L 3306:localhost:3306 user@db-server

# PostgreSQL 远程连接
ssh -L 5432:localhost:5432 user@db-server

# Redis 远程连接
ssh -L 6379:localhost:6379 user@cache-server

数据库管理工具

  • 使用 MySQL Workbench
  • 使用 pgAdmin
  • 使用 Redis Desktop Manager
  • 使用 MongoDB Compass

3. 网络代理

SOCKS 代理

bash
# 创建 SOCKS 代理
ssh -D 1080 user@proxy-server

# 配置浏览器代理
# 代理地址: 127.0.0.1:1080

HTTP 代理

bash
# 使用 ProxyChains
proxychains curl http://example.com

# 配置应用程序代理
# 代理地址: 127.0.0.1:1080

4. 内网穿透

服务暴露

bash
# 暴露本地 Web 服务
ssh -R 8080:localhost:3000 user@remote-server

# 暴露本地 API 服务
ssh -R 9000:localhost:9000 user@remote-server

远程访问

bash
# 远程访问本地文件
ssh -L 8080:localhost:8080 user@remote-server

# 远程访问本地应用
ssh -L 3000:localhost:3000 user@remote-server

故障排除

1. 常见问题

端口被占用

问题: 本地端口已被其他程序占用 解决方案:

  1. 检查端口占用情况
  2. 更换可用端口
  3. 停止占用端口的程序
  4. 使用端口扫描工具

连接失败

问题: 无法建立转发连接 解决方案:

  1. 检查 SSH 连接状态
  2. 验证目标端口可访问
  3. 检查防火墙设置
  4. 确认服务器配置

权限问题

问题: 没有权限绑定端口 解决方案:

  1. 使用非特权端口 (>1024)
  2. 以管理员权限运行
  3. 配置端口映射
  4. 使用端口转发工具

2. 性能问题

转发速度慢

解决方案:

  1. 启用数据压缩
  2. 优化网络设置
  3. 使用更近的服务器
  4. 检查网络带宽

连接不稳定

解决方案:

  1. 配置连接保活
  2. 启用自动重连
  3. 优化超时设置
  4. 监控网络质量

3. 安全问题

未授权访问

解决方案:

  1. 限制绑定地址
  2. 配置访问控制
  3. 启用认证机制
  4. 监控访问日志

数据泄露

解决方案:

  1. 使用加密传输
  2. 配置安全策略
  3. 定期更新密钥
  4. 审计访问记录

最佳实践

1. 安全最佳实践

访问控制

  • 限制绑定地址为 127.0.0.1
  • 使用非标准端口
  • 配置防火墙规则
  • 启用访问日志

密钥管理

  • 使用强密钥认证
  • 定期轮换密钥
  • 限制密钥权限
  • 安全存储密钥

2. 性能最佳实践

连接优化

  • 启用数据压缩
  • 配置合适的超时
  • 使用连接复用
  • 优化网络设置

资源管理

  • 限制并发连接数
  • 监控资源使用
  • 及时关闭无用连接
  • 定期清理配置

3. 管理最佳实践

配置管理

  • 使用配置文件
  • 版本控制配置
  • 定期备份配置
  • 标准化命名规则

监控维护

  • 定期检查转发状态
  • 监控性能指标
  • 更新客户端版本
  • 维护转发列表

高级功能

1. 自动化脚本

批量转发

bash
#!/bin/bash
# 批量启动转发
for server in servers.txt; do
  ssh -L 8080:localhost:80 user@$server &
done

监控脚本

bash
#!/bin/bash
# 监控转发状态
while true; do
  netstat -tlnp | grep :8080
  sleep 30
done

2. 集成开发

API 集成

  • RESTful API 接口
  • WebSocket 实时通信
  • 事件驱动架构
  • 插件系统支持

开发工具

  • 调试模式支持
  • 日志分析工具
  • 性能分析器
  • 安全审计工具

3. 企业功能

集中管理

  • 用户权限管理
  • 转发策略配置
  • 审计日志
  • 监控告警

高可用性

  • 负载均衡
  • 故障转移
  • 自动重连
  • 健康检查

Released under the MIT License.