Halloween DealsAmazon USHalloween week deals: useful picks before month-endAmazon US: current deals, useful picks and tech finds.Check DealsWindows FixRecommendedWindows errors stealing your time? Find the fix fastScan stability, cleanup and performance issues.Fix NowHalloween DealsAmazon USOctober picks are moving - compare before checkoutAmazon US: current deals, useful picks and tech finds.See Picks×
Skip to content
VGSources
Blog

How to Set Up a Firewall with firewalld on a Linux VPS

Learn how to install and configure firewalld on a Linux VPS, identify the correct zone, preserve SSH, open only required services, persist rules, and troubleshoot unreachable or disappearing firewall rules.
Length10 min Posted Quest giverVGSources Team
Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Set up firewalld on a Linux VPS by identifying the zone attached to your network interface, allowing SSH before tightening inbound access, adding only the services or ports your server needs, and saving the working configuration permanently. Firewalld separates its live runtime rules from its saved permanent rules, so you must deliberately persist changes and then verify them from both inside and outside the VPS.

What firewalld does on a VPS

firewalld is a dynamically managed firewall. It organizes rules into zones, each representing a level of trust for a network connection, interface, or source address. A zone can allow predefined services such as SSH, HTTP, and HTTPS, individual port-and-protocol combinations, rich rules, or a mixture of these.

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.

The firewall that is actually enforcing traffic is the runtime configuration. It is applied in the kernel immediately. The permanent configuration is the saved policy loaded when firewalld starts. At service start, the permanent configuration becomes the runtime configuration. A command that changes only the permanent configuration does not open or close traffic until you reload or restart firewalld.

That distinction explains two common surprises: a rule can appear to work until a reboot because it was runtime-only, and a permanent rule can appear ineffective because it has not been reloaded. Firewalld reloads preserve existing connections, but you should still keep an active administrative session and an out-of-band recovery method while changing a remote firewall.

#1 Best Overall
Sale
Gaoye Blue Light Blocking Glasses
  • BLUE LIGHT BLOCKING GLASSES: Our blue light glasses for women boast UV400 protection, blocking harmful blue rays from computer screens. With these bluelight glasses women, you can enjoy gaming, reading, or watching TV with no worries of eye strain.
  • EYE RELIEF: Our blue light glasses are engineered to reduce blurry vision or strain caused by prolonged screen time. These womens blue light glasses aid in better sleep by preventing blue light from disrupting your natural sleep cycle, helping you fall asleep faster and enjoy a more restful night's sleep, making them the perfect christmas present.
  • COMFORTABLE: Crafted from durable material, our trendy blue light glasses for woman or blue light glasses men ensure long-lasting comfort. The high-transmittance lenses accessories, gamer gifts for men, help keep your eyes relaxed. Perfect stocking stuffers, gifts for gamers men, christmas gifts for men, halloween costumes.
  • LIGHTWEIGHT: These clear blue light glasses feature a lightweight frame, meaning they’ll stay comfy for long-term wear. Perfect as blue blockers glasses for women or mens blue light glasses, these non-prescription fake glasses for men can be worn throughout the day. The blue light blocking glasses women feature polycarbonate HD lenses, which are anti-reflective and restore true color.
  • WORRY-FREE PURCHASE: If you experience any issues, our support team is ready to assist you quickly. These are the perfect costume glasses for cosplay dressing up.

Before you change a remote firewall

Firewall changes on a VPS can disconnect you permanently if SSH is blocked and the provider offers no console access. Complete these checks first:

  • Confirm the VPS distribution and release so you use the correct package manager.
  • Keep your current SSH session open while applying and testing changes.
  • Open a second SSH session if possible; it provides an immediate test without sacrificing the first session.
  • Locate the provider’s web console, serial console, rescue mode, or other out-of-band access before adopting a restrictive policy.
  • Record the current SSH port. It may be the standard port or a custom TCP port.
  • List the services the VPS must expose. A web server commonly needs HTTP and HTTPS; a database or game server may need a specific application port instead.

Do not assume that the zone named public owns your interface. Provider images and distributions can choose different defaults.

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

Install and start firewalld

Package names and defaults vary by distribution. Use the command family for your VPS and check the service state after installation.

Debian or Ubuntu

sudo apt update
sudo apt install firewalld
sudo systemctl enable --now firewalld

RHEL-compatible distributions

sudo dnf install firewalld
sudo systemctl enable --now firewalld

openSUSE and other zypper-based systems

