当前位置:首页 > 系统运维 > 正文内容

SSH用法进阶,端口转发/内网穿透/上网代理

admin2年前 (2023-06-05)系统运维997

端口转发

ssh 不止能用来登录或者执行远程命令,还是用做端口转发

ssh 的端口转发分为三种 本地转发,远程转发,动态转发

在使用端口转发时,通常会使用到 -N,-f 两个 flag

-N 表示不需要执行任何命令,用于端口转发

-f 表示在后台运行,不需要登录到远端主机上


本地转发

本地转发是指将发送到本地端口的请求发送到远端主机上(本地做反向代理),可以以127.0.0.1的身份访问远程主机的mysql服务等其它http服务

ssh -Nf -L <本地地址>:<本地端口>:<远程主机目标地址>:<远程主机目标端口> <user>@<remote-ip>

访问 <本地地址>:<本地端口>,数据会转发到 <remote-ip> 主机的<远程主机目标地址>:<远程主机目标端口>中<本地地址> 可以省略,默认为 127.0.0.1

场景:远端主机(10.10.10.100)中运行一个 http server,但是他只监听了 localhost:8080 地址,但是我想在本地访问这个地址,该怎么办

ssh -Nf -L 8000:127.0.0.1:8080 iceber@10.10.10.100

这时通过本地 127.0.0.1:8000 就可以访问到 10.10.10.100 机器中的本地服务了

有时 MySQL 会限制登录的 ip,这时就可以使用本地端口转发来访问了


远程转发

远程转发是指将发送到远端主机的请求转发到本地的目标端口(内网穿透)

ssh -Nf -R <远程主机地址>:<远程主机端口>:<本地目标地址>:<本地目标端口> <user>@<remote-ip>

在本地执行 ssh 远程转发命令,访问 <远程主机地址>:<远程主机端口>时,请求会转发到本地<本地目标地址>:<本地目标端口>

<远程主机地址>: 可以省略,默认为 127.0.0.1,可以设置为 0.0.0.0 在所有网卡上建立转发

转发远程主机的非 localhost ip 时,需要修改 /etc/ssh/sshd_config

# /etc/ssh/sshd_config
GatewayPorts yes


场景:将局域网中的 ssh 通过远程主机暴露给外网

在局域网外,我们无法通过 ssh 连接到局域网中的主机,但是如果把局域网主机中将 ssh 端口和可以外网访问的远程主机端口建立远程转发,那么就可以通过远程主机访问局域网主机了

ssh -Nf R 10022:localhost:22 iceber@<remote-ip>

将远程主机的 localhost:10022 端口接收的请求转发到本地 localhost:22 中

这时在外网登录远程主机,然后 ssh -p 10022 @localhost 就可以登录到局域网中了

不建议局域网中 ssh 端口直接和远程主机的外部 ip 建立端口映射


动态转发

动态转发会在本地监听端口,所有发送到该端口的请求都转发到远程主机中,由远程主机来执行请求(上网代理)

ssh -Nf -D <本地地址>:<本地端口> <user>@<remote-ip>

可以用来做 SOCKS5 代理,如果远程主机可以访问外网,这样通过把浏览器的代理服务器设置为 socks5://127.0.0.1:10080 就可以让远程主机来执行请求,同样可以访问到外网了

$ ssh -Nf -D 10080 iceber@<remote-ip>


————————————————

版权声明:本文为CSDN博主「IceberGu」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。

原文链接:https://blog.csdn.net/DAGU131/article/details/108129625/

扫描二维码推送至手机访问。

版权声明:本文由物联网笔记发布,如需转载请注明出处。

本文链接:http://www.getsoft.cc/?id=16

分享给朋友:

相关文章

Centos挂载硬盘完整图文教程(查看、分区、格式化、挂载)磁盘

https://www.fujieace.com/linux/centos-mount.htmlhttps://www.bt.cn/bbs/thread-50002-1-1.html...

centos6.4下无法mount ntfs格式的移动硬盘的解决方法

想把移动硬盘挂载到centos6.4系统上拷数据,结果在mount时提示不能识别ntfs格式解决办法一:1.用fdisk -l命令查看硬盘及分区信息假设看到的移动硬盘是/dev/sdb12.把移动硬盘格式化成fat32格式的mkfs -T...

Linux下通过命令行安装docker

curl -fsSL https://get.docker.com -o get-docker.sh && sh get-docker.sh...

在linux服务器上用命令行播放MP3文件,实现一个语音播报服务器

在Linux服务器上安装mpg123来播放MP3文件是非常简单的。不仅如此,mpg123以其高速度和低资源消耗而著名,是一个非常受欢迎的开源MP3播放器。下面是在Ubuntu系统上安装并使用mpg123的步骤:步骤1:安装mpg123打开终...

开源的mp3播放软件mpg123的用法及使用场景

mpg123是一个流行的开源MP3播放器,它以其高速度和低资源消耗而备受赞誉。本文将介绍mpg123的用法、配置参数以及使用场景。1. mpg123的用法mpg123可以在Linux、Windows和Mac OS X等操作系统上运行。你可以...

发表评论

访客

看不清,换一张

◎欢迎参与讨论,请在这里发表您的看法和观点。