Hardware FixRecommendedDevice not working? Your driver may be the problemCheck updates for common hardware issues.Fix DriversOctober DealsAmazon USOctober deal check: compare before you payAmazon US: current deals, useful picks and tech finds.Check DealsClean PCRecommendedOne scan can reveal what keeps slowing WindowsLook for cleanup and repair opportunities.Run Scan×
Skip to content
World desk12 min

How to Run an Assetto Corsa Dedicated Server on Linux

A practical Debian/Ubuntu guide to hosting Assetto Corsa on Linux: SteamCMD installation, content copying, INI configuration, firewall and router forwarding, persistent service operation, security, updates, and troubleshooting.
Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

The reliable Linux setup is a persistent Debian or Ubuntu machine, a separate ac service account, SteamCMD with 32-bit libraries, and the Assetto Corsa dedicated-server depot (App ID 302550). Install it under /home/ac/server, copy the licensed cars and tracks your sessions need, edit cfg/server_cfg.ini and cfg/entry_list.ini, then open and forward the ports named in your configuration. The commonly shipped defaults are TCP and UDP 9600 plus TCP 8081, but your INI files are authoritative.

What you need before installing

Assetto Corsa’s stock dedicated server is a Windows-targeted Steam application that can run on a 64-bit Debian- or Ubuntu-based host with the required 32-bit compatibility libraries. A server that stays online needs a persistent machine, a stable private address on your home network or a VPS address, inbound port control, and enough storage for the server files and copied game content.

As an Amazon Associate I earn from qualifying purchases.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Host and operating-system choices

  • Home host: A wired Linux computer avoids Wi-Fi interruptions and gives you direct access to your router and files. You must be able to configure port forwarding, and your internet service must allow inbound connections. Carrier-grade NAT can prevent incoming players even when local firewall rules are correct.
  • VPS or dedicated machine: A data-center host usually provides a public address, continuous power, and better geographic placement for your drivers. Check the provider’s CPU and RAM headroom, monthly transfer limits, DDoS and abuse policy, backup options, and whether arbitrary TCP and UDP ports are permitted.
  • Distribution: Use a currently supported 64-bit Debian or Ubuntu release. Package names can change between releases, so confirm what your distribution’s apt repositories provide.

No authoritative performance study establishes a player count, latency target, or CPU/RAM minimum for every combination of cars, weather, AI, and plugins. Size the host for your planned grid and test under the same workload you will publish. Reserve at least 4 GB of free disk space; that is a setup prerequisite recommendation, not a measured performance requirement.

Accounts, access, and content

  • Use an administrative Linux account only for installing packages. Run the game server as an unprivileged account named ac.
  • Have a Steam account that can authenticate SteamCMD. Do not put that account’s password in a public script or paste it into a support forum.
  • Prepare a licensed PC installation of Assetto Corsa from which you can copy the cars and tracks required by your event. The dedicated-server depot does not include every community or licensed combination.
  • Plan a backup location for cfg/, content/, entry lists, and any AssettoServer data before making updates.

Install SteamCMD and the stock dedicated server

The following sequence creates a dedicated service account, installs the 32-bit libraries and SteamCMD, and downloads App ID 302550 into /home/ac/server. Run package and account commands as a sudo-capable administrator.

