netcat and telnet for iPhone (2026): Testing Ports from iOS
Short version. iOS has no shell, so no nc and no telnet. The most common use of both, "is this port actually open", works fine on a phone: PingKit runs TCP connect checks free, on single ports or any range up to 65535. What you cannot do is hold the connection open and type into it.
Half the time someone runs telnet host 25 they are not using telnet as a protocol at all. They are asking a much simpler question: can anything connect to that port. That question is answerable from an iPhone.
Full disclosure: I build PingKit, so weigh the recommendation accordingly. The limits section below is not padding, and the point of these pages is to tell you when the answer is "use a computer".
Separating the Two Uses
Connectivity testing. Does the port accept a TCP connection? This is a connect-and-close operation and works on iOS.
Interactive protocol work. Connect, then type EHLO or GET / HTTP/1.0 and read the reply. This needs an interactive socket session, and iOS apps have no terminal to give you.
| Use | On iPhone |
|---|---|
| Is port 443 open on this host? | Yes |
| Which ports are open in a range? | Yes, TCP connect scan |
| Is the service reachable from cellular but not WiFi? | Yes, and genuinely useful |
| Type raw SMTP commands | No |
| Grab a service banner | Partly, only what a normal connection reveals |
nc -l, listen on a port | No |
| Transfer a file over a raw socket | No |
UDP testing (nc -u) | No |
What PingKit Does
Port Scanner performs TCP connect checks against a host. You can use a top-ports preset, ports 1 to 1024, a web-ports preset, or set any custom range up to 65535. Open ports are reported with the service normally associated with them.
For HTTP specifically, HTTP Analyzer is the better tool than a raw socket: it sends a real request with your own method, headers and body and shows the full response. That covers most of what people used to do by typing into telnet on port 80.
The test worth running twice. Check the port over WiFi, then turn WiFi off and check again over cellular. If it opens on one and not the other, the service is fine and the problem is your local network, a firewall or your ISP. That is a two-minute test that saves a lot of guessing, and it is one a laptop on the same LAN cannot perform.
Honest Limits
- TCP only. PingKit does not probe UDP. Full UDP scanning also needs raw sockets, which iOS does not grant, so nothing on the platform can distinguish a closed UDP port from a filtered one.
- No interactive session. You cannot connect and type.
- No listening mode. An iOS app cannot usefully act as a
nc -lstyle listener. - Full-range scans are slow. A TCP connect scan of all 65535 ports takes far longer from a phone than a SYN scan would from a desktop.
- Your own network and hosts you own. This is not built for scanning infrastructure you do not administer.
Other Options
iSH provides an Alpine shell where nc can be installed, which does give you interactive raw sockets, slowly.
An SSH client connecting to a real machine remains the complete answer if you have a server to reach, and it is the right tool for genuine protocol work.
Frequently Asked Questions
Is there a netcat app for iPhone?
Not as a command. iOS provides no shell. You can install netcat inside the iSH Alpine Linux emulator, or use a port scanner app for the common case of checking whether a TCP port is open.
How do I check if a port is open from my iPhone?
Use a TCP port scanner. PingKit's Port Scanner checks single ports, presets, or any custom range up to 65535, free. It reports which ports accept a connection and the service normally associated with them.
Can I use telnet on iPhone to test SMTP?
Not natively. Typing raw SMTP commands needs an interactive socket session, which iOS apps cannot provide. You can confirm the port accepts a connection, but not conduct the conversation. Use SSH to a real machine, or iSH, for that.
Can iPhone test UDP ports?
Not fully. Telling a closed UDP port from a filtered one relies on ICMP port-unreachable replies, which need raw sockets that iOS does not grant. An app can send a UDP datagram and detect a service that answers, but there is no true equivalent of nc -u.
Why does a port look open on cellular but closed on WiFi?
Something on your local path is blocking it: a router firewall, network policy, or your ISP. The service itself is fine. Testing from both connections on the same device is the fastest way to isolate this.
Check the port in seconds
TCP port scanning on single ports, presets or any custom range, plus HTTP analysis, ping and 16 more tools. Free, no ads.
Download PingKit Free