ssh端口转发

简介: ssh端口转发

前言

有时候由于网络策略的限制,我们无法直接访问目标服务,但有个中间服务器两边互通且可以ssh访问,这时候就可以借助ssh实现端口转发。

ssh端口转发一般有三种:本地端口转发、远程端口转发和动态端口转发

本地端口转发

假设A服务器部署了一个80端口的web服务,但是该服务器只开放了ssh端口22,想要访问web服务的话,可以通过ssh本地端口转发实现。

命令格式:

# 跳板机的ssh端口如果不是默认的22,需要使用 -p 选项指定端口号
ssh -L 本机闲置端口号:目标主机IP:目标主机端口 远程主机用户@远程主机IP
  1. 示例,本地想访问192.168.1.3的22端口,但只能直连192.168.1.2
# 12345是本机任意未被占用的端口号
ssh -L 12345:192.168.1.3:22 zhangsan@192.168.1.2
  1. 主机A测试
ssh -p 12345 lisi@localhost

远程端口转发

假设A服务器到B服务器无直连端口,A服务器也没对B服务器开放ssh端口,但是A服务器能通过ssh连接到B服务器。如果B服务器想要访问A服务器的80端口,借助远程端口转发即可实现。

# A服务器执行
ssh -R B服务器闲置端口:A服务器IP:A服务器的80端口 B服务器系统用户@B服务器IP
  1. 示例,本地(192.168.1.2)想要访问192.168.1.3的80端口,在192.168.1.3先执行:
ssh -R 8001:192.168.1.3:80 zhangsan@192.168.1.2
  1. 本地访问8001端口测试

注意

  1. sshd_config里要打开AllowTcpForwarding选项,否则-R远程端口转发会失败。
  2. 默认转发到远程主机上的端口绑定的是127.0.0.1,如要绑定0.0.0.0需要打开sshd_config里的GatewayPorts选项。

动态转发

假设内网环境只开放了A服务器的ssh端口可供连接,想要访问内网所有服务器且不配置多个本地端口转发的话,动态转发就可以实现,该功能也常被用做魔法上梯。动态转发建立的隧道网络协议为socks 5协议。

命令格式:

# 12345是本地任意未被占用的端口号
# 远程主机的ssh端口号默认为22,如果不是,则需要使用 -p 选项指定端口号
ssh -D 本地闲置端口号 远程主机用户@远程主机IP

其它

  • 每60秒发送一个keepalive请求,保证连接不会因为超时空闲而断开
ssh -o ServerAliveInterval=60
  • -L可同时指定多个代理规则
  • -N 不执行远程命令
  • -C 压缩所有数据
  • -f 放置后台运行
  • -T 不分配tty

参考

相关文章
|
11月前
|
Linux 网络安全
linux端口连通性测试telnet、wget、ssh、curl
linux端口连通性测试telnet、wget、ssh、curl
127 0
|
安全 Linux 网络安全
Centos 6.8下修改SSH服务默认端口,看这一篇就够了
Centos 6.8下修改SSH服务默认端口,看这一篇就够了
236 0
|
网络安全 数据安全/隐私保护
百度搜索:蓝易云【多个端口怎么运行SSH服务器?】
记得替换 `username`为你的用户名,`your_server_ip`为你的服务器IP地址。根据需要,可以添加其他端口并进行相应的配置。
122 0
|
4月前
|
安全 数据挖掘 Shell
SSH安全远程登录与端口转发
**SSH 概述**:SSH 是开发者必备工具,用于安全远程登录及文件传输。本文聚焦SSH的两大功能:**密钥登录**和**端口转发**。
128 0
|
2月前
|
安全 Linux 网络安全
在Linux中,使用rsync同步数据时,假如采用的是ssh方式,并且目标机器的sshd端端并不是默认的22端口,该如何做?
在Linux中,使用rsync同步数据时,假如采用的是ssh方式,并且目标机器的sshd端端并不是默认的22端口,该如何做?
|
4月前
|
网络协议 Linux 网络安全
CentOS7增加或修改SSH端口号
CentOS7增加或修改SSH端口号
327 1
|
5月前
|
安全 Linux Shell
|
5月前
|
安全 Linux 网络安全
|
4月前
|
网络协议 Linux Shell
如何在 CentOS 中配置 SSH 服务的 TCP 端口转发
如何在 CentOS 中配置 SSH 服务的 TCP 端口转发
209 0
|
Ubuntu 安全 Shell
Ubuntu服务器安全性提升:修改SSH默认端口号
在Ubuntu服务器上,SSH(Secure Shell)是一种至关重要的远程连接工具。它提供了一种安全的方式来远程连接和管理计算机系统,通过加密通信来确保数据的保密性和完整性。SSH协议广泛用于计算机网络中,用于远程管理、文件传输和安全通信等任务。然而,SSH默认使用的端口号是22,这也是黑客们常常尝试入侵的目标之一。为了提高服务器的安全性,我们通常建议修改SSH的默认端口号,以减少未经授权的访问和潜在的风险。接下来,我们将详细介绍如何在Ubuntu上执行这一关键操作。
507 4
Ubuntu服务器安全性提升:修改SSH默认端口号