#1 Best Overall
Sale
TOZO A1 Wireless Earbuds Bluetooth 5.3 Light Weight in Ear Headphones | IPX5 Waterproof,2 Mics for AI Calls,Immersive Premium Sound Bass Headset with Charging Case,32 EQ via App Black
  • [Ultra-Lightweight Ear Buds Designed for Small Ears] Each earbud weighs only 3.7g and features a compact, ergonomic in-ear design made especially for small ears. Secure, low-profile, and comfortable for workouts, all-day wear or overnight sleeping.The ultra-slim profile sits flush in your ear with no hard edges poking or rubbing, so you can even sleep on your side without discomfort.
  • [Immersive Stereo Sound with TOZO OrigX Technology] TOZO OrigX tuning delivers clear vocals, balanced mids, and natural stereo sound for music, podcasts, and videos.
  • [Long Battery Life for Daily Use] Get up to 7 hours of playtime on a single charge, with up to 32 hours total using the charging case—ideal for workdays, commuting, and extended listening sessions.
  • [Bluetooth 5.3 & Stable Connection] Bluetooth 5.3 provides fast pairing, stable wireless performance, and reduced dropouts as you move around home or office.
  • [Deep Bass with Clear Vocals] High-performance drivers produce punchy bass while keeping vocals clean and detailed for everyday listening.
  1. Enable 32-bit packages and refresh repositories.
    sudo dpkg --add-architecture i386
    sudo apt update
  2. Install SteamCMD and the libraries the Windows-targeted depot expects.
    sudo apt install -y lib32gcc-s1 lib32stdc++6 steamcmd

    If your release presents a license prompt, accept it interactively or use the distribution’s documented noninteractive method. If steamcmd is not available in your enabled repositories, install it through the package source supported by that release rather than downloading an unverified binary.

  3. Create a service account with no password login.
    sudo adduser --disabled-password --gecos "" ac

    This account should own the server directory and run the process, but it should not have sudo rights.

  4. Download and validate the depot.
    sudo -u ac steamcmd +force_install_dir /home/ac/server +login YOUR_STEAM_ACCOUNT +app_update 302550 validate +quit

    Replace YOUR_STEAM_ACCOUNT with the account name. SteamCMD may request credentials or a Steam Guard code. Some Linux guides add +@sSteamCmdForcePlatformType windows before the login or depot commands because this is delivered as a Windows-targeted Steam application. Use that switch if the current SteamCMD package on your distribution requires it.

  5. Verify the expected files.
    sudo -u ac test -x /home/ac/server/acServer
    sudo -u ac test -d /home/ac/server/cfg
    ls -la /home/ac/server

    The checks should succeed and the directory should contain acServer and a cfg/ directory. If they do not, inspect SteamCMD’s final status line and rerun the update after correcting the install path or authentication problem.

Keep the server directory owned by ac. If you copied files as root, repair ownership before launching:

sudo chown -R ac:ac /home/ac/server

Copy cars and tracks without creating a content mismatch

The depot supplies the executable and basic server structure, not every vehicle and circuit a client may select. Copy the required directories from a licensed Assetto Corsa PC installation into the matching server paths:

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
/home/ac/server/content/cars
/home/ac/server/content/tracks

Copy only content you are licensed to use and distribute to the players who will connect. Keep client and server versions compatible: a track update, car data change, or mismatched layout can produce checksum errors, failed joins, or a session that loads for some drivers but not others. When diagnosing a mismatch, compare the folder name, version, and layout on both sides rather than replacing the whole content tree blindly.

After copying, ensure the service account can read every file:

sudo chown -R ac:ac /home/ac/server/content
sudo -u ac find /home/ac/server/content -type f ! -readable -print

The second command should print nothing. Keep a manifest or archive of the exact content set used for an event so that a later update does not silently change a working grid.

