通过SSH隧道与跳板机实现本地端口映射访问服务器文件

文章目录

场景需求

  • 在Windows浏览器访问 127.0.0.1:12138
  • 自动显示服务器指定路径下的文件列表
  • 通过跳板机进行安全中转

一、服务器端配置

1. 启动HTTP文件服务

作用:将服务器指定目录通过HTTP协议暴露,使12138端口可访问文件列表。

bash 复制代码
# 进入目标目录
cd /path/to/your/directory

# 使用Python3启动简易HTTP服务(推荐测试用)
python3 -m http.server 12138 --bind 0.0.0.0

# 生产环境建议使用Nginx/Apache持久化配置

关键参数

  • --bind 0.0.0.0 允许外部IP访问
  • 默认展示当前目录文件列表

2. 配置防火墙

作用:确保服务器的12138端口可通过防火墙。

bash 复制代码
# Ubuntu UFW
sudo ufw allow 12138/tcp

# CentOS firewalld
sudo firewall-cmd --permanent --add-port=12138/tcp
sudo firewall-cmd --reload

3. 验证服务状态

bash 复制代码
netstat -tuln | grep 12138  # 确认端口监听
curl http://localhost:12138 # 测试本地访问

二、SSH隧道建立

1. 直接连接场景

命令

bash 复制代码
ssh -L 12138:localhost:12138 user@server_ip -N

参数解析

  • -L 本地端口转发
  • 第一个12138:本地监听端口
  • localhost:12138:目标服务器的映射地址
  • -N 不执行远程命令

2. 通过跳板机连接

作用:当服务器处于内网需通过跳板机访问时。

bash 复制代码
# 方法1:SSH嵌套连接
ssh -L 12138:target_server:12138 jump_user@jump_host -t ssh user@target_server

# 方法2:使用ProxyJump(OpenSSH 7.3+)
ssh -J jump_user@jump_host user@target_server -L 12138:localhost:12138 -N

流程说明

  1. 本地与跳板机建立连接
  2. 通过跳板机作为中介连接到目标服务器
  3. 隧道数据流:浏览器 -> 本地12138 -> 跳板机 -> 目标服务器12138

三、Windows端配置

1. 使用PowerShell建立隧道

powershell 复制代码
ssh -L 12138:localhost:12138 user@server_ip -N

2. 保持隧道稳定

  • 使用autossh自动重连:

    powershell 复制代码
    autossh -M 0 -L 12138:localhost:12138 user@server_ip -N
  • 配置为Windows服务, 或通过bat批处理, 双击批处理脚本自动连接.


四、浏览器验证

  1. 打开 http://127.0.0.1:12138
  2. 应显示服务器端指定目录的文件列表
  3. 支持点击下载文件(取决于HTTP服务配置)

五、高阶配置建议

1. 生产环境增强

  • 使用Nginx配置带认证的静态服务:

    nginx 复制代码
    server {
        listen 12138;
        location / {
            alias /path/to/directory/;
            autoindex on;
            auth_basic "Restricted";
            auth_basic_user_file /etc/nginx/.htpasswd;
        }
    }

2. SSH安全加固

  • 使用密钥认证代替密码
  • 限制跳板机用户权限
  • 设置SSH连接超时时间

故障排查指南

现象 排查步骤
连接超时 1. 检查防火墙规则 2. 验证跳板机连通性 3. 确认目标服务是否运行
无文件列表 1. 检查HTTP服务是否绑定0.0.0.0 2. 确认目录权限 3. 查看服务日志
隧道中断 1. 使用-v参数查看SSH调试信息 2. 检查网络稳定性

原理解析

  • SSH隧道:在本地与远程服务器之间建立加密通道,实现端口流量的透明转发
  • 端口映射 :通过-L参数将本地端口流量重定向到远程端口
  • 跳板机作用:作为网络边界的安全检查点,避免直接暴露内网服务器
相关推荐
极简网络科技22 分钟前
Docker、Wsl 打包迁移环境
运维·docker·容器
黑客老李26 分钟前
JavaSec | SpringAOP 链学习分析
java·运维·服务器·开发语言·学习·apache·memcached
杨浦老苏27 分钟前
轻量级Docker管理工具Docker Switchboard
运维·docker·群晖
江湖有缘30 分钟前
【Docker管理工具】部署Docker可视化管理面板Dpanel
运维·docker·容器
这儿有一堆花1 小时前
安全访问家中 Linux 服务器的远程方案 —— 专为单用户场景设计
linux·服务器·安全
RussellFans1 小时前
Linux 文本三剑客(grep, awk, sed)
linux·运维·服务器
猴哥聊项目管理2 小时前
什么是DevOps智能平台的核心功能?
运维·项目管理·制造·devops·软件·项目管理软件·软件分享
Chuncheng's blog2 小时前
CentOS 7如何编译安装升级gcc至7.5版本?
linux·运维·c++·centos
听风吹等浪起2 小时前
CentOS在vmware局域网内搭建DHCP服务器【踩坑记录】
linux·服务器·centos
aitav02 小时前
⚡️ Linux Docker 基本命令参数详解
linux·运维·docker