Articles
Ansible
Ansible best practices
Ansible explanations
Ansible vs Terraform: when to use which
Ansible how-to guides
How to deploy files with Ansible templates
How to set up Ansible inventory for multiple environments
How to use Ansible Vault for secret management
Ansible playbook directives and modules reference
Ansible command snippets
Ansible troubleshooting
Ansible: Permission denied
Ansible: UNREACHABLE host
Ansible tutorials
Ansible tutorial: automate server setup from scratch
Apache HTTP Server
.htaccess
.htaccess best practices
.htaccess explanations
.htaccess how-to guides
How to set up authentication with .htaccess
How to locate the .htaccess file
.htaccess snippets
.htaccess troubleshooting
Apache .htaccess: 403 Forbidden
Apache .htaccess: 500 Internal Server Error
.htaccess tutorials
awk
awk explanations
awk vs sed vs grep: when to use which
awk how-to guides
How to count occurrences with awk
How to extract columns from CSV files with awk
How to parse Nginx access logs with awk
awk built-in variables and functions reference
awk command snippets
awk troubleshooting
awk: syntax error at source line
awk: wrong output from incorrect field separator
BeautifulSoup (bs4)
BeautifulSoup best practices
BeautifulSoup explanations
BeautifulSoup snippets
BeautifulSoup troubleshooting
BeautifulSoup tutorials
BeautifulSoup tutorial: scrape authenticated pages with session cookies
BeautifulSoup tutorial: scrape e-commerce product data to CSV
BeautifulSoup tutorial: scrape a website for links, titles, and navigation
Certbot
Certbot how-to guides
How to set up automatic certificate renewal with Certbot
How to issue an SSL certificate with Certbot for Apache
How to issue an SSL certificate with Certbot for Nginx
How to issue a wildcard SSL certificate with Certbot DNS challenge
Certbot troubleshooting
Certbot: Some challenges have failed
Certbot: Connection refused during ACME challenge
Certbot: The requested nginx plugin does not appear to be installed
Certbot: Certificate not yet due for renewal
Certbot: Too many certificates already issued
CORS (Cross-Origin Resource Sharing)
CORS best practices
CORS how-to guides
How to configure CORS on Amazon S3
How to configure CORS on Apache HTTP Server
How to configure CORS on Nginx
How to configure CORS in Node.js with Express
How to configure CORS in PHP
How to configure CORS in Python Django
How to configure CORS in Python Flask
CORS headers reference
CORS troubleshooting
CORS: Cross origin requests are only supported for HTTP
CORS: No 'Access-Control-Allow-Origin' header is present on the requested resource
CORS: Origin is not allowed by Access-Control-Allow-Origin
CORS tutorials
CORS tutorial: How Cross-Origin Resource Sharing works
Crontab
Crontab how-to guides
How to schedule a script with crontab
Crontab expression reference
Crontab troubleshooting
Crontab: job not running
curl
curl explanations
curl vs wget: when to use which
curl how-to guides
How to send authenticated requests with curl
How to follow redirects with curl
How to use curl with a proxy server
How to upload a file with curl
curl flags and options reference
curl command snippets
curl troubleshooting
curl: (7) Failed to connect — Connection refused
curl: (56) Recv failure: Connection reset by peer
curl: (28) Operation timed out
curl: (60) SSL certificate problem: unable to get local issuer certificate
dig
dig Explanations
dig How-To Guides
How to Set Default Options with the .digrc File
How to Trace the DNS Delegation Path with dig
How to Look Up a Domain by IP Address with dig
How to Find a Domain IP Address with dig
How to Query a Domain Using a Specific DNS Server with dig
How to Query DNS Records with dig
dig Command Reference
dig Command Snippets
Docker
Docker explanations
Docker volumes vs bind mounts: when to use which
Docker how-to guides
How to debug a crashing Docker container
How to fix Docker bypassing UFW firewall rules
How to persist MySQL data with Docker volumes
How to run Nginx with Docker and Docker Compose
Docker troubleshooting
Docker: bind mount permission denied
Docker Compose: depends_on does not wait for service to be ready
Docker: network not found
Docker: no space left on device
Docker: permission denied while trying to connect to the Docker daemon socket
Docker: port is already allocated
Fail2Ban
Fail2Ban best practices
Fail2Ban how-to guides
How to configure Fail2Ban with UFW
How to create a custom Fail2Ban filter
How to protect Nginx with a Fail2Ban jail
How to whitelist IPs in Fail2Ban
Fail2Ban jail.local directives reference
Fail2Ban command snippets
Fail2Ban troubleshooting
Fail2Ban: bans not blocking traffic
Fail2Ban: iptables not found
Fail2Ban: locked out of own server
Fail2Ban: not detecting failed logins
Fail2Ban tutorials
Fail2Ban tutorial: install and configure from scratch
Git
Git explanations
Git rebase vs merge: when to use which
Git how-to guides
How to use .gitignore to exclude files
How to resolve a merge conflict in Git
How to revert a commit in Git
How to track server configs with Git
Git commands and flags reference
Git command snippets
Git troubleshooting
Git: HEAD detached at commit
Git: error: failed to push some refs
Git: CONFLICT (content): Merge conflict in file
Git: fatal: not a git repository
Git tutorials
Git tutorial: version control for sysadmins
grep
grep explanations
grep vs egrep vs fgrep vs ripgrep: which to use
grep how-to guides
How to combine grep with find, awk, and xargs
How to filter log files with grep
How to use grep with regular expressions
How to search for a string in multiple files with grep
grep flags and regex reference
grep troubleshooting
grep: Binary file matches
grep: Invalid regular expression
grep: No such file or directory
host
host explanations
host vs dig vs nslookup: which DNS tool to use
host how-to guides
How to check DNS records with host
host troubleshooting
host: connection timed out; no servers could be reached
ipconfig
ipconfig explanations
ipconfig how-to guides
How to find your IP address with ipconfig
How to find your MAC address with ipconfig
How to parse ipconfig output with PHP
How to save ipconfig output to a text file
ipconfig command reference
ipconfig command snippets
ipconfig troubleshooting
ipconfig: Unable to contact your DHCP server
ipconfig: Default gateway is blank or missing
ipconfig: IPv4 address is missing or shows 0.0.0.0
ipconfig: The operation failed as no adapter is in the state permissible for this operation
iptables / nftables
iptables explanations
iptables vs nftables: key differences and migration
iptables how-to guides
How to migrate iptables rules to nftables
How to persist firewall rules across reboots
How to forward a port with iptables
How to rate-limit connections with iptables
iptables and nftables commands reference
iptables command snippets
iptables troubleshooting
iptables: Docker bypasses firewall rules
iptables: rules lost after reboot
iptables tutorials
iptables tutorial: configure a Linux firewall from scratch
Logrotate
Logrotate how-to guides
How to avoid Apache restart during Logrotate rotation
How to check Logrotate status
How to install Logrotate on Ubuntu
How to move rotated logs to a different folder with Logrotate
How to remove old log files with Logrotate
How to set maximum log file size with Logrotate
How to add timestamps to rotated log filenames with Logrotate
Logrotate directives reference
Logrotate command snippets
Logrotate troubleshooting
Logrotate: lines must begin with a keyword or a filename
Logrotate: logs are not rotating
Logrotate: Permission denied
Logrotate tutorials
Logrotate tutorial: configure log rotation from scratch
MySQL / MariaDB CLI
MySQL how-to guides
How to back up and restore a MySQL database with mysqldump
How to check and repair MySQL tables
How to import a large SQL file into MySQL
How to reset the MySQL root password
MySQL CLI and mysqldump reference
MySQL troubleshooting
MySQL: ERROR 1045 (28000): Access denied for user
MySQL: ERROR 1049 (42000): Unknown database
MySQL: ERROR 2002 (HY000): Can't connect to local MySQL server through socket
MySQL: ERROR 2003 (HY000): Can't connect to MySQL server on host
MySQL: Table is marked as crashed and should be repaired
Nginx
nginx.conf
nginx.conf best practices
nginx.conf explanations
nginx.conf how-to guides
How to change file upload size in nginx.conf
How to host multiple domains on one server in nginx.conf
How to disable server_tokens in nginx.conf
nginx.conf snippets
nginx.conf troubleshooting
Nginx: connect() to php-fpm.sock failed (13: Permission denied)
Nginx: connection reset by peer while reading upstream
Nginx downloads PHP files instead of executing them
Nginx: 403 Forbidden
Nginx: 502 Bad Gateway
Nginx: 504 Gateway Timeout
Nginx: upstream sent too big header while reading response header
nginx.conf tutorials
Nginx tutorial: configure request logging
Nginx tutorial: secure a web server
nslookup
nslookup explanations
nslookup how-to guides
How to change the timeout interval with nslookup
How to check DNS records with nslookup
How to check MX records with nslookup
How to check PTR records with nslookup
How to install nslookup on Ubuntu
How to perform a reverse DNS lookup with nslookup
How to specify a DNS server with nslookup
How to use debug mode with nslookup
nslookup command reference
nslookup command snippets
nslookup tutorials
nslookup tutorial: interactive mode
OpenSSL
OpenSSL how-to guides
How to check a website's SSL certificate with OpenSSL
How to convert certificate formats with OpenSSL
How to generate a self-signed certificate with OpenSSL
How to verify a certificate chain with OpenSSL
OpenSSL command reference
OpenSSL troubleshooting
OpenSSL: certificate has expired
OpenSSL: self-signed certificate in certificate chain
OpenSSL: unable to get local issuer certificate
OpenSSL: wrong version number
phpMyAdmin
phpMyAdmin best practices
phpMyAdmin reference
phpMyAdmin troubleshooting
phpMyAdmin tutorials
phpMyAdmin tutorial: create and manage databases
phpMyAdmin tutorial: install and configure
phpMyAdmin tutorial: advanced operations
phpMyAdmin tutorial: build a student information system
ping
ping explanations
ping vs traceroute: when to use which
ping how-to guides
How to test network connectivity with ping
ping troubleshooting
ping: Destination Host Unreachable
Rsync
Rsync explanations
Rsync vs SCP: which to use for recurring transfers
Rsync how-to guides
How to copy files and folders with Rsync
How to create a destination folder with Rsync
How to install Rsync
How to schedule Rsync via cron job
How to run Rsync through SSH tunnel
Rsync flags and options reference
Rsync command snippets
Rsync troubleshooting
Rsync: failed to set permissions on
Rsync: failed to set times on
Rsync: error in rsync protocol data stream
Rsync: transfer hangs or freezes
sed
sed explanations
GNU sed vs BSD sed: key differences
sed how-to guides
How to use sed with regex groups and back-references
How to remove comments from a config file with sed
How to replace text in multiple files with sed
sed commands and flags reference
sed command snippets
sed troubleshooting
sed: macOS in-place edit fails with extra characters error
sed: unknown command
SEO Bots
robots.txt
robots.txt best practices
robots.txt snippets
SSH
SSH how-to guides
How to copy files over SSH with SCP
How to set up SSH key-based authentication
How to use SSH config for multiple servers
How to create an SSH tunnel for port forwarding
SSH config directives reference
SSH troubleshooting
SSH: Connection refused
SSH: Connection timed out
SSH: Host key verification failed
SSH: Permission denied (publickey)
SSH: Too many authentication failures
systemd (systemctl / journalctl)
systemd best practices
systemd explanations
systemd timers vs cron: when to use which
systemd how-to guides
How to create a custom service unit with systemd
How to debug a failing service with systemd
How to override a packaged unit file with systemd drop-ins
How to replace a cron job with a systemd timer
How to set resource limits for a service with systemd
How to view logs for a specific service with journalctl
systemd unit file directives reference
systemd command snippets
systemd troubleshooting
systemd: control process exited with error code
systemd: A dependency job failed
systemd: service exits immediately after starting
systemd: Failed to start {service}
systemd: unit is masked
systemd tutorials
systemd tutorial: manage services from scratch
tcpdump
tcpdump explanations
tcpdump vs Wireshark: when to use which
tcpdump how-to guides
How to capture traffic between two specific hosts with tcpdump
How to capture HTTP traffic with tcpdump
How to debug DNS queries with tcpdump
How to rotate capture files with tcpdump
tcpdump flags and BPF filter reference
tcpdump command snippets
tcpdump troubleshooting
tcpdump: No suitable device found
tcpdump: permission denied
Traceroute
Traceroute explanations
Traceroute how-to guides
How to Use Traceroute with IPv6
How to Read Traceroute Results
Traceroute command reference
Traceroute command snippets
Traceroute troubleshooting
Traceroute: !A (Administratively prohibited)
Traceroute: !P (Incompatible protocol)
Traceroute: !N (Network unreachable)
UFW (Uncomplicated Firewall)
UFW explanations
UFW vs iptables vs nftables: when to use which
UFW how-to guides
How to allow traffic from a specific IP address with UFW
How to allow a specific port through UFW
How to recover from UFW SSH lockout
How to set up UFW with Nginx
UFW troubleshooting
UFW: connection refused after enabling
UFW: Docker bypasses UFW rules
UFW: rules not taking effect
WireGuard
WireGuard explanations
WireGuard vs OpenVPN: when to use which
WireGuard how-to guides
How to configure a WireGuard client
How to route all traffic through a WireGuard tunnel
How to set up a WireGuard VPN server on Ubuntu
WireGuard configuration directives reference
WireGuard command snippets
WireGuard troubleshooting
WireGuard: DNS resolution fails over tunnel
WireGuard: no handshake between peers
WireGuard: no internet access through tunnel
XAMPP
XAMPP how-to guides
How to set up Apache virtual hosts in XAMPP
How to install XAMPP on Windows
How to install WordPress with XAMPP
How to locate the MariaDB error log in XAMPP
How to locate the PHP error log in XAMPP
How to locate php.ini in XAMPP
How to access the MariaDB command line in XAMPP
How to reset the MariaDB password in XAMPP
XAMPP troubleshooting
XAMPP: Apache shutdown unexpectedly
XAMPP: MySQL shutdown unexpectedly
XAMPP tutorials
XAMPP tutorial: access localhost from another device
XAMPP tutorial: run multiple PHP versions on Windows
Guides
How to debug DNS issues with dig, nslookup, and traceroute
How to set up a local development environment with XAMPP and phpMyAdmin
How to manage web server logs with Logrotate and Nginx
How to set up a production web server with Nginx, SSL, and CORS
Meta
Changelog
Contributing to the Console9 Wiki
Glossary
Console9
Wiki
Meta
Console9
Navigate
Articles
Ansible
Ansible best practices
Ansible explanations
Ansible vs Terraform: when to use which
Ansible how-to guides
How to deploy files with Ansible templates
How to set up Ansible inventory for multiple environments
How to use Ansible Vault for secret management
Ansible playbook directives and modules reference
Ansible command snippets
Ansible troubleshooting
Ansible: Permission denied
Ansible: UNREACHABLE host
Ansible tutorials
Ansible tutorial: automate server setup from scratch
Apache HTTP Server
.htaccess
.htaccess best practices
.htaccess explanations
.htaccess how-to guides
How to set up authentication with .htaccess
How to locate the .htaccess file
.htaccess snippets
.htaccess troubleshooting
Apache .htaccess: 403 Forbidden
Apache .htaccess: 500 Internal Server Error
.htaccess tutorials
awk
awk explanations
awk vs sed vs grep: when to use which
awk how-to guides
How to count occurrences with awk
How to extract columns from CSV files with awk
How to parse Nginx access logs with awk
awk built-in variables and functions reference
awk command snippets
awk troubleshooting
awk: syntax error at source line
awk: wrong output from incorrect field separator
BeautifulSoup (bs4)
BeautifulSoup best practices
BeautifulSoup explanations
BeautifulSoup snippets
BeautifulSoup troubleshooting
BeautifulSoup tutorials
BeautifulSoup tutorial: scrape authenticated pages with session cookies
BeautifulSoup tutorial: scrape e-commerce product data to CSV
BeautifulSoup tutorial: scrape a website for links, titles, and navigation
Certbot
Certbot how-to guides
How to set up automatic certificate renewal with Certbot
How to issue an SSL certificate with Certbot for Apache
How to issue an SSL certificate with Certbot for Nginx
How to issue a wildcard SSL certificate with Certbot DNS challenge
Certbot troubleshooting
Certbot: Some challenges have failed
Certbot: Connection refused during ACME challenge
Certbot: The requested nginx plugin does not appear to be installed
Certbot: Certificate not yet due for renewal
Certbot: Too many certificates already issued
CORS (Cross-Origin Resource Sharing)
CORS best practices
CORS how-to guides
How to configure CORS on Amazon S3
How to configure CORS on Apache HTTP Server
How to configure CORS on Nginx
How to configure CORS in Node.js with Express
How to configure CORS in PHP
How to configure CORS in Python Django
How to configure CORS in Python Flask
CORS headers reference
CORS troubleshooting
CORS: Cross origin requests are only supported for HTTP
CORS: No 'Access-Control-Allow-Origin' header is present on the requested resource
CORS: Origin is not allowed by Access-Control-Allow-Origin
CORS tutorials
CORS tutorial: How Cross-Origin Resource Sharing works
Crontab
Crontab how-to guides
How to schedule a script with crontab
Crontab expression reference
Crontab troubleshooting
Crontab: job not running
curl
curl explanations
curl vs wget: when to use which
curl how-to guides
How to send authenticated requests with curl
How to follow redirects with curl
How to use curl with a proxy server
How to upload a file with curl
curl flags and options reference
curl command snippets
curl troubleshooting
curl: (7) Failed to connect — Connection refused
curl: (56) Recv failure: Connection reset by peer
curl: (28) Operation timed out
curl: (60) SSL certificate problem: unable to get local issuer certificate
dig
dig Explanations
dig How-To Guides
How to Set Default Options with the .digrc File
How to Trace the DNS Delegation Path with dig
How to Look Up a Domain by IP Address with dig
How to Find a Domain IP Address with dig
How to Query a Domain Using a Specific DNS Server with dig
How to Query DNS Records with dig
dig Command Reference
dig Command Snippets
Docker
Docker explanations
Docker volumes vs bind mounts: when to use which
Docker how-to guides
How to debug a crashing Docker container
How to fix Docker bypassing UFW firewall rules
How to persist MySQL data with Docker volumes
How to run Nginx with Docker and Docker Compose
Docker troubleshooting
Docker: bind mount permission denied
Docker Compose: depends_on does not wait for service to be ready
Docker: network not found
Docker: no space left on device
Docker: permission denied while trying to connect to the Docker daemon socket
Docker: port is already allocated
Fail2Ban
Fail2Ban best practices
Fail2Ban how-to guides
How to configure Fail2Ban with UFW
How to create a custom Fail2Ban filter
How to protect Nginx with a Fail2Ban jail
How to whitelist IPs in Fail2Ban
Fail2Ban jail.local directives reference
Fail2Ban command snippets
Fail2Ban troubleshooting
Fail2Ban: bans not blocking traffic
Fail2Ban: iptables not found
Fail2Ban: locked out of own server
Fail2Ban: not detecting failed logins
Fail2Ban tutorials
Fail2Ban tutorial: install and configure from scratch
Git
Git explanations
Git rebase vs merge: when to use which
Git how-to guides
How to use .gitignore to exclude files
How to resolve a merge conflict in Git
How to revert a commit in Git
How to track server configs with Git
Git commands and flags reference
Git command snippets
Git troubleshooting
Git: HEAD detached at commit
Git: error: failed to push some refs
Git: CONFLICT (content): Merge conflict in file
Git: fatal: not a git repository
Git tutorials
Git tutorial: version control for sysadmins
grep
grep explanations
grep vs egrep vs fgrep vs ripgrep: which to use
grep how-to guides
How to combine grep with find, awk, and xargs
How to filter log files with grep
How to use grep with regular expressions
How to search for a string in multiple files with grep
grep flags and regex reference
grep troubleshooting
grep: Binary file matches
grep: Invalid regular expression
grep: No such file or directory
host
host explanations
host vs dig vs nslookup: which DNS tool to use
host how-to guides
How to check DNS records with host
host troubleshooting
host: connection timed out; no servers could be reached
ipconfig
ipconfig explanations
ipconfig how-to guides
How to find your IP address with ipconfig
How to find your MAC address with ipconfig
How to parse ipconfig output with PHP
How to save ipconfig output to a text file
ipconfig command reference
ipconfig command snippets
ipconfig troubleshooting
ipconfig: Unable to contact your DHCP server
ipconfig: Default gateway is blank or missing
ipconfig: IPv4 address is missing or shows 0.0.0.0
ipconfig: The operation failed as no adapter is in the state permissible for this operation
iptables / nftables
iptables explanations
iptables vs nftables: key differences and migration
iptables how-to guides
How to migrate iptables rules to nftables
How to persist firewall rules across reboots
How to forward a port with iptables
How to rate-limit connections with iptables
iptables and nftables commands reference
iptables command snippets
iptables troubleshooting
iptables: Docker bypasses firewall rules
iptables: rules lost after reboot
iptables tutorials
iptables tutorial: configure a Linux firewall from scratch
Logrotate
Logrotate how-to guides
How to avoid Apache restart during Logrotate rotation
How to check Logrotate status
How to install Logrotate on Ubuntu
How to move rotated logs to a different folder with Logrotate
How to remove old log files with Logrotate
How to set maximum log file size with Logrotate
How to add timestamps to rotated log filenames with Logrotate
Logrotate directives reference
Logrotate command snippets
Logrotate troubleshooting
Logrotate: lines must begin with a keyword or a filename
Logrotate: logs are not rotating
Logrotate: Permission denied
Logrotate tutorials
Logrotate tutorial: configure log rotation from scratch
MySQL / MariaDB CLI
MySQL how-to guides
How to back up and restore a MySQL database with mysqldump
How to check and repair MySQL tables
How to import a large SQL file into MySQL
How to reset the MySQL root password
MySQL CLI and mysqldump reference
MySQL troubleshooting
MySQL: ERROR 1045 (28000): Access denied for user
MySQL: ERROR 1049 (42000): Unknown database
MySQL: ERROR 2002 (HY000): Can't connect to local MySQL server through socket
MySQL: ERROR 2003 (HY000): Can't connect to MySQL server on host
MySQL: Table is marked as crashed and should be repaired
Nginx
nginx.conf
nginx.conf best practices
nginx.conf explanations
nginx.conf how-to guides
How to change file upload size in nginx.conf
How to host multiple domains on one server in nginx.conf
How to disable server_tokens in nginx.conf
nginx.conf snippets
nginx.conf troubleshooting
Nginx: connect() to php-fpm.sock failed (13: Permission denied)
Nginx: connection reset by peer while reading upstream
Nginx downloads PHP files instead of executing them
Nginx: 403 Forbidden
Nginx: 502 Bad Gateway
Nginx: 504 Gateway Timeout
Nginx: upstream sent too big header while reading response header
nginx.conf tutorials
Nginx tutorial: configure request logging
Nginx tutorial: secure a web server
nslookup
nslookup explanations
nslookup how-to guides
How to change the timeout interval with nslookup
How to check DNS records with nslookup
How to check MX records with nslookup
How to check PTR records with nslookup
How to install nslookup on Ubuntu
How to perform a reverse DNS lookup with nslookup
How to specify a DNS server with nslookup
How to use debug mode with nslookup
nslookup command reference
nslookup command snippets
nslookup tutorials
nslookup tutorial: interactive mode
OpenSSL
OpenSSL how-to guides
How to check a website's SSL certificate with OpenSSL
How to convert certificate formats with OpenSSL
How to generate a self-signed certificate with OpenSSL
How to verify a certificate chain with OpenSSL
OpenSSL command reference
OpenSSL troubleshooting
OpenSSL: certificate has expired
OpenSSL: self-signed certificate in certificate chain
OpenSSL: unable to get local issuer certificate
OpenSSL: wrong version number
phpMyAdmin
phpMyAdmin best practices
phpMyAdmin reference
phpMyAdmin troubleshooting
phpMyAdmin tutorials
phpMyAdmin tutorial: create and manage databases
phpMyAdmin tutorial: install and configure
phpMyAdmin tutorial: advanced operations
phpMyAdmin tutorial: build a student information system
ping
ping explanations
ping vs traceroute: when to use which
ping how-to guides
How to test network connectivity with ping
ping troubleshooting
ping: Destination Host Unreachable
Rsync
Rsync explanations
Rsync vs SCP: which to use for recurring transfers
Rsync how-to guides
How to copy files and folders with Rsync
How to create a destination folder with Rsync
How to install Rsync
How to schedule Rsync via cron job
How to run Rsync through SSH tunnel
Rsync flags and options reference
Rsync command snippets
Rsync troubleshooting
Rsync: failed to set permissions on
Rsync: failed to set times on
Rsync: error in rsync protocol data stream
Rsync: transfer hangs or freezes
sed
sed explanations
GNU sed vs BSD sed: key differences
sed how-to guides
How to use sed with regex groups and back-references
How to remove comments from a config file with sed
How to replace text in multiple files with sed
sed commands and flags reference
sed command snippets
sed troubleshooting
sed: macOS in-place edit fails with extra characters error
sed: unknown command
SEO Bots
robots.txt
robots.txt best practices
robots.txt snippets
SSH
SSH how-to guides
How to copy files over SSH with SCP
How to set up SSH key-based authentication
How to use SSH config for multiple servers
How to create an SSH tunnel for port forwarding
SSH config directives reference
SSH troubleshooting
SSH: Connection refused
SSH: Connection timed out
SSH: Host key verification failed
SSH: Permission denied (publickey)
SSH: Too many authentication failures
systemd (systemctl / journalctl)
systemd best practices
systemd explanations
systemd timers vs cron: when to use which
systemd how-to guides
How to create a custom service unit with systemd
How to debug a failing service with systemd
How to override a packaged unit file with systemd drop-ins
How to replace a cron job with a systemd timer
How to set resource limits for a service with systemd
How to view logs for a specific service with journalctl
systemd unit file directives reference
systemd command snippets
systemd troubleshooting
systemd: control process exited with error code
systemd: A dependency job failed
systemd: service exits immediately after starting
systemd: Failed to start {service}
systemd: unit is masked
systemd tutorials
systemd tutorial: manage services from scratch
tcpdump
tcpdump explanations
tcpdump vs Wireshark: when to use which
tcpdump how-to guides
How to capture traffic between two specific hosts with tcpdump
How to capture HTTP traffic with tcpdump
How to debug DNS queries with tcpdump
How to rotate capture files with tcpdump
tcpdump flags and BPF filter reference
tcpdump command snippets
tcpdump troubleshooting
tcpdump: No suitable device found
tcpdump: permission denied
Traceroute
Traceroute explanations
Traceroute how-to guides
How to Use Traceroute with IPv6
How to Read Traceroute Results
Traceroute command reference
Traceroute command snippets
Traceroute troubleshooting
Traceroute: !A (Administratively prohibited)
Traceroute: !P (Incompatible protocol)
Traceroute: !N (Network unreachable)
UFW (Uncomplicated Firewall)
UFW explanations
UFW vs iptables vs nftables: when to use which
UFW how-to guides
How to allow traffic from a specific IP address with UFW
How to allow a specific port through UFW
How to recover from UFW SSH lockout
How to set up UFW with Nginx
UFW troubleshooting
UFW: connection refused after enabling
UFW: Docker bypasses UFW rules
UFW: rules not taking effect
WireGuard
WireGuard explanations
WireGuard vs OpenVPN: when to use which
WireGuard how-to guides
How to configure a WireGuard client
How to route all traffic through a WireGuard tunnel
How to set up a WireGuard VPN server on Ubuntu
WireGuard configuration directives reference
WireGuard command snippets
WireGuard troubleshooting
WireGuard: DNS resolution fails over tunnel
WireGuard: no handshake between peers
WireGuard: no internet access through tunnel
XAMPP
XAMPP how-to guides
How to set up Apache virtual hosts in XAMPP
How to install XAMPP on Windows
How to install WordPress with XAMPP
How to locate the MariaDB error log in XAMPP
How to locate the PHP error log in XAMPP
How to locate php.ini in XAMPP
How to access the MariaDB command line in XAMPP
How to reset the MariaDB password in XAMPP
XAMPP troubleshooting
XAMPP: Apache shutdown unexpectedly
XAMPP: MySQL shutdown unexpectedly
XAMPP tutorials
XAMPP tutorial: access localhost from another device
XAMPP tutorial: run multiple PHP versions on Windows
Guides
How to debug DNS issues with dig, nslookup, and traceroute
How to set up a local development environment with XAMPP and phpMyAdmin
How to manage web server logs with Logrotate and Nginx
How to set up a production web server with Nginx, SSL, and CORS
Meta
Changelog
Contributing to the Console9 Wiki
Glossary
Meta
Changelog
Contributing to the Console9 Wiki
About this wiki: contributing guidelines and changelog.
Information about the Console9 Wiki itself.