SSH Tunnel: Difference between revisions
Jump to navigation
Jump to search
(Created page with "== Objective == Create an SSH tunnel on a local machine which redirects MySQL requests to another machine on the LAN. == Establish SSH Tunnel == <ref>[https://www.studytoni...") |
|||
| (6 intermediate revisions by the same user not shown) | |||
| Line 5: | Line 5: | ||
== Establish SSH Tunnel == | == Establish SSH Tunnel == | ||
<ref>[https://www.studytonight.com/post/how-to-setup-ssh-tunneling-in-mac-os-or-ubuntu How to Setup SSH Tunneling in Mac OS or Ubuntu]</ref> | Use `ssh` to create the tunnel that open up a socket listening to a port on the local machine and forward request to that local port to the port specified on the remote machine. <ref>[https://www.studytonight.com/post/how-to-setup-ssh-tunneling-in-mac-os-or-ubuntu How to Setup SSH Tunneling in Mac OS or Ubuntu]</ref> | ||
<pre> | |||
$ ssh -fN -L 8888:[REMOTE_SERVER]:3307 -p [NONSTANDARD_SSH_PORT] [USER]@[REMOTE_SERVER] | |||
</pre> | |||
* `-f` Run the ssh command in the background | |||
* `-N` Don't execute any commands on the remote machine. Just forward the port. | |||
* `-L` Binds the local port to the remote port. <ref>[https://explainshell.com/explain?cmd=ssh+-L+-N+-f+-l SSH options] - explainshell.com</ref> | |||
* `-p` Non standard SSH port number. This is for establishing the SSH connection with the remote host. It has nothing to do with the port forwarding. | |||
* 8888 is an arbitrary non-standard MySQL/MariaDB port to open on the local machine. Requests to this port are forwarded to the remote machine. | |||
* 3307 is the port on the remote machine to which requests will be forwarded, e.g. 3307, the standard MariaDB port. | |||
== Troubleshooting == | |||
=== View SSH tunnels === | |||
<pre> | |||
$ lsof -i tcp | grep ^ssh | |||
ssh 18250 damien 3u IPv4 0xf863dcf7cc3dd6d5 0t0 TCP 192.168.123.105:56935->ds920:21098 (ESTABLISHED) | |||
ssh 18250 damien 5u IPv6 0xf863dcf7ce5b1e1d 0t0 TCP localhost:ddi-tcp-1 (LISTEN) | |||
ssh 18250 damien 6u IPv4 0xf863dcf7c661454d 0t0 TCP localhost:ddi-tcp-1 (LISTEN) | |||
</pre> | |||
=== Destroy an SSH tunnel === | |||
Find the process id of the ssh tunnel. <ref>[https://stackoverflow.com/a/9532938 How do I close this SSH tunnel?] - StackOverflow</ref> | |||
<pre> | |||
$ ps aux | grep [LOCAL_PORT_NUMBER] | |||
</pre> | |||
Kill the process of the ssh tunnel. | |||
<pre> | |||
$ kill -9 [PID] | |||
</pre> | |||
== See Also == | == See Also == | ||
=== Reference === | === Reference === | ||
<references /> | <references /> | ||
Latest revision as of 18:53, 28 August 2021
Objective[edit]
Create an SSH tunnel on a local machine which redirects MySQL requests to another machine on the LAN.
Establish SSH Tunnel[edit]
Use ssh to create the tunnel that open up a socket listening to a port on the local machine and forward request to that local port to the port specified on the remote machine. [1]
$ ssh -fN -L 8888:[REMOTE_SERVER]:3307 -p [NONSTANDARD_SSH_PORT] [USER]@[REMOTE_SERVER]
-fRun the ssh command in the background-NDon't execute any commands on the remote machine. Just forward the port.-LBinds the local port to the remote port. [2]-pNon standard SSH port number. This is for establishing the SSH connection with the remote host. It has nothing to do with the port forwarding.- 8888 is an arbitrary non-standard MySQL/MariaDB port to open on the local machine. Requests to this port are forwarded to the remote machine.
- 3307 is the port on the remote machine to which requests will be forwarded, e.g. 3307, the standard MariaDB port.
Troubleshooting[edit]
View SSH tunnels[edit]
$ lsof -i tcp | grep ^ssh ssh 18250 damien 3u IPv4 0xf863dcf7cc3dd6d5 0t0 TCP 192.168.123.105:56935->ds920:21098 (ESTABLISHED) ssh 18250 damien 5u IPv6 0xf863dcf7ce5b1e1d 0t0 TCP localhost:ddi-tcp-1 (LISTEN) ssh 18250 damien 6u IPv4 0xf863dcf7c661454d 0t0 TCP localhost:ddi-tcp-1 (LISTEN)
Destroy an SSH tunnel[edit]
Find the process id of the ssh tunnel. [3]
$ ps aux | grep [LOCAL_PORT_NUMBER]
Kill the process of the ssh tunnel.
$ kill -9 [PID]
See Also[edit]
Reference[edit]
- ↑ How to Setup SSH Tunneling in Mac OS or Ubuntu
- ↑ SSH options - explainshell.com
- ↑ How do I close this SSH tunnel? - StackOverflow