I'm trying to set up a tor node following http://sickbits.net/creating-a-personal-privoxytorproxy-ec2-instance/ using ubuntu 14.4 lts on ec2. I've gotten to:

$ ssh [email protected] -i .ssh/Amazon-Proxy.pem.txt -L50000:localhost:8118 -f -N I tried:

$ ssh ubuntu@ec2-52-**-***-**.us-west-2.compute.amazonaws.com -i f:tproxy.pem -L50000:localhost:8118 -f -N ssh: connect to host ec2-52-**-***-**.us-west-2.compute.amazonaws.com port 22: Bad file number ~$ netstat -an -f inet -L


Displays protocol statistics and current TCP/IP network connections. NETSTAT [-a] [-b] [-e] [-f] [-n] [-o] [-p proto] [-r] [-s] [-t] [interval] -a Displays all connections and listening ports. -b Displays the executable involved in creating each connection or listening port. In some cases well-known executables host multiple independent components, and in these cases the sequence of components involved in creating the connection or listening port is displayed. In this case the executable name is in [] at the bottom, on top is the component it called, and so forth until TCP/IP was reached. Note that this option can be time-consuming and will fail unless you have sufficient permissions. -e Displays Ethernet statistics. This may be combined with the -s option. -f Displays Fully Qualified Domain Names (FQDN) for foreign addresses. -n Displays addresses and port numbers in numerical form. -o Displays the owning process ID associated with each connection. -p proto Shows connections for the protocol specified by proto; proto may be any of: TCP, UDP, TCPv6, or UDPv6. If used with the -s option to display per-protocol statistics, proto may be any of: IP, IPv6, ICMP, ICMPv6, TCP, TCPv6, UDP, or UDPv6. -r Displays the routing table. -s Displays per-protocol statistics. By default, statistics are shown for IP, IPv6, ICMP, ICMPv6, TCP, TCPv6, UDP, and UDPv6; the -p option may be used to specify a subset of the default. -t Displays the current connection offload state. interval Redisplays selected statistics, pausing interval seconds between each display. Press CTRL+C to stop redisplaying statistics. If omitted, netstat will print the current configuration information once.

I tried:netstat -an -f inet -L

Windows' netstat doesn't have -L - and may call it something else. Do you think its any of the above options. Also any idea what the 'Bad file number' means?


$ netstat -a | find "LISTENING"
find: LISTENING: No such file or directory

But I can see using just "$ netstat -a" that:

TCP    **.***.**.***:51621    stackoverflow:https    ESTABLISHED
TCP    **.***.**.***:51627    ec2-52-**-***-**:ssh   ESTABLISHED
  • 1
    Try netstat -a | find "LISTENING"
    – DavidPostill
    Feb 24, 2015 at 15:56
  • Shrug. Unix netstat -l -- "List Sockets which are in Listening State". There is no -L (capital L) flag. You need to clarify your question :/
    – DavidPostill
    Feb 24, 2015 at 17:56
  • Unix ssh does have a -L port host hostport option. Is your question about ssh or netstat?
    – DavidPostill
    Feb 24, 2015 at 18:01
  • Hi David, thanks for looking at this, I was just interested in finding the windows equivalent for "netstat -an -f inet -L" in the article above. Feb 24, 2015 at 18:05
  • Also any idea what the 'Bad file number" refers to ? Feb 24, 2015 at 18:06

1 Answer 1


Okay, the "netstat -a | find "LISTENING"" was meant for Microsoft Windows. In Windows, find is more similar to Unix's grep, rather than Unix's locate. The output you showed suggests you ran it in Unix.

The -L for SSH specifies a local port. I don't see -L listed in Ubuntu's man page for netstat, nor in the netstat help/output that you show, which appears (at a quick glance) to be (identical to) the help that netstat shows in Windows 7. (I'm not sure which version of Windows you were trying to use).

What were you trying to accomplish? In other words, what did you think that -L would do in netstat? Keep in mind that parameters are specific to individual programs. Many programs try to use similar parameters, to make things easy, but just because one program supports -L doesn't mean that another program will support -L. Even if both programs support -L, that doesn't mean that both programs treat this the same way.

For example, some Unix netstat commands may support "-f inet" to specify the IPv4 family of addresses, while Microsfot Windows's bundled-in netstat command uses -f entirely different (to show FQDNs on the remote addresses), so Microsoft Windows would then treat the word inet to mean something entirely different.

So, to summarize, I'm saying that -L doesn't do anything in Ubuntu's netstat (based on documentation). So the equivalent for Microsoft Windows's netstat would be -L or another nonsensical option. That is the actual, technically-correct answer to the question that was actually asked. Since I know that's not really the answer you're looking for, try creating a new question that asks what you're actually seeking to accomplish.

Your ssh line includes both -i f:tproxy.pem and a later -f. I'm presuming that you're trying to use F:TProxy.pem in Microsoft Windows. If you're using an OpenSSH ported to Microsoft Windows, this is software that was designed for OpenBSD being ported to Microsoft Windows. With BSD/Unix software that is ported like this, support for other drive letters (like f:) may often be non-existent, or cumbersome. Try running the software from F: so that you can specify the file without needing to specify a drive letter. (Refer to the file from the same drive.) After you get that working, feel free to play with the command line to see if you can get things working when you run the command from other drives. In other words, don't struggle with multiple challenges at once, when avoidable.

Since your prompt looks like a dollar sign, it appears your prompt is rather Unix-like. I'm suspecting that the whole "f:" thing is really throwing things off.

However, another idea is that MoovWeb article seems to blame OpenSSH's "bad file number" error on an inability to create the network connection, quite possibly due to a firewall.


You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .