SSH隧道之间的区别

时间:2014-11-25 10:50:50

标签: mysql bash ssh

我正在尝试配置一个SSH隧道,以便通过可以访问它的主机(remote_host)绕过远程数据库(remote_mysql_server)上的mysql调用,但我不知道它们之间有什么区别(注意冒号)在本地端口之前:

> ssh -f username@remote_host -L 3306:remote_mysql_server:3306 -N
> lsof -i :3306
COMMAND   PID    USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
ssh     16797 vagrant    4u  IPv6  31697      0t0  TCP localhost:mysql (LISTEN)
ssh     16797 vagrant    5u  IPv4  31698      0t0  TCP development:mysql (LISTEN)

> ssh -f username@remote_host -L :3306:remote_mysql_server:3306 -N
> lsof -i :3306
COMMAND   PID    USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
ssh     16805 vagrant    4u  IPv6  31697      0t0  TCP *:mysql (LISTEN)
ssh     16805 vagrant    5u  IPv4  31698      0t0  TCP *:mysql (LISTEN)

他们都可以帮我执行mysql -h 127.0.0.1 -u dbusername -pPasswordDB database

1 个答案:

答案 0 :(得分:1)

-L选项的格式为:

-L [bind_address:]port:host:hostport

bind_address:部分是可选的,如果缺少,则隧道仅绑定到localhost(可以使用ssh配置中的GatewayPorts选项更改默认行为)。但是,如果您指定它,它会绑定到您指定的内容或所有接口,如果您使用空bind_address*