sudo zypper install firewalld
sudo systemctl enable --now firewalld

Some images already include and enable firewalld. In that case, systemctl enable --now firewalld is idempotent. Always verify the daemon rather than assuming installation succeeded:

sudo firewall-cmd --state
sudo systemctl status firewalld --no-pager

The first command should report running. If it does not, inspect the service status and journal before editing rules:

sudo journalctl -u firewalld -b --no-pager

Find the active zone and VPS interface

Firewalld applies a zone according to an interface or source assignment. Discover that assignment before adding rules.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
sudo firewall-cmd --get-active-zones
sudo firewall-cmd --get-default-zone
sudo firewall-cmd --get-zone-of-interface=eth0
sudo firewall-cmd --list-all

Replace eth0 with the actual interface name shown by your operating system. If you need to identify interfaces first, use your distribution’s normal network inspection tools, then pass the correct name to --get-zone-of-interface.

--get-active-zones reports zones currently bound to interfaces or sources. --get-default-zone shows the fallback zone for connections without another assignment. --list-all without a zone displays the default zone’s settings; to inspect a particular zone, specify it explicitly:

Rank #2
Windex Gaming Cleaning Wipes, Pre-Moistened Wipes to Instantly Clean all Gaming Gear and Electronics, Resealable Packaging for a Freshness Lock, 25 count (Pack of 1)
  • WINDEX GAMING WIPES: effortlessly clean all your gaming gear and gaming electronics in one easy step with our new Windex Gaming Wipes
  • AMMONIA FREE: our ammonia-free formula is safe to use on all of your favorite gaming equipment like consoles, headsets, controllers, screens, keyboards, and more
  • PRE-MOISTENED WIPES: each wipe instantly removes dust, dirt, and stubborn smudges and fingerprints leaving a streak-free shine
  • ANTI-STATIC: great for cleaning and wiping down your gaming gear and electronics leaving behind no visible residue
  • COMPACT RESEALABLE PACKAGE: store your pack of Windex Gaming Wipes anywhere in your home for whenever a quick and easy wipedown is needed
sudo firewall-cmd --zone=public --list-all

Use the zone that actually owns the VPS interface in every subsequent command. The examples below use public only as a placeholder for that discovered zone.

Choose what the VPS should expose

Start with an allow-list. Inbound traffic not covered by an allowed service, port, or rule is controlled by the zone’s target and policy. Remove services you do not need rather than opening broad port ranges.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
Requirement Recommended firewalld form Why
Standard SSH Predefined ssh service Readable and tied to firewalld’s service definition.
Web traffic Predefined http and https services Expresses the intent without memorizing port numbers.
One custom listener, such as 8080/tcp Explicit port and protocol Precise and easy to audit.
Source restrictions, logging, or compound conditions Rich rule More expressive, but syntax must be validated carefully.
Different trust levels for interfaces or sources Separate zones Creates clear policy boundaries, provided assignments are correct.

A predefined service is a named collection maintained in firewalld’s service definitions. An explicit port rule is simply a port and transport protocol, such as 8080/tcp. Use the latter when no suitable service exists or when you need a narrowly defined listener.

Allow SSH before tightening inbound access

If you administer the VPS over SSH, make that access work in the active zone before removing anything else. For a server using the standard SSH service:

sudo firewall-cmd --zone=public --add-service=ssh
sudo firewall-cmd --permanent --zone=public --add-service=ssh

For SSH on a custom port, allow the actual TCP port instead. The following example uses port 2222; replace it with your configured port and with the zone found during inspection:

sudo firewall-cmd --zone=public --add-port=2222/tcp
sudo firewall-cmd --permanent --zone=public --add-port=2222/tcp

The first command changes the live firewall. The second records the same allowance for future starts. Keep the existing session open, establish a second session, and test the port before proceeding. If you use an SSH service definition that has been customized to a nonstandard port, verify what that definition contains rather than assuming it covers your listener.

Free tools Windows power users keep installed

One-click scans. No signup required.

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

Allow HTTP, HTTPS, and application ports

Web server services

For a web server, use the predefined service names:

sudo firewall-cmd --zone=public --add-service=http
sudo firewall-cmd --zone=public --add-service=https
sudo firewall-cmd --permanent --zone=public --add-service=http
sudo firewall-cmd --permanent --zone=public --add-service=https

These commands permit the protocols represented by firewalld’s HTTP and HTTPS service definitions. They do not start a web server; the application must be installed, running, and listening on the expected sockets.

