Open one port to one address
Firewall syntax is one of those things that is easy once and irritating every time after. This holds the correct form for each platform so you are not reading three sets of documentation to allow one port.
The rules here all say the same thing: accept UDP on the port you nominate, but only from our source address. That is deliberately narrower than the minimum. You could open the port to everything and it would work. You would also be accepting datagrams from anyone who found the port, and since UDP sources are trivially spoofable, that is a bad habit to build.
Method
The port parser accepts an integer from 1 through 65535. It rejects ranges, service names, decimal points, shell characters, and pasted commands. The source address is fixed rather than entered by the visitor.
text
direction = inbound
protocol = UDP
source = 64.130.40.90/32
destination_port = validated port
action = allowThe generator substitutes the validated port into a fixed template. It does not run the command. It cannot determine the correct chain, interface, cloud project, security group, instance tag, or persistence method without operator input.
iptables
For UDP port 9000:
bash
sudo iptables -I INPUT 1 -p udp -s 64.130.40.90/32 --dport 9000 -j ACCEPT
sudo iptables -C INPUT -p udp -s 64.130.40.90/32 --dport 9000 -j ACCEPTInsert places the rule at position one. Inspect iptables-save before applying because a managed host may use a custom chain. Persistence depends on the distribution.
nftables
Assuming an existing inet table named filter and input chain named input:
bash
sudo nft insert rule inet filter input ip saddr 64.130.40.90 udp dport 9000 counter accept
sudo nft list chain inet filter inputTable and chain names are local policy. The counter reveals whether matching packets reached this boundary. The tool asks for validated names rather than assuming that creating a new base chain is safe.
ufw
The ufw form is:
bash
sudo ufw allow proto udp from 64.130.40.90 to any port 9000
sudo ufw status numberedCheck whether ufw is active and whether another firewall manager owns the host. A displayed host rule says nothing about cloud ingress.
AWS security groups
Use custom UDP, port 9000, and source 64.130.40.90/32. The CLI form needs the security group attached to the receiver:
bash
aws ec2 authorize-security-group-ingress --group-id sg-REPLACE --ip-permissions 'IpProtocol=udp,FromPort=9000,ToPort=9000,IpRanges=[{CidrIp=64.130.40.90/32,Description=shredstream.sh}]'Network ACLs, routes, public IP mapping, load balancers, and the host firewall remain separate. Replace only the security-group ID and generated port.
GCP firewall rules
A network-tag target keeps the rule scoped to receiver instances:
bash
gcloud compute firewall-rules create allow-shredstream-udp-9000 --direction=INGRESS --action=ALLOW --rules=udp:9000 --source-ranges=64.130.40.90/32 --target-tags=shred-receiverAttach the shred-receiver tag to the intended instance. Select the correct project and network. Hierarchical policy or a higher-priority deny can still block the traffic. A service-account target is another valid design, so the tool presents it as a separate option.
Order matters more than you expect
On ufw, firewalld and cloud security groups, rules are evaluated as a set and the specific allow will be honoured. On raw iptables and nftables, rules are evaluated in order, and an earlier DROP wins over a later ACCEPT. If you paste an accept rule at the bottom of a chain that already drops everything, nothing changes and it looks like the rule did not work.
Insert rather than append when you are unsure. The generated iptables rule uses -I for that reason.
Cloud security groups
If your server is on a cloud provider, you almost certainly have two firewalls: the one on the machine and the one in the provider's console. Both must allow the traffic. Fixing only the one you remember is the single commonest reason a correctly configured host still receives nothing.
Worked example
Assume an AWS instance listens on UDP 9000 and also runs ufw. Add the AWS rule to the security group attached to its network interface. Add the ufw rule on the host. Bind the receiver to the intended local interface and port.
Run the endpoint tester. If the AWS boundary records traffic but the ufw counter stays zero, inspect routes, network interfaces, and public-address mapping. If the ufw counter rises but the process reads nothing, inspect socket binding, network namespace, competing listeners, and receive errors.
The free test sends five real datagrams from 64.130.40.90. A successful result proves reachability at that moment. It does not reproduce the measured 54.3 Mbps and 5,585 packets per second production load.
Security and scope
Source filtering reduces unrelated internet traffic. It is not cryptographic authentication because UDP source addresses can be spoofed on permissive networks. Verify shred signatures under the receiver's policy.
The feed is one-way UDP. No return UDP rule is required. The endpoint test's temporary receiver reports its nonce through outbound HTTPS so the browser can display arrival.
Containers and Kubernetes can add namespaces, host rules, service policy, and provider policy. IPv6 rules are outside this IPv4 source contract. The tool does not open a port range because one destination uses one port.
Checking it worked
Do not trust the rule, test it. Start a listener and use the endpoint tester. A rule that looks right and a path that works are different claims, and only one of them can be verified from where you are sitting.
The activation challenge expires after 600 seconds. It verifies the selected destination, not persistence across a restart. Save host rules through the platform's configuration process and retest after changes.
How it works out the answer
Validate an integer UDP destination port from 1 through 65535, then substitute it into fixed platform templates. Every rule limits the source to 64.130.40.90 or 64.130.40.90/32. The tool prints prerequisites and verification commands but does not apply changes, infer rule order, choose cloud targets, or resolve NAT.
Questions
- Why restrict the firewall by source address?
- The verification packet and stream come from 64.130.40.90, so a /32 allowlist removes unrelated internet traffic from the receiver port. It also makes rule counters easier to interpret. Source filtering is not cryptographic authentication because UDP addresses can be spoofed on some networks.
- Why can traffic fail after adding a cloud rule?
- The host firewall, network ACL, route, public-address mapping, load balancer, namespace, or socket binding can still block delivery. Check counters from the outer cloud boundary toward the process, then run the free endpoint tester against the exact public IP and UDP port.
- Does the receiver need an outbound UDP rule?
- No outbound UDP packet is required for the one-way feed. The endpoint test's temporary receiver reports arrival through outbound HTTPS so the browser can update. A restrictive host may need HTTPS egress for that report, but production feed delivery remains inbound UDP.