Mac下的端口转发
最近开始使用Mac来作为开发机了,还是有很多不习惯,比如端口转发这件小事,windows上可以用xshell,但Mac上没有xshell,但是Mac上有shell终端啊,所以就直接使用终端就好了
为什么要端口转发?
为了安全公司设置了跳板机,间接访问公司的服务器,通过配置,访问跳板机的端口,然后将请求转发到目标机的指定端口上。
ssh免密码登录
生成公钥,请自行百度
让跳板机管理员把你的公钥加入到跳板机公钥库
cd ~/.ssh/
vim config
写入以下内容:
HostName 121.41.211.120
User web
IdentityFile ~/.ssh/id_rsa
ServerAliveInterval 30
User web: web可随意起名,只是用于标识
其余的见名知意即可
登录121.41.211.120
的时候只需要ssh web
即可
端口转发
ssh -CfNg -L 3315:<目标机ip>:3306 web
参数 | 说明 |
---|---|
C | 压缩数据 |
f | 后台用户验证,这个选项很有用,没shell的不可登陆账号也能使用 |
N | 不执行脚本或命令 |
g | 允许远程主机连接转发端口 |
L | 本地转发 |
- web 表示跳板机,见上一步的配置
- 本机与目标机通过跳板机建立了一条隧道,通过命令: ps -ef | grep ssh 可以查看是否建立成功与否
- 简单点说:本机的3315端口就是目标机的3306端口。
有时候可能需要连数据库也需要连redis,这就需要做多个端口转发,为了避免敲多次命令,可以写个shell脚本:
port_forward.sh 放到~/下,每次到开终端,只需执行: ./port_forward.sh即可建立端口转发
#!/bin/bash
echo "port forwarding starting..."
ssh -CfNg -L 3315:rds2uq3qm7vrq2a.*.aliyuncs.com:3306 web
ssh -CfNg -L 6739:10.168.*.201:6739 web
ps -ef | grep ssh
shell中的 ps -ef | grep ssh是为了查看转发是否成功
转发成功
让该shell脚本变成可执行文件:chmod +x port_forward.sh
navicat配置
navicat自带端口转发功能
-
步骤一
常规配置
说明:
参数 | 说明 |
---|---|
Connection name | 自定义名称,标识此链接 |
Host Name | 数据库访问链接 |
port | 数据库访问端口 |
User Name | 数据库用户名 |
Password | 数据库密码 |
-
步骤二
ssh隧道
说明:
参数 | 说明 |
---|---|
Host Name | 跳板机ip |
port | 跳板机ssh端口 |
User Name | 跳板机访问用户名 |
Authentication Method | 认证方式 |
Private Key | 客户机私钥 |