Rank #3
Sale
LISEN Cell Phone Stand Phone Holder for Desk, Office Decor Gadgets for Men
  • Ergonomic & Adjustable Design: Fight "text neck" and improve your posture. Designed for comfort, it offers an adjustable height (7.1in-8.5in) (1.4in adjustable range) and angle (5°-85°) Please note: cell phone stand is only 9 inches tall—the length of a standard pencil
  • Without blocking subtitles Perfect for office desk Tiktok Face Time Zoom video—this is the ultimate kitchen desk essential for phones! Perfect viewing experience while reducing neck back strain, A must-have for gamers streamers desk, and anyone who values both style and support!
  • Sleek & Stable Design fits Otterbox Case: Say goodbye to bent cables, tangles, and tip-overs! LISEN’s stylish adjustable desk phone holder features a built-in charging hole and smart cable management, keeping your phone secure and your workspace clutter-free cool gadgets for men
  • ANTI-SLIP DESIGN free hands: The under 10.00 items easy gadgets back and the bottom of this kitchen essentials for women are fully covered by anti-skid silicone, which LISEN stand up desk decor can provide maximum protection device from any scratches and slides
  • Your Perfect Viewing Companion:If your product arrives damaged or breaks within 365 days, reach out to LISEN for a quick and hassle-free solution. Struggling with assembly, like tightening the screw? We’ve got your back! Your experience matters to us. (Product including: phone Holder stand*1, screw*1, hexagon screwdriver*1, specification*1)

One custom TCP or UDP listener

When the application has no appropriate predefined service, specify its exact port and protocol. This example opens TCP port 8080:

sudo firewall-cmd --zone=public --add-port=8080/tcp
sudo firewall-cmd --permanent --zone=public --add-port=8080/tcp

Use udp when the application genuinely uses UDP. TCP and UDP are separate rules; opening one does not open the other. Avoid broad ranges unless the application documentation requires them, because every extra exposed port increases the policy you must maintain and troubleshoot.

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

Several ports or richer metadata

If an application needs several related ports, a custom firewalld service definition can be clearer than a long, opaque command sequence. A service definition can describe the application and its ports in one named object. Use a rich rule when you need source-address limits, logging, or other conditions that a simple service or port rule cannot express. Validate rich-rule syntax before relying on it in production.

Runtime versus permanent rules

Every change should have an intentional lifecycle. Runtime rules are effective immediately but disappear when firewalld restarts unless they are copied into the permanent configuration. Permanent rules are saved but inert until a reload or restart activates them.

Apply and save each rule

The clearest approach for a small change is to issue one runtime command and one permanent command, as shown in the SSH and web examples. This lets you test the live result immediately while ensuring it will return after a reboot.

Build in runtime, then save the tested state

For a larger change, build and test the policy in runtime first. Once access and services work, copy the complete runtime configuration to permanent storage and reload:

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
sudo firewall-cmd --runtime-to-permanent
sudo firewall-cmd --reload

This avoids accidentally omitting one of several commands. Review the runtime policy before copying it so temporary experiments do not become part of the boot configuration.

Write permanent rules first

You can also add rules with --permanent while preparing a change, then activate all saved rules together:

Rank #4
Ledagic IC+RGBW USB Powered Led Light Bar with App & Remote Control, 2 Pack
  • Easy Installation: Our gaming lights have been designed to enhance your entertainment experience. Simply position the led light bar next to your TV or game console to create a game room environment with ease. They come with USB power and a 60 inch cord for direct mounting and mobility
  • Audio Syncing & Extensive Mode: The built-in high-sensitivity music sensor allows you to sync the TV led lights to your favorite music. Lights react and move to the beat of music, film and game audio, creating an incredible immersive sound and light experience – and all without the need for an additional hub. You can choose from 64+ patterns, including strobe, illusion, jump, energy, gradient, running, chasing, fluttering mode etc. Each mode can be applied to different scenes
  • 64+ Chasing IC+RGB & W Effect: The independent control design of IC+RGB and white all-in-one multifunctional rgbw led bar lights monitor backlight allows you to easily switch the led lights for desk between IC+RGB and white to enjoy a variety of lighting effects, you can choose white lighting mode with high brightness for better illumination when working, etc. Choose IC+RGB lighting mode when you need to create an entertaining atmosphere for the light show, 16 million colours of Color changing rgb light bar let you dance to the beat and create a dynamic party atmosphere
  • Dynamic and Dimmable Lights: 1%-full brightness free brightness adjustment gives you the flexibility to adjust dimmable led light bar for room decorations or a variety of occasions
  • USB Powered: USB light bars for room can be powered by powernank, usb charger, TV, Monitor, laptop PC mainframe, making behind TV led lighting bar easy to install in any location.TV led lights are powered by the TV usb interface / PC mainframe, can be turned on/off synchronously with TV / PC
