- How to Install doctl
- cancel-event
- cancel-job-invocation
- console
- create
- create-deployment
- delete
- get
- get-deployment
- get-event
- get-job-invocation
- list
- list-alerts
- list-buildpacks
- list-deployments
- list-events
- list-instances
- list-job-invocations
- list-regions
- logs
- propose
- restart
- update
- update-alert-destinations
- upgrade-buildpack
- doctl version
- Manage Load Balancers with doctl
- 1-Click Applications
- Account
- Actions
- Add-Ons
- Apps
- Billing
- Block Storage
- Block Storage Actions
- BYOIP Prefixes
- CDN Endpoints
- Certificates
- Container Registries
- Container Registry
- Databases
- Dedicated Inference
- Domain Records
- Domains
- Droplet Actions
- Droplet Autoscale Pools
- Droplets
- Firewalls
- Floating IP Actions
- Floating IPs
- Functions
- GradientAI Platform
- Image Actions
- Images
- Kubernetes
- Load Balancers
- Monitoring
- NFS
- NFS Actions
- Organizations
- Partner Network Connect
- Project Resources
- Projects
- Regions
- Reserved IP Actions
- Reserved IPs
- Reserved IPv6
- Reserved IPv6 Actions
- Security
- Sizes
- Snapshots
- Spaces Keys
- SSH Keys
- Tags
- Uptime
- Vector Databases
- VPC NAT Gateways
- VPC Peerings
- VPCs
- Create an Access Token
- Manage Model Access Keys
- OAuth API
- Reference
- Configure Remote MCP
- Configure Local MCP
- Accounts
- App Platform
- Dedicated Inference
- DBaaS
- Evaluations
- Batch Inference
- GenAI Custom Models
- DOKS
- GenAI Inference Router
- Container Registry
- Droplets
- Functions
- Insights
- Knowledge Bases
- Model Catalog
- Marketplace
- Networking
- Network File Storage
- Spaces
- Documentation
- Volumes Block Storage
- Vector Database
- Prompting Guidelines
- API Keys
- Paperspace CLI private
- account_info
- actions_info
- app
- apps_info
- balance_info
- billing_history_info
- byoip_prefix
- byoip_prefixes_info
- cdn_endpoints
- cdn_endpoints_info
- certificate
- certificates_info
- container_registry
- container_registry_info
- database_backups_info
- database_cluster
- database_clusters_info
- database_config
- database_config_info
- database_connection_pool
- database_connection_pools_info
- database_db
- database_dbs_info
- database_firewall
- database_firewall_rules_info
- database_maintenance_window
- database_replica
- database_replicas_info
- database_user
- database_users_info
- domain
- domain_record
- domain_records_info
- domains_info
- droplet
- droplet_action_power
- droplet_action_resize
- droplet_action_snapshot
- droplet_autoscale_pool
- droplet_autoscale_pools_info
- droplet_backups_info
- droplet_kernels_info
- droplet_neighbors_info
- droplet_snapshots_info
- droplets_info
- firewall
- firewalls_info
- floating_ip
- floating_ip_action
- floating_ips_info
- function_namespace
- function_namespaces_info
- image
- image_action
- images_info
- invoice_items_info
- invoices_info
- kubernetes_cluster
- kubernetes_clusters_info
- kubernetes_node_pool
- kubernetes_node_pools_info
- load_balancer
- load_balancers_info
- monitoring_alert_policies_info
- monitoring_alert_policy
- nfs
- nfs_action
- nfs_info
- one_click
- one_clicks_info
- project
- project_resource
- project_resources
- project_resources_info
- projects_info
- regions_info
- reserved_ip
- reserved_ip_assign
- reserved_ips_info
- reserved_ipv6
- reserved_ipv6_action
- reserved_ipv6s_info
- sizes_info
- snapshot
- snapshots_info
- space
- spaces_info
- spaces_key
- spaces_keys_info
- ssh_key
- ssh_keys_info
- tag
- tags_info
- uptime_alert
- uptime_alerts_info
- uptime_check
- uptime_checks_info
- uptime_checks_state_info
- volume
- volume_action
- volume_snapshot
- volumes_info
- vpc
- vpc_nat_gateway
- vpc_nat_gateways_info
- vpc_peering
- vpc_peerings_info
- vpcs_info
- Configure Terraform
- digitalocean_app
- digitalocean_byoip_prefix
- digitalocean_cdn
- digitalocean_certificate
- digitalocean_container_registry
- digitalocean_container_registry_docker_credentials
- digitalocean_custom_image
- digitalocean_database_advanced_mysql_config
- digitalocean_database_advanced_postgresql_config
- digitalocean_database_cluster
- digitalocean_database_connection_pool
- digitalocean_database_db
- digitalocean_database_firewall
- digitalocean_database_kafka_config
- digitalocean_database_kafka_schema_registry
- digitalocean_database_kafka_topic
- digitalocean_database_logsink_opensearch
- digitalocean_database_logsink_rsyslog
- digitalocean_database_mongodb_config
- digitalocean_database_mysql_config
- digitalocean_database_online_migration
- digitalocean_database_opensearch_config
- digitalocean_database_postgresql_config
- digitalocean_database_redis_config
- digitalocean_database_replica
- digitalocean_database_user
- digitalocean_database_valkey_config
- digitalocean_dedicated_inference
- digitalocean_dedicated_inference_token
- digitalocean_domain
- digitalocean_droplet
- digitalocean_droplet_autoscale
- digitalocean_droplet_snapshot
- digitalocean_firewall
- digitalocean_floating_ip
- digitalocean_floating_ip_assignment
- digitalocean_genai_agent
- digitalocean_gradientai_agent
- digitalocean_kubernetes_cluster
- digitalocean_kubernetes_node_pool
- digitalocean_loadbalancer
- digitalocean_microdroplet
- digitalocean_microdroplet_image
- digitalocean_monitor_alert
- digitalocean_nfs
- digitalocean_nfs_access_point
- digitalocean_nfs_attachment
- digitalocean_nfs_snapshot
- digitalocean_partner_attachment
- digitalocean_project
- digitalocean_project_resources
- digitalocean_record
- digitalocean_reserved_ip
- digitalocean_reserved_ip_assignment
- digitalocean_reserved_ipv6
- digitalocean_reserved_ipv6_assignment
- digitalocean_spaces_bucket
- digitalocean_spaces_bucket_logging
- digitalocean_spaces_bucket_object
- digitalocean_spaces_bucket_policy
- digitalocean_spaces_cors_configuration
- digitalocean_spaces_key
- digitalocean_ssh_key
- digitalocean_tag
- digitalocean_uptime_alert
- digitalocean_uptime_check
- digitalocean_vector_database
- digitalocean_volume
- digitalocean_volume_attachment
- digitalocean_volume_snapshot
- digitalocean_vpc
- digitalocean_vpc_nat_gateway
- digitalocean_vpc_peering
- digitalocean_account
- digitalocean_app
- digitalocean_byoip_prefix
- digitalocean_byoip_prefix_resources
- digitalocean_certificate
- digitalocean_container_registry
- digitalocean_database_ca
- digitalocean_database_cluster
- digitalocean_database_connection_pool
- digitalocean_database_metrics_credentials
- digitalocean_database_replica
- digitalocean_database_user
- digitalocean_dedicated_inference
- digitalocean_dedicated_inference_accelerators
- digitalocean_dedicated_inference_gpu_model_config
- digitalocean_dedicated_inference_sizes
- digitalocean_dedicated_inference_tokens
- digitalocean_dedicated_inferences
- digitalocean_domain
- digitalocean_domains
- digitalocean_droplet
- digitalocean_droplet_autoscale
- digitalocean_droplet_snapshot
- digitalocean_droplets
- digitalocean_firewall
- digitalocean_floating_ip
- digitalocean_genai_agent
- digitalocean_gradientai_agent
- digitalocean_image
- digitalocean_images
- digitalocean_kubernetes_cluster
- digitalocean_kubernetes_versions
- digitalocean_loadbalancer
- digitalocean_microdroplet
- digitalocean_microdroplet_checkpoints
- digitalocean_microdroplet_image
- digitalocean_microdroplet_images
- digitalocean_microdroplets
- digitalocean_nfs
- digitalocean_nfs_access_point
- digitalocean_nfs_snapshot
- digitalocean_partner_attachment
- digitalocean_partner_attachment_service_key
- digitalocean_project
- digitalocean_projects
- digitalocean_record
- digitalocean_records
- digitalocean_region
- digitalocean_regions
- digitalocean_reserved_ip
- digitalocean_reserved_ipv6
- digitalocean_sizes
- digitalocean_spaces_bucket
- digitalocean_spaces_bucket_object
- digitalocean_spaces_bucket_objects
- digitalocean_spaces_buckets
- digitalocean_spaces_key
- digitalocean_ssh_key
- digitalocean_ssh_keys
- digitalocean_tag
- digitalocean_tags
- digitalocean_vector_database
- digitalocean_volume
- digitalocean_volume_snapshot
- digitalocean_vpc
- digitalocean_vpc_nat_gateway
- digitalocean_vpc_peering
- Deploy a Web App
- assign_alert_destinations()
- cancel_deployment()
- cancel_event()
- cancel_job_invocation()
- commit_rollback()
- create()
- create_deployment()
- create_rollback()
- delete()
- get()
- get_deployment()
- get_event()
- get_event_logs()
- get_exec()
- get_exec_active_deployment()
- get_health()
- get_instance_size()
- get_instances()
- get_job_invocation()
- get_job_invocation_logs()
- get_logs()
- get_logs_active_deployment()
- get_logs_active_deployment_aggregate()
- get_logs_aggregate()
- get_metrics_bandwidth_daily()
- list()
- list_alerts()
- list_deployments()
- list_events()
- list_instance_sizes()
- list_job_invocations()
- list_metrics_bandwidth_daily()
- list_regions()
- restart()
- revert_rollback()
- update()
- validate_app_spec()
- validate_rollback()
- add()
- add_connection_pool()
- add_user()
- create_cluster()
- create_kafka_schema()
- create_kafka_topic()
- create_logsink()
- create_replica()
- delete()
- delete_connection_pool()
- delete_kafka_schema()
- delete_kafka_topic()
- delete_logsink()
- delete_online_migration()
- delete_opensearch_index()
- delete_user()
- destroy_cluster()
- destroy_replica()
- get()
- get_autoscale()
- get_ca()
- get_cluster()
- get_cluster_metrics_credentials()
- get_config()
- get_connection_pool()
- get_do_settings()
- get_eviction_policy()
- get_kafka_schema()
- get_kafka_schema_config()
- get_kafka_schema_subject_config()
- get_kafka_schema_version()
- get_kafka_topic()
- get_logsink()
- get_migration_status()
- get_replica()
- get_sql_mode()
- get_user()
- install_update()
- list()
- list_backups()
- list_clusters()
- list_connection_pools()
- list_events_logs()
- list_firewall_rules()
- list_kafka_schemas()
- list_kafka_topics()
- list_logsink()
- list_opeasearch_indexes()
- list_options()
- list_replicas()
- list_users()
- patch_config()
- promote_replica()
- reset_auth()
- update_autoscale()
- update_cluster_metrics_credentials()
- update_cluster_size()
- update_connection_pool()
- update_do_settings()
- update_eviction_policy()
- update_firewall_rules()
- update_kafka_schema_config()
- update_kafka_schema_subject_config()
- update_kafka_topic()
- update_logsink()
- update_maintenance_window()
- update_major_version()
- update_online_migration()
- update_region()
- update_sql_mode()
- update_user()
- create()
- destroy()
- destroy_by_tag()
- destroy_retry_with_associated_resources()
- destroy_with_associated_resources_dangerous()
- destroy_with_associated_resources_selective()
- get()
- get_backup_policy()
- get_destroy_associated_resources_status()
- list()
- list_associated_resources()
- list_backup_policies()
- list_backups()
- list_firewalls()
- list_kernels()
- list_neighbors()
- list_neighbors_ids()
- list_snapshots()
- list_supported_backup_policies()
- attach_agent()
- attach_agent_function()
- attach_agent_guardrails()
- attach_knowledge_base()
- attach_knowledge_bases()
- cancel_indexing_job()
- cancel_model_evaluation_run()
- create_agent()
- create_agent_api_key()
- create_anthropic_api_key()
- create_custom_evaluation_metric()
- create_data_source_file_upload_presigned_urls()
- create_evaluation_dataset()
- create_evaluation_dataset_file_upload_presigned_urls()
- create_evaluation_test_case()
- create_indexing_job()
- create_knowledge_base()
- create_knowledge_base_data_source()
- create_model_api_key()
- create_model_eval_dataset_upload_presigned_urls()
- create_model_evaluation_run()
- create_model_router()
- create_oauth2_dropbox_tokens()
- create_openai_api_key()
- create_scheduled_indexing()
- create_workspace()
- delete_agent()
- delete_agent_api_key()
- delete_anthropic_api_key()
- delete_custom_evaluation_metric()
- delete_custom_model()
- delete_evaluation_dataset()
- delete_knowledge_base()
- delete_knowledge_base_data_source()
- delete_model_api_key()
- delete_model_evaluation_preset()
- delete_model_evaluation_run()
- delete_model_router()
- delete_openai_api_key()
- delete_scheduled_indexing()
- delete_workspace()
- detach_agent()
- detach_agent_function()
- detach_agent_guardrail()
- detach_knowledge_base()
- get_agent()
- get_agent_children()
- get_agent_usage()
- get_anthropic_api_key()
- get_custom_model()
- get_evaluation_dataset_download_url()
- get_evaluation_run()
- get_evaluation_run_prompt_results()
- get_evaluation_run_results()
- get_evaluation_test_case()
- get_indexing_job()
- get_indexing_job_details_signed_url()
- get_knowledge_base()
- get_model_catalog_card()
- get_model_evaluation_preset()
- get_model_evaluation_run()
- get_model_evaluation_run_results_download_url()
- get_model_router()
- get_oauth2_url()
- get_openai_api_key()
- get_scheduled_indexing()
- get_workspace()
- import_custom_model()
- list_agent_api_keys()
- list_agent_versions()
- list_agents()
- list_agents_by_anthropic_key()
- list_agents_by_openai_key()
- list_agents_by_workspace()
- list_anthropic_api_keys()
- list_custom_models()
- list_datacenter_regions()
- list_evaluation_datasets()
- list_evaluation_metrics()
- list_evaluation_runs_by_test_case()
- list_evaluation_test_cases()
- list_evaluation_test_cases_by_workspace()
- list_indexing_job_data_sources()
- list_indexing_jobs()
- list_indexing_jobs_by_knowledge_base()
- list_knowledge_base_data_sources()
- list_knowledge_bases()
- list_model_api_keys()
- list_model_catalog()
- list_model_evaluation_metrics()
- list_model_evaluation_presets()
- list_model_evaluation_runs()
- list_model_router_presets()
- list_model_router_task_presets()
- list_model_routers()
- list_models()
- list_openai_api_keys()
- list_workspaces()
- regenerate_agent_api_key()
- regenerate_model_api_key()
- rollback_to_agent_version()
- run_evaluation_test_case()
- update_agent()
- update_agent_api_key()
- update_agent_deployment_visibility()
- update_agent_function()
- update_agents_workspace()
- update_anthropic_api_key()
- update_attached_agent()
- update_custom_evaluation_metric()
- update_custom_model_metadata()
- update_evaluation_test_case()
- update_knowledge_base()
- update_knowledge_base_data_source()
- update_model_api_key()
- update_model_evaluation_run()
- update_model_router()
- update_openai_api_key()
- update_workspace()
- add_node_pool()
- add_registries()
- add_registry()
- create_cluster()
- delete_cluster()
- delete_node()
- delete_node_pool()
- destroy_associated_resources_dangerous()
- destroy_associated_resources_selective()
- get_available_upgrades()
- get_cluster()
- get_cluster_lint_results()
- get_cluster_user()
- get_credentials()
- get_kubeconfig()
- get_node_pool()
- get_status_messages()
- list_associated_resources()
- list_clusters()
- list_node_pools()
- list_options()
- recycle_node_pool()
- remove_registries()
- remove_registry()
- run_cluster_lint()
- update_cluster()
- update_node_pool()
- upgrade_cluster()
- create_alert_policy()
- create_destination()
- create_sink()
- delete_alert_policy()
- delete_destination()
- delete_sink()
- get_alert_policy()
- get_app_cpupercentage_metrics()
- get_app_memory_percentage_metrics()
- get_app_restart_count_metrics.yml()
- get_database_mysql_cpu_usage()
- get_database_mysql_disk_usage()
- get_database_mysql_index_vs_sequential_reads()
- get_database_mysql_load()
- get_database_mysql_memory_usage()
- get_database_mysql_op_rates()
- get_database_mysql_schema_latency()
- get_database_mysql_schema_throughput()
- get_database_mysql_threads_active()
- get_database_mysql_threads_connected()
- get_database_mysql_threads_created_rate()
- get_destination()
- get_droplet_autoscale_current_cpu_utilization.yml()
- get_droplet_autoscale_current_instances()
- get_droplet_autoscale_current_memory_utilization()
- get_droplet_autoscale_target_cpu_utilization()
- get_droplet_autoscale_target_instances()
- get_droplet_autoscale_target_memory_utilization()
- get_droplet_bandwidth_metrics()
- get_droplet_cpu_metrics()
- get_droplet_filesystem_free_metrics()
- get_droplet_filesystem_size_metrics()
- get_droplet_load15_metrics()
- get_droplet_load1_metrics()
- get_droplet_load5_metrics()
- get_droplet_memory_available_metrics()
- get_droplet_memory_cached_metrics()
- get_droplet_memory_free_metrics()
- get_droplet_memory_total_metrics()
- get_lb_droplets_connections()
- get_lb_droplets_downtime()
- get_lb_droplets_health_checks()
- get_lb_droplets_http_response_time_50p()
- get_lb_droplets_http_response_time_95p()
- get_lb_droplets_http_response_time_99p()
- get_lb_droplets_http_response_time_avg()
- get_lb_droplets_http_responses()
- get_lb_droplets_http_session_duration_50p()
- get_lb_droplets_http_session_duration_95p()
- get_lb_droplets_http_session_duration_avg()
- get_lb_droplets_queue_size()
- get_lb_frontend_connections_current()
- get_lb_frontend_connections_limit()
- get_lb_frontend_cpu_utilization()
- get_lb_frontend_firewall_dropped_bytes()
- get_lb_frontend_firewall_dropped_packets()
- get_lb_frontend_http_requests_per_second()
- get_lb_frontend_http_responses()
- get_lb_frontend_network_throughput_http()
- get_lb_frontend_network_throughput_tcp()
- get_lb_frontend_network_throughput_udp()
- get_lb_frontend_nlb_tcp_network_throughput()
- get_lb_frontend_nlb_udp_network_throughput()
- get_lb_frontend_tls_connections_current()
- get_lb_frontend_tls_connections_exceeding_rate_limit()
- get_lb_frontend_tls_connections_limit()
- get_sink()
- list_alert_policy()
- list_destinations()
- list_sinks()
- update_alert_policy()
- update_destination()
- create()
- delete()
- delete_repository()
- delete_repository_manifest()
- delete_repository_tag()
- get()
- get_docker_credentials()
- get_garbage_collection()
- get_options()
- get_subscription()
- list()
- list_garbage_collections()
- list_repositories_v2()
- list_repository_manifests()
- list_repository_tags()
- run_garbage_collection()
- update_garbage_collection()
- update_subscription()
- validate_name()
- create()
- delete()
- delete_repository_manifest()
- delete_repository_tag()
- get()
- get_docker_credentials()
- get_garbage_collection()
- get_options()
- get_subscription()
- list_garbage_collections()
- list_repositories()
- list_repositories_v2()
- list_repository_manifests()
- list_repository_tags()
- run_garbage_collection()
- update_garbage_collection()
- update_subscription()
- validate_name()
- create_scan()
- create_scan_rule()
- create_secret()
- create_suppression()
- delete_secret()
- delete_suppression()
- get_latest_scan()
- get_scan()
- get_secret()
- list_scan_finding_affected_resources()
- list_scans()
- list_secret_versions()
- list_secrets()
- list_settings()
- post_restore_secret()
- update_secret()
- update_settings_plan()
-
[libraries.f718f930c4f806c3d2f8548b78661d1b4e835959e441cd3499fb93dac044b021.svg]Libraries
-
[opensource.e3aaf41478fe88f6808cf399b9357d9d23fe3f04f3a9ed58f6cc7b261f2e04c3.svg]Open Source
- doctl compute
- firewall
- add-rules
For AI agents: The documentation index is at https://docs.digitalocean.com/llms.txt. Markdown versions of pages use the same URL with
index.html.mdin place of the HTML page (for example, appendindex.html.mdto the directory path instead of opening the HTML document).
doctl compute firewall add-rules
Generated on 18 Aug 2026
from doctl version
v1.167.0
Usage
doctl compute firewall add-rules <firewall-id> [flags]Description
Add inbound or outbound rules to a cloud firewall.
Example
The following example adds an inbound rule and an outbound rule to a cloud firewall with the ID f81d4fae-7dec-11d0-a765-00a0c91e6bf6:
doctl compute firewall add-rules f81d4fae-7dec-11d0-a765-00a0c91e6bf6 --inbound-rules "protocol:tcp,ports:22,droplet_id:386734086" --outbound-rules "protocol:tcp,ports:22,address:0.0.0.0/0"Flags
| Option | Description |
|---|---|
--help, -h |
Help for this command |
--inbound-rules |
A comma-separated key-value list that defines an inbound rule. The rule must define a communication protocol, a port number, and a traffic source location, such as a Droplet ID, IP address, or a tag. For example, the following rule defines that resources can only receive TCP traffic on port 22 from addresses in the specified CIDR: Available source keys are: Use a quoted string of space-separated values for multiple rules. |
--outbound-rules |
A comma-separate key-value list that defines an outbound rule. The rule must define a communication protocol, a port number, and a destination location, such as a Droplet ID, IP address, or a tag. For example, the following rule defines that the firewall only allows traffic to be sent to port 22 of any IPv4 address on the internet: Available destination keys are: Use a quoted string of space-separated values for multiple rules. |
Related Commands
| Command | Description |
|---|---|
| doctl compute firewall | Display commands to manage cloud firewalls |
Global Flags
| Option | Description |
|---|---|
--access-token, -t |
API V2 access token |
--api-url, -u |
Override default API endpoint |
--config, -c |
Specify a custom config file Default: |
--context |
Specify a custom authentication context name |
--http-retry-max |
Set maximum number of retries for requests that fail with a 429 or 500-level error
Default: 5 |
--http-retry-wait-max |
Set the minimum number of seconds to wait before retrying a failed request
Default: 30 |
--http-retry-wait-min |
Set the maximum number of seconds to wait before retrying a failed request
Default: 1 |
--interactive |
Enable interactive behavior. Defaults to true if the terminal supports it (default false)
Default: false |
--output, -o |
Desired output format [text|json] Default: text |
--trace |
Show a log of network activity while performing a command Default: false |
--verbose, -v |
Enable verbose output Default: false |
In this article...