使用SSH隧道实现Web服务器访问

SSH隧道



前言

SSH隧道是一种通过SSH协议在两台计算机之间建立加密连接的方法。除了用于远程登录外,SSH隧道还可以用于实现Web代理,以便在安全的网络环境中浏览网页。下面将介绍如何使用SSH隧道实现一种Web代理的方法。

一、场景

在这里插入图片描述

设备a:172.31.31.254 内网终端,开了sshd服务,
设备b:172.31.77.201 内网web服务器
设备c:172.20.20.217 外网终端

因为网络环境有限,没有公网环境,都是在内网不同网段做模拟测试,不要太过纠结内网,外网

  1. 外网场景:在外网配置ssh隧道
    能通过ssh访问网段A内的设备a,却不能访问网段A内设备b上的web服务,但设备a能访问设备b的web服务,

  2. 内网场景:在内网配置ssh隧道
    基于安全考虑要把网段A内的设备b隐藏起来,通过设备a开放一个自定义端口去访问设备b的web服务

二、前提条件

  1. 内外网场景都需要知道设备a的ssh登录的账号与密码,不过内网场景的话一般是内部人员去配置,所以一般知道账号,密码
  2. 设备a上要ssh服务要设置GatewayPorts yes,允许远程主机访问通过SSH隧道转发的端口。默认情况下,SSH只会将端口转发到本地主机上,而不允许其他主机通过SSH隧道访问这些转发的端口

三、建立SSH隧道

  1. 在设备a上配置允许远程主机访问通过SSH隧道转发
    配置文件:/etc/ssh/sshd_config 配置:GatewayPorts yes
    重启sshd服务:service sshd restart

  2. 创建ssh隧道
    a.外网场景,在设备c上配置

    ssh -f -N -g -R 6608:172.31.77.201:443 -p 2000 root@172.31.31.254
    -f:代表后台运行程序
    -N:表示不执行远程命令
    -g:允许远程主机的连接
    -R:表示创建一个远程端口转发,这会在远程主机(172.31.31.254)上监听 6608 端口,并将所有到这个端口的连接转发到 172.31.77.201 的 443 端口上
    -p:指定172.31.31.254上ssh服务的端口,如果是22就不用-p参数
    

    b.内网场景,在设备a上配置

    ssh -f -N -g -L 4444:172.31.77.201:443 -p 2000 root@172.31.31.254
    -L:表示将本机端口映射出去
    

四 、测试验证

在这里插入图片描述

在这里插入图片描述

注意:

需要注意的是,SSH隧道的速度可能会受到网络带宽和服务器性能的影响,因此在实际使用中需要根据具体情况进行调整和优化。另外,如果你需要访问HTTPS网站,SSH隧道会自动处理加密和解密过程,你无需额外配置。

  • 17
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值