Port reference
Port 19 (UDP/TCP) – CharGEN
Character Generator — a legacy debugging service that emits a stream of characters in response to any input.
Quick facts
- Transport
- udp, tcp
- Category
- Well-known
- Risk level
- High
Frequently targeted — restrict exposure and harden it.
Default state
Disabled on modern systems. Historically enabled via inetd on Unix and as a Simple TCP/IP Service on older Windows.
What is port 19 used for?
Port 19 runs the Character Generator Protocol (CharGEN), defined in RFC 864 as
a network debugging and measurement aid. When it receives any input it replies with
a stream of arbitrary characters, which old tools used to test throughput and
print-out behaviour. It shipped with Unix's inetd and as a Windows Simple TCP/IP
Service, but it has no real use on modern networks and is almost always left off.
When would you open it?
There is rarely a good reason to. The only practical scenario is reviving a piece of vintage equipment or running a deliberate test against legacy software that still speaks CharGEN. Only enable it if you specifically run that service and need it for testing.
Is it safe to open?
The big risk is that CharGEN's large replies make it an easy amplification source for DDoS attacks, so never expose it to the internet and keep it on a trusted LAN or VPN. See the security notes below.
How to check if this port is open
ss -tulpn | grep :19
nmap -p 19 <target>netstat -ano | findstr :19
Test-NetConnection <host> -Port 19lsof -i :19
nmap -p 19 <target>How to open this port on your router
To reach this service from outside your network, forward the port on your router:
- Open your router's admin page (usually http://192.168.1.1 or http://192.168.0.1) and sign in.
- Find the "Port Forwarding" section — it may be called NAT, Virtual Server, or Applications & Gaming.
- Add a rule forwarding external port 19 to your device's local IP, internal port 19, protocol TCP/UDP.
- Save and reboot the router if prompted, then test the port from outside your network.
Only forward ports you understand — it exposes that device to the public internet. For remote admin access, a VPN is safer than forwarding the port.
Allow this port through the firewall
sudo ufw allow 19/tcpsudo firewall-cmd --permanent --add-port=19/tcp
sudo firewall-cmd --reloadsudo iptables -A INPUT -p tcp --dport 19 -j ACCEPTNew-NetFirewallRule -DisplayName "Allow 19" -Direction Inbound -Protocol TCP -LocalPort 19 -Action AllowSecurity & risks
Common attacks
- UDP amplification / reflection DDoS
- Resource exhaustion via paired echo (port 7) and chargen loops
Hardening
- Disable CharGEN entirely — it has no modern use
- Remove Simple TCP/IP Services on Windows and the chargen line from inetd/xinetd
- Block UDP/TCP 19 at the network edge
- Never expose chargen to untrusted networks
How to block this port
sudo ufw deny 19/tcpsudo firewall-cmd --permanent --remove-port=19/tcp
sudo firewall-cmd --reloadsudo iptables -A INPUT -p tcp --dport 19 -j DROPNew-NetFirewallRule -DisplayName "Block 19" -Direction Inbound -Protocol TCP -LocalPort 19 -Action Blocknmap snippet
nmap -sU -p19 --script chargen <target>Replace <target> with the host or range you're authorized to scan.
Related ports
Frequently asked questions
- What is port 19 used for?
- Port 19 is the Character Generator (CharGEN) protocol, a 1980s debugging tool that replies to any packet with a stream of characters. It is obsolete and should be disabled.
- Why is CharGEN a DDoS risk?
- A small spoofed UDP request triggers a much larger reply, so open chargen servers are abused as reflectors/amplifiers to flood third-party victims.