linux work arounds
- Network automation
- March 6, 2026
- 5 min read
- 1024 words
icon: material/remote-desktop
need updation
The command: ssh to the remote server has the following utilization:
ssh -D 8080 JohnSmith@10.20.30.40
Purpose:
This command sets up a dynamic SOCKS proxy over SSH from your local machine to the remote server (in this case, 10.20.30.40) using the JohnSmith user.
Breakdown:
ssh: The Secure Shell protocol, used to establish a secure connection to a remote machine.-D 8080: This option enables dynamic port forwarding. It specifies that local port8080on your machine will act as a SOCKS proxy. All traffic sent through port8080will be securely forwarded to the remote server10.20.30.40through the SSH tunnel.JohnSmith@10.20.30.40: The SSH login details, withJohnSmithbeing the username and10.20.30.40being the IP address of the remote server.
Usage:
- The command allows you to route your internet traffic through the remote server, which can be useful for:
- Browsing the web anonymously: You can configure your browser to use
localhost:8080as a SOCKS proxy. This hides your real IP address, as traffic will appear to originate from10.20.30.40. - Bypassing network restrictions: Since the traffic is encrypted and routed through the remote server, it can bypass local firewalls or restrictive networks.
- Accessing remote resources: If the remote server has access to resources you don’t, this proxy allows you to access them as if you were on that network.
- Browsing the web anonymously: You can configure your browser to use
Example:
To use the proxy with your browser, you would set the browser’s network settings to use a SOCKS5 proxy at localhost:8080.
Let me know if you’d like more details on any aspect of this!
To open a website on a remote Ubuntu VM (which is running GNOME and has Chrome installed) using your host’s browser, you can use X11 forwarding or VNC. However, if you want to interact with the VM’s browser (e.g., Chrome) through your local browser, a better approach is to use SSH port forwarding. Here’s how you can achieve that:
1. X11 Forwarding (Open Chrome on the Host from the Remote VM)
With X11 forwarding, you can run graphical applications like Chrome on the remote Ubuntu VM and display them on your local machine.
Steps:
Install X11 Packages (on your local machine):
- Make sure you have an X11 server running on your local machine.
- For Linux, X11 is usually installed by default.
- For Windows, you can use Xming or MobaXterm.
- For Mac, you can use XQuartz.
- Make sure you have an X11 server running on your local machine.
Enable X11 Forwarding on the Remote VM:
- Ensure that the SSH server on your remote Ubuntu VM has X11 forwarding enabled. You can check the
/etc/ssh/sshd_configfile:sudo nano /etc/ssh/sshd_config - Look for the line
X11Forwardingand make sure it is set toyes:X11Forwarding yes - Restart the SSH service on the remote VM:
sudo systemctl restart ssh
- Ensure that the SSH server on your remote Ubuntu VM has X11 forwarding enabled. You can check the
Connect with X11 Forwarding (from your local machine):
- Use the
-Xflag in your SSH command to enable X11 forwarding:ssh -X JohnSmith@10.20.30.40
- Use the
Run Chrome on the Remote VM:
- Once connected to the remote VM, you can launch Chrome:
google-chrome - The Chrome window will display on your local machine.
- Once connected to the remote VM, you can launch Chrome:
2. Access the VM’s Website from the Host’s Browser via SSH Port Forwarding #this one worked for me
If your goal is to open a website that’s hosted on the remote VM but access it through your local browser, SSH port forwarding is the easiest way.
Steps:
SSH Local Port Forwarding:
Forward the port of the website running on the remote VM to your local machine. For example, if the website is running on port
80(default HTTP port) on the VM, you can use:ssh -L 8080:localhost:80 JohnSmith@10.20.30.40This command forwards your local port
8080to the remote VM’s port80(where the web service is running).
Open the Website Locally:
- After running the SSH command, open your local browser and navigate to:
http://localhost:8080 - This will display the website that is hosted on the remote VM as if it were running locally.
- After running the SSH command, open your local browser and navigate to:
3. Using a VNC Session (Alternative Method)
You can set up a VNC session on the remote VM and view the entire desktop, including Chrome.
Install VNC server on the remote VM:
sudo apt install tightvncserverThen start a VNC session:
vncserver :1Connect with a VNC client on your local machine (like RealVNC, TightVNC). Forward the VNC port over SSH if necessary:
ssh -L 5901:localhost:5901 JohnSmith@10.20.30.40Access the VNC session on your local machine via
localhost:5901.
Which Method to Use?
- If you want to run the VM’s Chrome browser on your host: Use X11 forwarding.
- If you want to access a website hosted on the remote VM via your local browser: Use SSH port forwarding.
- If you want full control over the VM’s desktop: Use VNC.
Let me know if you’d like more guidance on any specific method!
To use the VM (10.2.3.4) as a jump host and SSH into the network device (172.20.20.21), you can use the -J (jump) option in SSH. This option allows you to connect to a remote machine through an intermediate (jump) host.
SSH Command:
ssh -J JohnSmith@10.2.3.4 networkuser@172.20.20.21
Breakdown:
-J JohnSmith@10.2.3.4: This specifies the VM as the jump host. Here, replaceJohnSmithwith your actual username for the VM.networkuser@172.20.20.21: This is the final destination, the network device you want to SSH into, using the appropriate user (networkuser).
This command creates an SSH connection to the VM (10.2.3.4), and from there, it forwards you to the network device (172.20.20.21).
Alternative Method (if the -J option is not supported):
You can achieve the same result using a combination of local port forwarding. First, SSH into the VM and set up a tunnel that forwards a local port to the network device.
Step 1: SSH to the VM and forward a port (e.g., 2222) from your local machine to the network device:
ssh -L 2222:172.20.20.21:22 JohnSmith@10.2.3.4
- This command forwards port
2222on your local machine to port22(SSH) on the network device (172.20.20.21) via the VM (10.2.3.4).
Step 2: SSH into the network device through the forwarded port:
ssh networkuser@localhost -p 2222
- This command uses the local port
2222, which is forwarded to the network device’s SSH port via the jump host VM.
Let me know if this works for you or if you need further help!