The Network
Every player is a host on a shared network — identity, discovery, firewalls, and the infrastructure that ties it all together
The Network
Welcome to the CLI-Games network. When you log in, you're provisioned a permanent IP address and choose your hostname. You'll also get access to networking commands that help you build your social graph. There is no "friend" button — you open your firewall and decide what to share. All registered players are reachable hosts on 10.10.0.0/16 and you interact through your terminal.
Guests are provisioned a temporary IP on the 192.168.0.0/24 subnet, scoped to a single browser tab. Until you authenticate, you can use a limited set of network commands — ifconfig, ip, ping, whois, and traceroute — and play non-rated games. For everything else, you'll need an account.
This page covers the foundation: who you are on the network, how you find others, and how you control who can reach you. Everything else — communication, friends, challenges, crews — builds on top of this.
Your Machine
When you sign up, you're assigned a permanent network identity. This is how the network fabric ensures players can find each other and verify one another's identity.
- Your IP address (10.10.x.y), hostname, and MAC address
ifconfigandip addrto inspect your interfaces
- Network config lives where you'd expect it:
/etc/hostname,/etc/hosts,/etc/resolv.conf
/etc/motd— the message visitors see when they SSH into your machine
- Your home directory with
.bashrc,.profile, aliases, and a customizable PS1
- A web server you can customize with HTML and open for all to see on port 80
Firewall & Privacy
The first thing you'll want to get straight is your security posture. By default, your firewall is permissive — you're discoverable and reachable on all ports. If you don't want strangers messaging you or dropping into live chat, lock those ports down:
ufw deny from any to any port 25
ufw deny from any to any port 517
Here are some more examples. For a full list, run man ufw:
ufw status— See your current rules and default policy
ufw allow/deny from <player> [to any port <n>]— Control access per-player and per-port
ufw default deny incoming— Go dark. Block everything unless explicitly allowed
ufw enable/disable/reset— Master switch and factory reset
Shorthand Commands
Some social commands are packaged firewall operations. The dual-write goes both ways — ufw allow creates a friendship, and accepting a friend request creates an allow rule:
| Command | Equivalent UFW Operation |
|---------|--------------------------|
| friend accept alice | ufw allow from alice |
| friend block alice | ufw deny from alice |
| friend remove alice | ufw delete allow from alice |
| incognito on | ufw default deny incoming |
| incognito off | ufw default allow incoming |
Note that friend add only sends a request — no firewall rule is created until the other player accepts. The ufw allow command skips the request and opens access immediately (and creates the friendship as a side effect).
Port Mapping
Each port maps to a social feature. Blocking a port disables that interaction for anyone not explicitly allowed:
| Port | Service | What It Controls |
|------|---------|-----------------|
| 8 | ICMP | Online status visibility (ping) |
| 22 | SSH | Terminal visits to your home directory |
| 25 | SMTP | Direct messages |
| 80 | HTTP | Your homepage (curl player:80) |
| 443 | HTTPS | Game challenges |
| 517 | Talk | Live 1:1 chat |
| 5900 | VNC | Remote viewing |
| 6667 | IRC | Chat room participation |
| 8080 | Alt-HTTP | Trading |
Omitting the port from a rule applies it to all services. netstat -tlnp or ss -tlnp will show what you're exposing. Firewall rules are enforced server-side — there's no way to bypass them from the client.
Incognito & Multiplayer
incognito on sets your default firewall policy to deny, which makes you invisible to pings, scans, and directory listings. But what happens when you join a live game or event with strangers?
Your IP is still your IP — it doesn't change and it won't be faked. During a live session, opponents can see you in the game. However, your username displays as anonymous on leaderboards, activity feeds, and event results. If an opponent grabs your IP and tries to ping or ssh it after the match, they'll get nothing back — the firewall is still up. The address is real, but it's a dead end.
Existing friends bypass incognito. If someone already has a ufw allow rule for you, they can still reach you normally.
Directory Permissions
Consider your home directory's permissions. Out of the box, the following directories are set to 700 (owner-only):
inbox/
archive/
sandbox/
This matters because when someone SSHs into your terminal, they can poke around your filesystem. Be careful who you let in, and make sure your permissions are what you want them to be.
Customization
Control what others see when they interact with your machine.
MOTD Banner
The MOTD is a plain text file at /etc/motd. Write whatever you want to it. When someone SSHs into your machine, they'll see it first thing.
cat /etc/motd— see the default banner
echo "Welcome to my machine." > /etc/motd— replace it
cat /etc/motd— see that it changed
Web Server
Edit ~/public/index.html to customize your homepage. curl localhost:80 to see it render. If you miss when the internet was nothing but plain HTML tags, this is for you.
Guest Book
This one doesn't come pre-configured, but you can create a world-writable file on your home directory, allowing anyone who visits to leave a note. Back it up to your archive often. Try:
echo "Welcome! Please sign the guestbook." > guestbook.txt
chmod 777 guestbook.txt
Discovery
How you find other players on the network:
ping <player|ip>— Check if a host is online. Respects firewall rules on port 8.
nmap <target|cidr>— Port scan a host or sweep a subnet. Supports-sVfor service versions and-pfor specific ports. CIDR scans return up to 256 results. Players with default deny appear as "Host seems down." Every scan leaves a footprint in the target's/var/log/auth.log.
arp -a— Your recent contacts cache. Successful pings and scans update it.
dig,nslookup,host— DNS resolution between hostnames and IPs. Reverse lookups work too.
whois <player>— Registration info: username, IP, signup date, founder number, crew tag, game ratings.
who/w— See who's currently online, their status, and what they're doing.
See Also
- Communication — talk, ssh, curl, and messaging
- IRC — Chat rooms, tiers, and reputation
- Friends & Challenges — Relationships and competitive play
- Profile, Reputation & Leaderboards — Identity and rankings
- Collectibles & Economy — Keys, trading, and crafting
- Crews — Guilds and crew leaderboards