端口转发
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"
}连接步骤
- 在端口转发页面点击 "新建转发"
- 选择 "本地转发" 类型
- 配置本地和远程端口
- 选择目标服务器
- 点击 "启动转发"
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"
}连接步骤
- 在端口转发页面点击 "新建转发"
- 选择 "远程转发" 类型
- 配置绑定地址和端口
- 配置本地服务地址
- 选择目标服务器
- 点击 "启动转发"
3. 动态转发 (Dynamic Forwarding)
创建 SOCKS 代理,支持动态端口转发。
工作原理
本地SOCKS代理 -> SSH隧道 -> 远程网络使用场景
- 网络代理
- 绕过网络限制
- 安全浏览
- 应用程序代理
配置示例
json
{
"name": "SOCKS Proxy",
"type": "dynamic",
"localHost": "127.0.0.1",
"localPort": 1080,
"serverId": "server-uuid"
}连接步骤
- 在端口转发页面点击 "新建转发"
- 选择 "动态转发" 类型
- 配置本地代理端口
- 选择目标服务器
- 点击 "启动转发"
转发配置
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-server2. 数据库管理
数据库连接
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:1080HTTP 代理
bash
# 使用 ProxyChains
proxychains curl http://example.com
# 配置应用程序代理
# 代理地址: 127.0.0.1:10804. 内网穿透
服务暴露
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. 常见问题
端口被占用
问题: 本地端口已被其他程序占用 解决方案:
- 检查端口占用情况
- 更换可用端口
- 停止占用端口的程序
- 使用端口扫描工具
连接失败
问题: 无法建立转发连接 解决方案:
- 检查 SSH 连接状态
- 验证目标端口可访问
- 检查防火墙设置
- 确认服务器配置
权限问题
问题: 没有权限绑定端口 解决方案:
- 使用非特权端口 (>1024)
- 以管理员权限运行
- 配置端口映射
- 使用端口转发工具
2. 性能问题
转发速度慢
解决方案:
- 启用数据压缩
- 优化网络设置
- 使用更近的服务器
- 检查网络带宽
连接不稳定
解决方案:
- 配置连接保活
- 启用自动重连
- 优化超时设置
- 监控网络质量
3. 安全问题
未授权访问
解决方案:
- 限制绑定地址
- 配置访问控制
- 启用认证机制
- 监控访问日志
数据泄露
解决方案:
- 使用加密传输
- 配置安全策略
- 定期更新密钥
- 审计访问记录
最佳实践
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
done2. 集成开发
API 集成
- RESTful API 接口
- WebSocket 实时通信
- 事件驱动架构
- 插件系统支持
开发工具
- 调试模式支持
- 日志分析工具
- 性能分析器
- 安全审计工具
3. 企业功能
集中管理
- 用户权限管理
- 转发策略配置
- 审计日志
- 监控告警
高可用性
- 负载均衡
- 故障转移
- 自动重连
- 健康检查