Rank #2
Sale
Smart Watch for Men Women Compatible with iPhone Samsung Android Phone 1.69 inch Full Touch Screen IP68 Waterproof Bluetooh Fitness Tracker Heart Rate/Sleep Monitor (Black)
  • 【IP68 Waterproof Multifunctinal Smart Watch】Torjalph fitness activity tracker smart watch is IP68 waterproof technology ,you can wear it when swimming,handwashing,it's rain-proof which means that you perform multiple exercise modes outside without worrying about sweat or rain corroding your fitness smart watch,and this watch equipped with a 230 mAh large capacity battery magnetic charging ,and this sports activity tracker watch can be used 5-7 days If fully charged.
  • 【Larger 1.83'' Full Screen Watch & Multi-dial Selection】1.83 inch full HD color touch screen smart watch for men / women provides excellent 240*284 resolution image quality ,This Bluetooth smart watch offers a better touch experience and remarkable immersion and ,more than 200 watch faces for you to choose from App"Da Fit ", you can change the dial style according to your mood to wear keeping the world on your wrist
  • 【Accurate Activity Tracker Smart Watch 】sports watch activity tracker uses sweat and dust resistant breathable silicone strap, our Fitness Tracker Smart Watch for Android iOS Phones supports 12 sports modes,walking,running,bicycle,swimming,badminton,basketball,football,rope skipping. This bluetooth calls smart watch for men women is lightweight and stylish, bringing more convenient and relaxing sports experience while also providing more protection.
  • 【Your 24 Hour Personal Daily Health Monitor】Fitness watch for women men full touch screen IP67 waterproof bluetooth smartwatch for Android iOS Phones with heart rate blood pressure monitor multifunction Andriod smart watch with steps counter sleep monitor sports fitness watch, monitoring blood oxygen saturation allows you to understand your physical condition in real time to track fitness progress ,to know your health status in time.
  • 【More Functions Bluetooth Call Smart Watch】This fitness activity smart watch full screen for iPhone and Android phones includes a bunch of new features including:The bluetooth smart watch can hang up the phone, receive and display WhatsAPP /Text /Facebook /Twitter /Messenger reminder.Support sedentary reminder, alarm clock, stopwatch, timer,weather information,music control, remote camera control compatible with Android 5.0 and above or iOS 9.0 and above smartphones.

Configure server_cfg.ini

Open the main configuration as the ac user (or edit it as an administrator and restore ownership afterward):

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
sudo -u ac nano /home/ac/server/cfg/server_cfg.ini

Use the existing file’s syntax and comments. These are the settings that normally require attention:

Setting group What it controls Operational notes
NAME Public server name Use a stable name that identifies the event, region, or test purpose.
CARS Car model(s) permitted in the session Every named model must exist under content/cars and be compatible with clients.
TRACK and layout Circuit and optional layout The track and layout directory names must match the installed content exactly.
MAX_CLIENTS Maximum connected players Set this deliberately; do not assume the host can handle an arbitrary grid.
Practice, qualifying, race, and session fields Session order and durations Check the units and the shipped examples before changing values.
PASSWORD Join password Use one for private tests and distribute it through a controlled channel.
ADMIN_PASSWORD Legacy administrative access Treat it as a secret. Never publish it with a public server announcement.
UDP_PORT, TCP_PORT, HTTP_PORT Game, control, and HTTP endpoints These values, not a generic port list, determine the firewall and router rules.
Lobby visibility and assist settings Whether the server is listed and which driving aids are allowed Confirm the resulting behavior from a client before opening a public session.

The common defaults are TCP and UDP 9600 and TCP 8081. They are only defaults: if your INI specifies different values, use those values everywhere else in the setup.

Set up entry_list.ini for fixed slots

cfg/entry_list.ini defines the individual grid slots. Use it when you need fixed cars, skins, driver names, GUIDs, ballast, restrictor values, or AI rows. A slot’s model and skin must be installed on the server and available to clients.

AssettoServer documentation supports AI patterns such as AI=auto and AI=fixed. If AI is allowed to fill unused places, set an explicit maximum player count so that the number of human places remains predictable. Test a mixed human/AI grid in a private session before advertising the server; a malformed row can prevent the list from loading.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
Rank #3
New Bee Guitar Cable 10ft Electric Instrument Bass AMP Cord
  • [Low Noise High Fidelity] New bee guitar cord with 22AWG oxygen-free-copper center conductors provides enhanced signal transfer, the PVC insulation material and the high-density stranded copper double shield provide noise rejection for quiet operation
  • [Ideal for Choice] New bee 1/4 straight and right angle metal connectors, ensures a secure connection in any instrument, pedal, or amp jack. L shape great fro on stage guitar stands
  • [Wide Compatible] Suitable for mixer, power amplifier, microphone, effector, decoder, equalizer, electoronic organ, electric guitar, electric bass and other electronic equipments. Widely used in the installation of smart home, karaoke speaker, professional stage audio, etc
  • [Easy Disassemble] Making incidental repairs quick and easy! Very nice, flexible cable
  • [Dont Hesite to Order] 24 hours customer services and professional technology team are standing by