sudo firewall-cmd --reload

A reload replaces the runtime configuration with the saved permanent configuration. Firewalld’s concepts documentation notes that existing connections are maintained during a reload, but new connections are evaluated against the newly active policy. Keep an administrative session available in case the resulting policy is not what you intended.

Verify the configuration before leaving the VPS

Inspect the exact zone that owns the interface, not just the default zone:

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
sudo firewall-cmd --zone=public --list-all
sudo firewall-cmd --get-active-zones
sudo firewall-cmd --zone=public --query-service=ssh
sudo firewall-cmd --zone=public --query-service=http
sudo firewall-cmd --zone=public --query-service=https
sudo firewall-cmd --zone=public --list-ports

A query command returns whether the requested service is enabled. The port listing shows explicit port rules; predefined services appear in the services portion of --list-all, not necessarily in the port list.

Check both configurations when diagnosing persistence. Add --permanent to inspection commands when you need to see the saved policy:

sudo firewall-cmd --permanent --zone=public --list-all

Then confirm the application is listening locally. For example:

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.
sudo ss -lntup

Look for the expected address, port, and protocol. A firewall allowance cannot make an application listen, and a process bound only to loopback will not accept connections arriving through the VPS’s public interface.

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

Test from outside the VPS

Use a separate machine or network to test the intended service. An HTTPS client can request the public URL for a web service; a TCP connectivity check can test a custom listener. Testing externally matters because local checks can bypass routing, address-family, or upstream filtering issues.

Interpret an external failure in layers:

  1. Confirm the process is listening on the VPS with ss or the application’s own status command.
  2. Confirm the firewalld rule is in the zone attached to the public interface.
  3. Confirm the rule uses the correct protocol. A TCP rule does not permit UDP.
  4. Check whether the application is intended to accept IPv4, IPv6, or both. A successful test over one address family does not prove the other is reachable.
  5. Check the VPS provider’s security group, network firewall, or edge ACL. An upstream block cannot be overridden by firewalld on the guest.

For a web server, also verify that the service is bound to the expected hostname and address and that any TLS configuration is valid. For a custom application, compare the externally tested port with the port in the service’s configuration rather than assuming they match.

Best Value
Sale
HUANUO FlowLift™ Dual Monitor Stand, Fully Adjustable Gaming Monitor Desk Mount for 13–32″ Computer Screens, Full Motion VESA 75x75/100x100 with C-Clamp & Grommet Base, Each Arm Holds 4.4 to 19.8 lbs
  • Compatible with Wide Screens - To ensure compatibility with the dual monitor mount, your each monitor must meet three conditions at the same time: First, computer screens size range: 13 to 32 inches. Second, screen weight range: 4.4 to 19.8 lbs. Third, the back of the monitor screen must have VESA mounting holes with a pitch of 75x75mm or 100x100mm.
  • Regarding the compatibility with desks - Your desk must meet three conditions at the same time: First, desk material: Only wooden desks are recommended, plastic or glass desks cannot be used. Second, desk thickness range: 0.59" - 3.54". Third, the bottom of the desk should not have any cross beams or panels, as this will interfere with installation. We recommend carefully checking that your desk and monitors meets all above conditions before purchasing.
  • Dual C-Clamp Hold - Worried your dual monitors might wobble or slip? Our upgraded base uses a larger platform plus a dual C-clamp structure to lock the dual monitor arm firmly to your desk. Each arm safely keeps your screens steady while you type, click and game—no shaking, no sliding, just a clean and secure setup you can trust every day. It also provides Grommet Mounting installation choice, both options ensure stable and secure fixation for your 0.59" - 3.54" desk.
  • Full-Motion Adjustment For Comfortable View - Pull the screen closer when you’re deep in a spreadsheet, push it back to watch videos, or rotate to portrait for coding — moving everything smoothly with just one hand. The monitor stand offers +85°/-50° tilt, ±90° swivel and 360° rotation. Raise your monitor up to 15.75″ to support a healthy sitting posture. Whether you’re working from home, gaming through the night, or switching between video calls and documents, getting the screens to your natural line of sight helps relieve neck, shoulder and back strain so you can stay focused longer with less fatigue.
  • Keep Your Desk Organized: By lifting both screens off the desktop, this dual monitor stand opens up valuable space for your keyboard, notebook, docking station or a simple, clutter-free work area. Built-in cable management guides wires along the arms, keeping cords out of sight and out of the way. Enjoy a tidy, modern workstation that looks as good as it feels to use.

