![port forward to putty ssh session port forward to putty ssh session](https://i.stack.imgur.com/ZW9ex.png)
From the perspective of any websites you visit, it will be as if you were sitting in front of your PC at home. No one monitoring the public Wi-Fi network will be able to monitor your browsing or censor the websites you can access. All traffic sent to that proxy will be sent over the SSH server connection. The SSH client will create a SOCKS proxy on your PC. If you have access to an SSH server at home, you could connect to it and use dynamic port forwarding. You want to browse securely without being snooped on. Related: Why Using a Public Wi-Fi Network Can Be Dangerous, Even When Accessing Encrypted Websitesįor example, let's say you're using a public Wi-Fi network. This is similar to local forwarding-it takes local traffic sent to a specific port on your PC and sends it over the SSH connection to a remote location. All the traffic sent through the proxy would be sent through the SSH server. The SSH client will create a SOCKS proxy you can configure applications to use. There's also "dynamic port forwarding", which works similarly to a proxy or VPN. Related: What's the Difference Between a VPN and a Proxy? The syntax is largely the same as with local forwarding:ĭynamic Port Forwarding: Use Your SSH Server as a Proxy To use remote forwarding, use the ssh command with the -R argument. This is effectively a way to tunnel through firewalls. Anyone with access to the SSH server will be able to access the web server running on your PC. When someone accesses the port 1234 on the SSH server, that traffic will automatically be "tunneled" over the SSH connection. Your SSH client will tell the server to forward a specific port-say, port 1234-on the SSH server to a specific address and port on your current PC or local network. But your PC is behind a firewall that doesn't allow incoming traffic to the server software.Īssuming you can access a remote SSH server, you can connect to that SSH server and use remote port forwarding. For example, let's say you're running a web server on the local PC you're sitting in front of. It allows you to make a resource on your local PC available on the SSH server. "Remote port forwarding" is the opposite of local forwarding, and isn't used as frequently. Remote Port Forwarding: Make Local Resources Accessible on a Remote System You can use any command line or graphical tool to access the database server as if it was running on your local PC. The SSH server sits in the middle, forwarding traffic back and forth. So, when you attempt to access the database server at port 1234 your current PC, "localhost", that traffic is automatically "tunneled" over the SSH connection and sent to the database server. To do this, you establish an SSH connection with the SSH server and tell the client to forward traffic from a specific port from your local PC-for example, port 1234-to the address of the database's server and its port on the office network. This is often the case, as it's easier to secure a single SSH server against attacks than to secure a variety of different network resources.
![port forward to putty ssh session port forward to putty ssh session](https://i.stack.imgur.com/zFkeW.png)
But if you have access to an SSH server at the office, and that SSH server allows connections from outside the office network, then you can connect to that SSH server from home and access the database server as if you were in the office.
![port forward to putty ssh session port forward to putty ssh session](https://ash.ms/wp-content/posts/port-forwarding.png)
For security reasons, that database server is only configured to accept connections from the local office network. For example, let's say you want to access a database server at your office from your home. "Local port forwarding" allows you to access local network resources that aren't exposed to the Internet. Local Port Forwarding: Make Remote Resources Accessible on Your Local System On Windows, which doesn't include a built-in ssh command, we recommend the free tool PuTTY to connect to SSH servers. You can do this with the ssh command included on Linux, macOS, and other UNIX-like operating systems, and you can create an ssh config file to save your settings. The traffic is sent over the encrypted SSH connection, so it can't be monitored or modified in transit. Each involves using an SSH server to redirect traffic from one network port to another. There are three different types of SSH tunneling, and they're all used for different purposes. But an SSH client also allows you to "tunnel" a port between your local system and a remote SSH server. Dynamic Port Forwarding: Use Your SSH Server as a ProxyĪn SSH client connects to a Secure Shell server, which allows you to run terminal commands as if you were sitting in front of another computer.Remote Port Forwarding: Make Local Resources Accessible on a Remote System.Local Port Forwarding: Make Remote Resources Accessible on Your Local System.