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,我希望访问服务器tyun
的12345
就转发到本地的25565
ssh -R 12345:127.0.0.1:25565 tyun
完整命令语法是:
ssh -R <[远程主机地址:]:远程端口:本机地址:本机端口>
同理,此处本机地址也不一定是127.0.0.1,可以是本机可访问的任何ip。
-N: 不登陆只转发
-f: 后台