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

参考

相关文章
|
Linux 网络安全
linux端口连通性测试telnet、wget、ssh、curl
linux端口连通性测试telnet、wget、ssh、curl
298 0
|
3月前
|
安全 网络协议 Linux
Linux查 ssh端口号和服务状态
本指南详细介绍如何检查SSH服务的运行状态,包括通过进程命令验证服务启动、查看监听端口、检测系统服务状态以及防火墙配置。同时提供安全建议,如修改默认端口、禁用密码登录和定期更新系统,确保SSH服务稳定与安全。适用于不同Linux发行版(Systemd/SysVinit),帮助用户全面排查和优化SSH配置。
|
安全 数据挖掘 Shell
SSH安全远程登录与端口转发
**SSH 概述**:SSH 是开发者必备工具,用于安全远程登录及文件传输。本文聚焦SSH的两大功能:**密钥登录**和**端口转发**。
274 0
|
9月前
|
运维 网络安全
解决ssh: connect to host IP port 22: Connection timed out报错(scp传文件指定端口)
通过这些步骤和方法,您可以有效解决“ssh: connect to host IP port 22: Connection timed out”问题,并顺利使用 `scp`命令传输文件。
8385 7
|
9月前
|
网络协议 Ubuntu Linux
解决ssh: connect to host IP port 22: Connection timed out报错(scp传文件指定端口)
解决 `ssh: connect to host IP port 22: Connection timed out` 报错涉及检查 SSH 服务状态、防火墙配置、网络连通性和主机名解析等多个方面。通过逐步排查上述问题,并在 `scp` 命令中正确指定端口,可以有效解决连接超时的问题,确保文件传输的顺利进行。希望本文提供的解决方案能帮助您快速定位并解决该错误。
2024 3
|
运维 搜索推荐 Shell
Ansible自动化运维工具之个性化定制SSH连接登录端口(3)
Ansible自动化运维工具之个性化定制SSH连接登录端口(3)
396 0
|
安全 Linux 网络安全
在Linux中,使用rsync同步数据时,假如采用的是ssh方式,并且目标机器的sshd端端并不是默认的22端口,该如何做?
在Linux中,使用rsync同步数据时,假如采用的是ssh方式,并且目标机器的sshd端端并不是默认的22端口,该如何做?
|
安全 Linux Shell
|
网络协议 Linux 网络安全
CentOS7增加或修改SSH端口号
CentOS7增加或修改SSH端口号
724 1
|
安全 Linux 网络安全