我正在尝试配置一个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
。
答案 0 :(得分:1)
-L
选项的格式为:
-L [bind_address:]port:host:hostport
bind_address:
部分是可选的,如果缺少,则隧道仅绑定到localhost(可以使用ssh配置中的GatewayPorts
选项更改默认行为)。但是,如果您指定它,它会绑定到您指定的内容或所有接口,如果您使用空bind_address
或*
。