Posted on October 9, 2020 - 3 minute read

How to Connect Two Computers using a Crossover Cable

Ever wondered how to connect two computers together without going through a local network (LAN)?

If your computers are on a network, you can share files and folders, but what happens if you don't have a router/switch/hub to make that LAN happen?

In this tutorial I will show you how to use a crossover cable to connect two computers and transfer data.

  1. Make and plug a crossover cable
  2. Set a static IP address on both computers
  3. User accounts and firewalls
  4. Enable SSH
  5. Use SFTP
DISCLAIMER: I've made this tutorial using linux.

Step Zero : Requirements

Step 1 : Make (and plug) a crossover cable

If you want to hone your cabling skills, you can make your own crossover cable for this tutorial. But if you don't want the trouble of making a cable, just buy a pre-made crossover ethernet cable.

Once you have your cable settled, connect it to the computers.

connected cables

Step 2 : Set a static IP address on both computers

Even if we had both computers connected to a LAN, we are not using the same network addresses. With the crossover cable we are creating a little peer-to-peer connection, and that is a completely different network. For this case, the best solution is to configure a static IP address for each computer (within that new network we're creating).

Check out the tutorial How to Set Static IP Address in Linux to see it in detail.

Make sure that both computers are on the same subnet (like 192.168.1.1 and 192.168.1.2) and use the same mask (like 255.255.255.248).

There are two possible configuration files in Linux systems (consider enp1s0 and eth0 as Ethernet interfaces):

/etc/sysconfig/network-scripts/ifccfg-enp1s0
config file /etc/sysconfig/network-scripts/ifccfg-enp1s0

/etc/network/interfaces
static ip pc2

With that ready you can do the first test: ping ip_address

Example:

ping 192.168.1.1

ping pc1 pc2 ping pc2 pc1

That confirms both sides are connected and seeing each other.

Step 3 : Security measures (firewalls and user accounts)

The computers see each other but they can't do anything yet. For that you have to open their conversation by allowing incoming SSH connections from one another.

UFW (Uncomplicated Firewall) is used for managing a Linux firewall.

Open ports on the firewall: using ufw we will open port TCP/22 for the other computer (PC1 to PC2, PC2 to PC1 or both).

To allow incoming SSH connections from a specific IP address named 192.168.1.2, enter:

sudo ufw allow from 192.168.1.2 to any port 22

To enable ufw:

sudo ufw enable

To check the status:

sudo ufw status

ufw status

If ufw was not enabled the output would be:

sudo ufw status
Status: inactive

Step 4 : Enable SSH

Secure Shell (SSH) is a cryptographic network protocol used for an encrypted connection between a client and a server.

You can enable the SSH server for one or both computers, but the SSH client creates a secure connection only to the machine that have the SSH server daemon (sshd) running.

Check out the tutorial How to setup and use SSH Server on Linux to see it in detail.

Step 5 : Use SFTP

For file transfer you can use FileZilla, that runs in server and client versions in different platforms (including Windows, Mac and Linux). Or, if you are using Linux or Mac, SFTP is a good choice.

SFTP (SSH File Transfer Protocol) is a secure file protocol that is used to access, manage, and transfer files over an encrypted SSH connection. SFTP works on a client-server model.

Check out the tutorial SFTP Basic Commands to see it in detail.

In this tutorial scenario, open a SFTP connection to the other computer: use the sftp command followed by the username and the IP address:

sftp demo@192.168.1.2

You will be prompted to enter the user password. Once connected, you will be presented with the sftp prompt, and you can start interacting with the remote server:

Connected to demo@192.168.1.2
sftp>

Use get to download files and put to upload.

sftp> get remote_file.txt
Fetching /home/demo/remote_file.txt to remote_file.txt
sftp> put local_file.txt
Uploading local_file.txt to /home/demo/local_file.txt

Conclusion

In this tutorial you learned how to use a crossover cable to connect two computers running Linux and transfer data using SFTP.