ssh端口转发

看了一些文章,实在是跟婆娘的裹脚,又臭又长,解释的倒是正确,但是那么长很容易吓退看文章的人,况且写的也不那么清晰,ABC来回都混淆了。
ssh总共有3种转发模式,分别是
-D: 动态端口转发,这玩意用来做socks proxy,此处不写。
-L:访问本地端口 == 远程端口
-R:访问远程端口 == 访问本地端口

本地指发起ssh请求的客户端,远程指接收ssh请求的服务器
以下所有ssh命令都是在本地电脑执行的

举例子:

1. -L

场景:我希望访问笔记本电脑的8963端口 = 访问服务器的80端口

服务器tyun只开放22端口,在服务器的80端口开了个服务器,想在本地访问,则:

ssh -L 8963:127.0.0.1:80 tyun

这样对本地8963端口的请求就被转发到了服务器上的80端口
命令语法是:

ssh -L <[本机地址:]本机端口:远程主机地址:远程主机端口> <远程主机名字>

这样在本地访问本机地址:本机端口就和在服务器上访问远程主机地址:远程主机端口一样
这里远程主机不一定是127.0.0.1,可以是远程主机可以访问的任何ip。

2. -R(可以用来内网穿透)

我希望访问服务器的12345端口 = 访问本地的25565端口
本地开了个mc服务器,监听25565端口,但是无公网ip,我希望访问服务器tyun12345就转发到本地的25565

ssh -R 12345:127.0.0.1:25565 tyun

完整命令语法是:

ssh -R <[远程主机地址:]:远程端口:本机地址:本机端口>

同理,此处本机地址也不一定是127.0.0.1,可以是本机可访问的任何ip。

-N: 不登陆只转发
-f: 后台

posted @ 2022-07-21 11:10  王冰冰  阅读(63)  评论(0编辑  收藏  举报