介绍下最近比较实用的端口转发

vscode 扩展转发

在日常使用云服务器的时候,如果要访问上面自建的 mysql,一般要不直接开对应的端口,然后需要对本地 ip 进行授权,但是这个方案会有比较多的限制,比如本地 ip 变了,比如是非固定出口 ip 的家用宽带,或者要在家里跟公司都要访问,如果对所有 ip 都授权的话会不安全,这个时候其实是用 ssh 端口转发是个比较安全方便的方式。
原来在这个之前其实对这块内容不太了解,后面是听朋友说的,vscode 的 Remote - SSH 扩展可以很方便的使用端口转发,在使用该扩展的时候,会在控制台位置里都出现一个”端口” tab

如图中所示,我就是将一个服务器上的 mysql 的 3306 端口转发到本地的 3307 端口,至于为什么不用 3306 是因为本地我也有个 mysql 已经使用了 3306 端口,这个方法是使用的 vscode 的这个扩展,

ssh 命令转发

还有个方式是直接使用 ssh 命令
命令可以如此

1
ssh -CfNg -L 3307:127.0.0.1:3306 user1@199.199.199.199

简单介绍下这个命令
-C 表示的是压缩数据包
-f 表示后台执行命令
-N 是表示不执行具体命令只用于端口转发
-g 表示允许远程主机连接本地转发端口
-L 则是具体端口转发的映射配置
上面的命令就是将远程主机的 127.0.0.1:3306 对应转发到本地 3307
而后面的用户则就是登录主机的用户名user1和ip地址199.199.199.199,当然这个配置也不是唯一的

ssh config 配置转发

还可以在ssh 的 config 配置中加对应的配置

1
2
3
4
5
6
Host host1
HostName 199.199.199.199
User user1
IdentityFile /Users/user1/.ssh/id_rsa
ServerAliveInterval 60
LocalForward 3310 127.0.0.1:3306

然后通过 ssh host1 连接服务器的时候就能顺带做端口转发