Open the Linux firewall and forward the router ports

There are two separate network controls: the host firewall and the internet-facing router. Both must permit the same configured ports, and the router must send them to the Linux machine’s private address.

UFW example for the default ports

sudo ufw allow 9600/tcp
sudo ufw allow 9600/udp
sudo ufw allow 8081/tcp
sudo ufw status

If you changed UDP_PORT, TCP_PORT, or HTTP_PORT, substitute those numbers in the rules. Do not open unused ranges “just in case.” Keep SSH restricted to the addresses or VPN path you actually use, and do not expose administrative web or shell services to the whole internet without an access policy.

Router checklist

  1. Give the server a DHCP reservation or static private address so forwarding does not break after a reboot.
  2. Create a port-forward rule for UDP 9600 to the server’s address, if that is the configured UDP port.
  3. Create a separate TCP rule for 9600 and a TCP rule for 8081, if those are the configured TCP and HTTP ports.
  4. Save the rules and restart the router’s forwarding service if it requires that step.
  5. Test from a different network, such as a phone hotspot. A test from inside the same LAN may be affected by the router’s lack of NAT loopback and is not proof that internet players can connect.

If your provider uses carrier-grade NAT, the router may show a private WAN address and cannot receive unsolicited traffic. In that case, request a public address, use a host with inbound port control, or choose a networking design that provides a reachable endpoint; changing UFW rules alone will not solve it.

Launch the server and observe the first start

Start in the server root so relative paths resolve correctly:

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
cd /home/ac/server
./acServer

Run this in the foreground for the first launch. Watch for configuration parse errors, missing cars or tracks, permission failures, and bind errors. Do not daemonize a broken configuration: the console output is the fastest way to identify the first failing file or port.

Rank #4
BSIMB 15.6" Digital Family Calendar & Chore Chart, No Subscription Fees
  • Digital Family Calendar: BSIMB digital calendar wall touch screen puts an end to your chaotic life. Designed for busy families, the digital calendar keeps you organised and in step with your family. Assign different colours and tasks to each family member to make family scheduling easier and more intuitive.
  • Easy Setup and Auto-Sync: Plug in, connect to WLAN and auto-syn your electric calendar in minutes. Digital wall calendar compatible with Google calendar, iCloud calendar, Outlook calendar, Cozi calendar and Yahoo calendar. Add events directly on the device or through the ecalendar app. Electronic calendar stays current whether you're at work or traveling—no manual updates needed.
  • All-In-One Home Assistant: Smart calendar builds habits and encourage independence with personalised chores. Display daily meal plan to reduce the daily ‘What's for dinner?’ stress. To-do lists keep track of everything you want. Turning chores into valuable achievements with stars and rewards, making life easier and more enjoyable.
  • Manage Anytime Anywhere: BSIMB electronic calendar for family stay connected with the powerful ecalendar app. Access and manage your digital wall calendar anytime, anywhere with free features like stars & rewards, photo screensaver, chore charts, meals plans, to-do lists etc. Electronic planner paid features like Magic Import tailor advanced tools for users with special needs.
  • Stay in Touch with Loved Ones: Share photos or videos from your phone to electronic wall calendar with app, instantly update your life moment, and keep in touch with your family, especially those who are far away; you can also surprise your smart calendar digital wall by sending him a wish card; it's also great for keeping tech-illiterate elders in touch with the youngsters.

From another terminal, confirm that the process belongs to the service account and that the configured ports are listening:

ps -u ac -f
ss -lntup | grep -E ':(9600|8081)b'