Use zones when interfaces or sources have different trust

Separate zones are useful when one interface or source should receive a different policy from another. For example, an internal interface can have a more permissive application policy while the public interface exposes only SSH and web services. The security benefit comes from the assignment: a carefully written zone does nothing if the interface or source is attached to the wrong one.

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

Inspect assignments with:

sudo firewall-cmd --get-active-zones
sudo firewall-cmd --get-zone-of-interface=eth0

When changing assignments, verify the resulting zone immediately and test through the relevant network path. Treat source-based zones with the same caution as interface-based zones; a source range that is too broad can grant access to more hosts than intended.

Troubleshoot common failures

firewall-cmd --state is not running

Do not continue adding rules while the daemon is stopped. Check the unit and its boot journal:

sudo systemctl status firewalld --no-pager
sudo journalctl -u firewalld -b --no-pager

Resolve the service or configuration error, start firewalld, and then inspect the active zones before applying policy.

A rule disappeared after reboot or reload

The rule was probably added only to runtime. Add the permanent form or copy a tested runtime policy with:

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
sudo firewall-cmd --runtime-to-permanent

If the rule vanished after a reload rather than a reboot, check whether you edited the permanent configuration and then reloaded from an older saved state. Compare --list-all with --permanent --list-all for the same zone.

SSH disconnected

Use the provider console or another out-of-band path to restore the SSH service or the actual custom port in the zone assigned to the public interface. Do not blindly add the rule to public if inspection shows another zone owns the interface. After recovery, keep a second session open while correcting and testing the permanent policy.

The rule looks correct but the service is unreachable

Check the application’s listening socket, interface binding, protocol, and address family. Then inspect provider-level security controls. A guest firewall rule cannot compensate for a process that is stopped, listening only on loopback, using UDP instead of TCP, or blocked before traffic reaches the VPS.

A custom service needs many ports

Consider a named firewalld service definition so the policy remains understandable and maintainable. If the requirement is conditional access, source filtering, or logging, use a rich rule and validate its syntax. Avoid concealing a large port set in undocumented one-off commands.

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

A repeatable setup sequence

For a new Linux VPS, the following order minimizes lockouts and makes the final state auditable:

  1. Install firewalld with the distribution’s package manager and enable it with sudo systemctl enable --now firewalld.
  2. Confirm sudo firewall-cmd --state reports running.
  3. Discover the active zone and interface with --get-active-zones and --get-zone-of-interface.
  4. Allow SSH in that zone, using either the predefined service or the actual custom port.
  5. Open only the HTTP, HTTPS, and application ports the VPS requires.
  6. Test the runtime policy from a second session and from an external machine.
  7. Copy the tested policy to permanent storage with --runtime-to-permanent, or add permanent rules directly.
  8. Reload firewalld and verify the zone, services, ports, and application listeners.
  9. Reboot during a planned maintenance window if you need to prove the saved policy survives a full service start, then repeat the verification.

Final checklist

  • The daemon is running and enabled.
  • The public interface and its owning zone are known.
  • SSH access is allowed on the real port before other exposure is reduced.
  • Only required services and exact protocols are open.
  • Runtime and permanent configurations agree.
  • Reload and reboot behavior have been considered.
  • The application is listening locally.
  • External tests succeed.
  • Any provider-level firewall permits the same intended traffic.

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 quests from Patch Notes

  1. How to Set Up a RedM (RDR2) Server in 2026: License Key, txAdmin and server.cfg, Step by StepBlog11min
  2. Best RedM (RDR2) Server Hosting in 2026: Comparing Four Hosts on Slots, Memory and PriceBlog10min
  3. How to Host a Mindustry Server in 2026: server-release.jar, Port 6567 and the Commands That MatterBlog7min
Recommended PC Tool
Recommended PC Tool
Outdated Drivers Are Slowing You DownFree scan - exact matches
PC Slower Than It Used to Be?Free scan - under a minute

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.