I recently connected a Linux server in my lab directly to a Cisco Catalyst switch using a USB-to-RJ45 Cisco console cable. The goal was simple: manage the switch from the Linux command line without needing a separate laptop, USB serial adapter, or Windows terminal program.
This is a practical lab setup for anyone who works with older Cisco switches, home lab racks, or small network environments. Once the cable is connected, the Linux server can act as a permanent console workstation for the switch.
Lab Hardware and Software Used
For this lab, I used the following equipment:
Linux server
Linux distribution: LMDE 7 “Gigi”
Base: Debian 13 “Trixie”
Cisco switch
Model: Cisco Catalyst WS-C2960G-8TC-L
Console cable
Cable Matters USB-to-RJ45 Cisco console cable
FTDI-based USB serial chipset
Length: 6 feet
The specific cable used was sold as a Cable Matters USB-to-RJ45 Console Cable compatible with Cisco console cables / rollover cords, and purchased from Amazon: https://www.amazon.com/dp/B078PVJ5ZQ
This kind of cable is not an Ethernet cable. The RJ45 end plugs into the console port on the Cisco switch, not into a regular Ethernet switch port.
What the Cable Does
A Cisco console connection is a serial connection. Many Cisco switches use an RJ45-style console port, but electrically it is not Ethernet.
The USB-to-RJ45 console cable includes a USB-to-serial adapter in the cable assembly. In this lab, Linux detected the USB-to-serial chipset as an FTDI device. Once detected, the system created a serial console device that could be used to connect to the Cisco switch.
Physical Connection
The connection is straightforward:
Linux server USB port
|
| USB-to-RJ45 Cisco console cable
|
Cisco Catalyst console port
The RJ45 end must go into the console port on the Cisco switch. Do not plug it into a normal Ethernet data port.
Step 1: Confirm Linux Sees the USB Serial Adapter
After plugging in the USB side of the console cable, I checked whether Linux detected the USB serial chipset:
lsusb | grep -i -E 'ftdi|serial|cable|0403'
Example output:
Bus 005 Device 002: ID 0403:6001 Future Technology Devices International,
Ltd FT232 Serial (UART) IC
Then I checked the kernel log:
dmesg | grep -i -E 'ttyUSB|ftdi|usb serial' | tail -n 30
The important line was:
FTDI USB Serial Device converter now attached to ttyUSB0
That means Linux created a serial device at:
/dev/ttyUSB0
Linux also created a stable device path:
ls -l /dev/ttyUSB* /dev/serial/by-id/* 2>/dev/null
Example output:
/dev/serial/by-id/usb-FTDI_FT232R_USB_UART_AH6SK75M-if00-port0 -> ../../ttyUSB0
/dev/ttyUSB0
I prefer using the /dev/serial/by-id/ path because /dev/ttyUSB0 can change if additional USB serial devices are connected later.
Step 2: Install Serial Console Tools
On the Linux server, I installed screen and minicom:
sudo apt update
sudo apt install -y screen minicom
Either tool can be used. screen is quick and simple. minicom is more purpose-built for serial console work.
Step 3: Connect with screen
Most Cisco Catalyst console ports use 9600 baud.
To connect using screen:
screen /dev/serial/by-id/usb-FTDI_FT232R_USB_UART_AH6SK75M-if00-port0 9600
After the session opens, press Enter once or twice. The Cisco prompt should appear:
Switch>
To enter privileged EXEC mode:
enable
The prompt should change to:
Switch#
At that point, the Linux server is connected to the Cisco switch console.
Step 4: Disable Output Paging
Cisco IOS often pauses long output with --More--. For lab documentation and troubleshooting, I usually disable paging for the current session:
terminal length 0
This does not permanently change the switch. It only affects the current console session.
Step 5: Run Basic Discovery Commands
Useful commands for identifying and documenting the switch include:
show version
show inventory
show running-config
show startup-config
show ip interface brief
show interfaces status
show vlan brief
show logging
In this lab, the switch was identified as:
Model: Cisco Catalyst WS-C2960G-8TC-L
IOS image: c2960-lanbasek9-mz.122-55.SE5.bin
Processor: PowerPC405
Memory: 65536K bytes
Management interface: Vlan1
Management IP method: DHCP
The switch had a DHCP-assigned management IP address on VLAN 1.
Step 6: Save Configuration Changes
After changing Cisco IOS configuration, save the running configuration to startup configuration:
write memory
or:
copy running-config startup-config
If prompted for the destination filename, press Enter to accept the default.
Step 7: Disconnect Properly from screen
Do not just close the terminal window. To cleanly disconnect from screen:
Ctrl-A
K
y
That means:
Press
Ctrl-A.Press
K.Press
yto confirm.
This exits the screen session and releases the serial device.
Step 8: Connect with Minicom
Minicom is another good option for Cisco console access.
To connect:
minicom -D /dev/serial/by-id/usb-FTDI_FT232R_USB_UART_AH6SK75M-if00-port0 -b 9600
If the screen appears blank, press Enter once or twice.
To exit Minicom:
Ctrl-A
X
Then confirm that you want to leave Minicom.
Step 9: Log the Entire Cisco Console Session to a File
For documentation, I like logging the whole Cisco console session to a file. This creates a record of the commands run and the output returned by the switch.
Create a log directory:
mkdir -p /root/cisco-logs
Start screen with logging enabled:
screen -L -Logfile /root/cisco-logs/catalyst-2960-$(date +%Y%m%d-%H%M%S).log \
/dev/serial/by-id/usb-FTDI_FT232R_USB_UART_AH6SK75M-if00-port0 9600
Inside the Cisco session, run the commands you want to capture:
terminal length 0
show version
show inventory
show running-config
show interfaces status
show vlan brief
show ip interface brief
When finished, exit screen:
Ctrl-A
K
y
Then review the log file:
ls -lt /root/cisco-logs/
less /root/cisco-logs/catalyst-2960-*.log
This is one of the easiest ways to collect clean documentation from a Cisco switch in a lab.
Step 10: Disable Old Web Management If Needed
Older Cisco Catalyst switches may have the built-in HTTP or HTTPS management server enabled. If you browse to the switch management IP and get a username/password prompt, that may be the switch’s internal web interface.
For an older lab switch, I prefer disabling web management unless I specifically need it:
configure terminal
no ip http server
no ip http secure-server
end
write memory
Verify:
show running-config | include ip http
Expected output:
no ip http server
no ip http secure-server
For a lab switch, console access is often enough. If remote management is needed later, configure SSH, a local admin user, an enable secret, and management access restrictions.
Troubleshooting
If Linux does not show the serial device, check:
lsusb
dmesg | grep -i -E 'ttyUSB|ftdi|usb serial'
ls -l /dev/ttyUSB* /dev/serial/by-id/* 2>/dev/null
If another program is using the serial port:
fuser -v /dev/ttyUSB0
If the screen is blank:
Press Enter.
Confirm the RJ45 connector is plugged into the console port.
Confirm the baud rate is 9600.
Try minicom if screen behaves oddly.
If the characters are garbled, the serial settings are probably wrong. Most Cisco Catalyst console ports use:
9600 baud
8 data bits
No parity
1 stop bit
No flow control
Final Thoughts
Connecting a Linux server to a Cisco Catalyst switch with a USB-to-RJ45 console cable is a simple and useful lab setup. It lets the Linux server act as a dedicated console workstation for the switch. It also makes it easy to capture switch configuration, check port status, save logs, and perform recovery work without dragging out another machine.
For a home lab, small rack, or learning environment, this is a practical and inexpensive way to manage older Cisco gear from the Linux command line.