Replace the numbers in the diagnostic command if your INI uses different ports. A listening socket proves only that the process bound locally; it does not prove router forwarding or external reachability.

Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Support on Ko-Fi

Keep it running after logout

Terminal multiplexer for a small private server

A multiplexer is useful while learning the logs: start a session as ac, launch ./acServer, detach, and reattach when you need to inspect output. It is not a substitute for restart policy, boot-time startup, or log rotation on a public service.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

systemd as a persistent supervisor

A service supervisor can start the process at boot and restart it after a crash. The basic unit below is an example to adapt, not a tested universal unit; verify your distribution’s systemd behavior, permissions, shutdown time, and update procedure before relying on it for an event.

[Unit]
Description=Assetto Corsa dedicated server
After=network-online.target
Wants=network-online.target

[Service]
Type=simple
User=ac
WorkingDirectory=/home/ac/server
ExecStart=/home/ac/server/acServer
Restart=on-failure
RestartSec=5

[Install]
WantedBy=multi-user.target

Save it as /etc/systemd/system/assetto-corsa.service, then validate and enable it:

sudo systemctl daemon-reload
sudo systemctl enable --now assetto-corsa.service
sudo systemctl status assetto-corsa.service
sudo journalctl -u assetto-corsa.service -f

Before a public launch, test systemctl stop, start, and restart, confirm that the process exits cleanly, and decide how logs are retained. Stop the service before replacing binaries or content, and start it again only after ownership and configuration checks succeed.

Stock acServer or AssettoServer?

The stock binary is the shortest route when you need compatibility with original INI files and Content Manager presets. AssettoServer is a separate Linux x64 implementation with an extra_cfg.yml file and additional administration and gameplay features. Check its current release documentation before migrating because supported settings and versions can change.

What’s actually slowing this PC down?

Pick the symptom - the matching free tool is one click away.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
Decision factor Stock acServer AssettoServer
Linux availability Windows-targeted Steam depot run with the required compatibility libraries Native Linux x64 build
Existing configuration Directly matches the original server_cfg.ini and entry_list.ini model Uses its own implementation and adds extra_cfg.yml; migration needs a settings review
Content Manager presets Most straightforward compatibility path Check each preset and setting during migration
Administration Basic stock controls Documented commands include /admin, /kick, /ban, /next_session, and /settime
AI, weather, and plugins Use the capabilities of the stock version and installed extensions Offers additional features, but verify support for every plugin and version
Update surface Steam depot updates and the original server behavior Separate release cadence and compatibility decisions
Best fit First installation, existing presets, or maximum stock compatibility Operators who need native Linux and the documented extended administration/features

Do not replace a working stock installation in place. Make a separate directory, copy the configuration and content selectively, test one session, and keep a rollback copy until clients and administrators have confirmed behavior.

Security and identity considerations

Use file permissions to protect credentials and administrative controls:

sudo chmod 640 /home/ac/server/cfg/server_cfg.ini
sudo chown ac:ac /home/ac/server/cfg/server_cfg.ini

If another local group needs read access, create a dedicated group rather than making the file world-readable. Never publish ADMIN_PASSWORD, Steam IDs, private join passwords, or an unredacted log containing them.

“The default server implementation of Assetto Corsa does not use the Steam API to determine whether a connected player is actually the account they claim to be.” — AssettoServer documentation, Introduction.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

This is an identity-verification limitation to account for when opening a public server. Review any admin whitelist or authentication option you use, and treat player identifiers and moderation records as sensitive. The statement does not mean that every configuration is automatically insecure; it means you should not assume a claimed identity has been independently verified by the stock server.

