SSH Port Forwarding:Management
Appearance
SSH Port Forwarding Management
This document describes how to manage SSH port forwards.
Management Script Usage
The management script is available at /usr/local/bin/ssh-port-forward-manager.sh or via the alias ssh-forward.
List All Port Forwards
sudo ssh-port-forward-manager.sh list = or = sudo ssh-forward list
This displays all configured port forwards with their status (Active/Inactive).
Add a New Port Forward
sudo ssh-port-forward-manager.sh add <name> <external_port> <vpn_ip> [ssh_port]
Example:
= Add SSH forward for a Raspberry Pi at 10.8.0.3 on external port 22223 = sudo ssh-forward add raspberrypi 22223 10.8.0.3 22 = Add SSH forward for a server using non-standard SSH port = sudo ssh-forward add server 22224 10.8.0.4 2222
Parameters:
name: Unique name for the device
external_port: Port on VPS (must not be in use)
vpn_ip: Device's VPN IP address
ssh_port: SSH port on device (optional, defaults to 22)
Remove a Port Forward
sudo ssh-port-forward-manager.sh remove <name>
Example:
sudo ssh-forward remove raspberrypi
This removes the port forward from both the configuration file and iptables rules.
Apply All Port Forwards
sudo ssh-port-forward-manager.sh apply
This reads the configuration file and applies all port forwards. Useful after:
- Manual edits to the configuration file
- System reboot (automatically done by iptables-restore.sh)
- VPN restart
Save Current Rules
sudo ssh-port-forward-manager.sh save
Saves current iptables rules to /etc/iptables/rules.v4 for persistence.
Adding a New Device
Prerequisites
Device must be connected to OpenVPN VPN
* Device should have a .ovpn configuration file
* Device should be connected and have a VPN IP address
* Verify connection: ping <VPN_IP> from VPS
Device must have SSH enabled
* SSH service should be running on the device
* SSH should be accessible from the VPN network
Choose an external port
* Must not conflict with existing services
* Recommended range: 22222-22299 for SSH forwards
* Check availability: sudo ssh-forward list
Step-by-Step Guide
Verify device is on VPN:
# Check VPN connection cat /etc/openvpn/server/ipp.txt | grep <device_name> # Ping device ping -c 2 <VPN_IP>
Test direct SSH connection:
# From VPS, test SSH to device via VPN ssh -o ConnectTimeout=5 user@<VPN_IP>
Add the port forward:
sudo ssh-forward add <device_name> <external_port> <VPN_IP> [ssh_port]
Verify the forward:
# List all forwards sudo ssh-forward list # Test from external location ssh -p <external_port> user@<VPS_PUBLIC_IP>
Configure IONOS firewall (if applicable):
* Log in to IONOS Cloud Panel: https://dcd.ionos.com/
* Navigate to: Server & Cloud → Servers → [Your VPS] → Firewall
* Add rule: TCP port <external_port> → Allow
* Set appropriate priority
Example: Adding a Raspberry Pi
= 1. Verify Raspberry Pi is on VPN (assume it gets 10.8.0.3) = ping -c 2 10.8.0.3 = 2. Test direct SSH (using root for Cursor compatibility) = ssh root@10.8.0.3 = 3. Add port forward = sudo ssh-forward add raspberrypi 22223 10.8.0.3 22 = 4. Verify = sudo ssh-forward list = 5. Test from external location = ssh -p 22223 root@87.106.61.62
Related Documentation
- [[Documentation:Overview](Overview|- System architecture
- [Configuration]])(configuration.md) - Configuration file format
- [Best Practices](best-practices.md) - Security and best practices
- Troubleshooting - Troubleshooting guide