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 | 客戶機私鑰 |