Updates, backups, and controlled changes

  • Back up before updates: Stop the service, archive cfg/, content/, and any custom scripts, then record the installed depot version and content list.
  • Update deliberately: Run SteamCMD’s app_update 302550 validate as ac, inspect changed files, and start a test session before reopening the public port.
  • Preserve a rollback: Keep the previous executable and configuration in a separate backup location. Do not overwrite the only known-good copy.
  • Synchronize clients: Tell drivers exactly which car, track, layout, and version to install. A server update without a matching client set creates avoidable join failures.
  • Schedule restarts: Announce maintenance, stop cleanly, apply one change at a time, and verify logs and external connectivity after restarting.

Troubleshooting by symptom

SteamCMD completes but acServer is missing

  • Check that +force_install_dir points to /home/ac/server and that you inspected the final SteamCMD status.
  • Run the command as ac so the downloaded files are owned by the service account.
  • Retry with validate; if the package treats the depot as Windows-targeted, add +@sSteamCmdForcePlatformType windows before login or update commands.

The process exits immediately

  • Run ./acServer in the foreground from /home/ac/server and read the first error, rather than the final cascade of messages.
  • Check INI spelling, section syntax, file ownership, and that every configured car, track, and layout exists.
  • Use journalctl -u assetto-corsa.service if systemd starts it, and temporarily disable the unit while testing interactively.

Players cannot see or join the server

  • Compare UDP_PORT, TCP_PORT, and HTTP_PORT in server_cfg.ini with UFW rules and router forwards. Remember that TCP and UDP are separate rules.
  • Confirm the router forwards to the server’s current private address and that the host is not behind carrier-grade NAT.
  • Test from an external network and inspect ss -lntup locally. A local listener with no external reachability points to the firewall, router, or provider path.

Clients report missing content or checksum errors

  • Compare exact car and track folder names, layouts, and versions on server and client.
  • Check that copied files are readable by ac and that an update did not replace a custom version.
  • Remove the affected item from the event configuration only as a diagnostic; restore it after installing a matching, licensed copy.

AI occupies more places than expected

Review entry_list.ini for AI=auto or AI=fixed rows and set an explicit maximum human player count when AI fills spare slots. Test the exact grid before publishing the join details.

A repeatable launch checklist

  1. Confirm the host has at least 4 GB free disk space, a stable address, and supported Debian or Ubuntu packages.
  2. Verify lib32gcc-s1, lib32stdc++6, and SteamCMD are installed.
  3. Run App ID 302550 update/validation as ac and confirm acServer plus cfg/.
  4. Copy licensed cars and tracks, repair ownership, and check client/server version compatibility.
  5. Set identity, sessions, passwords, ports, visibility, and assists in server_cfg.ini.
  6. Define fixed slots, skins, GUIDs, ballast, restrictors, and any AI rows in entry_list.ini.
  7. Match UFW rules and router forwards to the actual INI ports; test from outside the LAN.
  8. Launch in the foreground once, then move to a validated supervisor and test stop/start behavior.
  9. Back up configuration and content before each update, and keep an explicit rollback copy.

Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.

Leave a Reply

Your email address will not be published. Required fields are marked *

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

More from the Wire

  1. World desk4 min
    How to Spot an AI Voice Scam Before Sending MoneyDon’t rely on how a caller sounds. Pause, call back through a known number, and verify the emergency with another trusted person before sending money.
  2. Mountain View desk4 min
    Google’s SynthID Detector: How to Check AI-Generated Images, Video and AudioGoogle’s SynthID Detector looks for an embedded watermark in supported images, video and audio. Here is what its results do—and do not—show.
  3. Redmond desk20 min
    How to create a link to File or Folder in Windows 11Windows 11 gives you several ways to point to a file or folder without moving or duplicating it. You can create a desktop shortcut,…
Recommended PC Tool
Recommended PC Tool
PC Slower Than It Used to Be?Free scan - under a minute
Outdated Drivers Are Slowing You DownFree scan - exact matches

Two free Windows tools

One Free Minute Could Fix That PC

Before you go - each of these free tools takes about a minute and tackles what quietly slows a Windows PC down.

Special offer. View Outbyte info, uninstall instructions, EULA, and Privacy Policy.