RPort
Search…
⌃K
Links

Id is already in use

Solve connection errors caused by duplicated ids

What is the "id" and why must it be unique?

All clients are identified by an id. During the client installation, the id is written to the rport.conf file. This id can be any string. Operating system create a worldwide unique id for each system during the installation process.
The rport pairing script takes the id of the operating system and inserts it to the rport.conf file.
On Linux the id is taken from /etc/machine-id or a hash of all mac addresses is created, if the machine-id file is missing.
On Windows the computer system UUID is used. Get-CimInstance -Class Win32_ComputerSystemProduct).UUID
Re-using existing identifiers creates a consistent view of your inventory. But you can use other identifiers if you want.
Id of the rport client

What causes duplicate ids?

Duplicate ids are almost always caused by system cloning. Either you have cloned a system with the rport client already installed, or after cloning, you have not created a new machine-id.
You will get an error like the below in the rport.log.
client: Connection error: client id "1234abc" is already in use
☝️ The problem is largely limited to Linux because Windows identifies it has been cloned, and a new UUID is created automatically.

How to solve the issue?

😬 Quick and dirty

You can edit the rport.conf with an editor and insert a randomly created UUID. Restart the client and it will connect flawlessly.

🧡 Properly

Having systems with duplicate machine-ids on a local network is not a good idea. It can cause other issues. First reset the machine id of the operating system, reboot and copy the new id from /etc/machine-id and insert it into the rport.conf.
Starting with rport 0.6.0 the client can dynamically read the systemd id on start. That eliminates the need of copying /etc/machine-id to rport.conf. But it doesn't liberate you from the duty of creating unique machine ids on your network.