
Finch – local port forwarding - lachgr
https://meetfinch.com/
======
jrajav
Looks pretty similar to ngrok, aside from the fact that ngrok has an
unrestricted free tier.

(Looks like ngrok.com is down at the moment:
[http://web.archive.org/web/20140504031732/https://ngrok.com/](http://web.archive.org/web/20140504031732/https://ngrok.com/)
)

~~~
lachgr
It looks also very similar to Localtunnel
([https://localtunnel.me](https://localtunnel.me)), except that Localtunnel is
free and open source, so that you can run it on your own server. But Finch
seems to be a little more user-friendly (easy forwarding of url's, for
example).

~~~
johns
And that localtunnel.me is a Node.js "port" of the original localtunnel (which
has been superceded by ngrok):
[https://github.com/progrium/localtunnel](https://github.com/progrium/localtunnel)

------
ppierald
It's important to know that your content, intellectual property, and possibly
confidential user data including full http request/responses are being proxied
by this service. Their privacy policy is vague about what they will do with
this information other than to say they will collect and process it:

[https://meetfinch.com/privacy](https://meetfinch.com/privacy)

"In running and maintaining our website we may collect and process the
following data about you:

Information about your use of our site including details of your visits such
as pages viewed and the resources that you access. Such information includes
traffic data, location data and other communication data. Information provided
voluntarily by you. For example, when you register for information or make a
purchase. Information that you provide when you communicate with us by any
means."

~~~
lachgr
I think that all of these type of services are able to access your content.
Maybe the don't do so, but unless you run this on your own server, your data
is in principle accessible by the service.

~~~
ppierald
Agreed. Just want to point it out to those that jump in head first without
understanding the consequences of that action. You might get fired from your
job for doing this or severly reprimanded. You might unwittingly cause a
production data breach for some reason you never even imagined. So it's a
message of be careful and understand fully what you are doing.

------
Cieplak

        ssh -R 80:localhost:8080 ubuntu@some-ec2-instance -i key.pem

~~~
__david__
This has been my technique for a long time. I usually add -N, since there's
usually no need to do anything on that host.

------
justincormack
Or give everything an ipv6 address and just use DNS. Once you get accustomed
to every VM and every container and every little experiment having a routeable
IP address life gets easier.

~~~
jnbiche
Would you happen to know of any good tutorials for this? Are you talking about
using something like Docker?

What exactly is your workflow?

Thank you.

~~~
justincormack
Allocate a /64 to any machine that runs VMs or containers. Then I tend to just
run radvd which will broadcast the prefix so that hosts can auto assign; for
virtual hosts letting them auto assign based on mac address is usually fine,
as the mac address is random or you assign explicitly (explicit is often
easiest). Its fairly simple, just get ipv6 and start using it...

------
regularjack
If you're using vagrant v1.5+, there's vagrant share:
[http://docs.vagrantup.com/v2/share/](http://docs.vagrantup.com/v2/share/).

Requires a vagrantcloud account, free during beta:
[https://vagrantcloud.com/](https://vagrantcloud.com/)

~~~
mitchellh
I want to jump in here and officially say that Vagrant Share in its current
form will likely be free forever.

~~~
taternuts
Awesome, that's good to hear!

------
justintocci
Its crazy the data people will hand over to total strangers for the promise of
a little convenience.

------
keeran
Looks like [http://proxylocal.com/](http://proxylocal.com/) (and others), but
implemented in Node.js ?

Would be interesting to see a chart & timeline of similar services and
products reimplemented each time a new tech comes around...

~~~
johns
[http://john-sheehan.com/blog/a-survey-of-the-localhost-proxy...](http://john-
sheehan.com/blog/a-survey-of-the-localhost-proxying-landscape)

I guess I need to update this now.

~~~
sciurus
If you're updating it, could you note that the PageKite client and server are
open source?

[https://pagekite.net/wiki/OpenSource/](https://pagekite.net/wiki/OpenSource/)

~~~
johns
Adding now

------
tomrod
Huh. And here I figured Finch was command-line pidgin. What happens when names
collide in open source world?

~~~
hyperair
Basically one of either outcomes happen: 1\. Maintainers of both projects
fight it out and one project gets renamed. Users are happy. Packagers are
happy.

2\. Maintainers of both projects fight it out and neither compromise. Users of
both projects (intersection of the sets, rather than union) are pissed.
Packagers are even more pissed, and put in an annoying and difficult
situation, and forced to come out with weird hacky solutions to appease users.
([https://bugs.debian.org/cgi-
bin/bugreport.cgi?bug=614907](https://bugs.debian.org/cgi-
bin/bugreport.cgi?bug=614907))

To any of you who read this and find yourself naming a project in the future,
do your users some justice and at least do some cursory Googling before
settling on a name. And please don't pick annoying-to-Google names like + or *
or - or _ or some other one- or two-character name.

------
robobro
The name looked familiar... then I realized, there's multiple Finches.
[https://developer.pidgin.im/wiki/Using%20Finch](https://developer.pidgin.im/wiki/Using%20Finch)

------
jonalmeida
Some of the subdomain URLs it creates are pretty hilarious. I got
[https://massive-boys.usefinch.com/](https://massive-boys.usefinch.com/)

------
motowilliams
As yet another alternative Runscope Passageway
[https://www.runscope.com/docs/passageway](https://www.runscope.com/docs/passageway)

~~~
johns
It's a crowded space :) [http://john-sheehan.com/blog/a-survey-of-the-
localhost-proxy...](http://john-sheehan.com/blog/a-survey-of-the-localhost-
proxying-landscape)

------
unhammer
How is it different from Pagekite? (Apart from requiring node.)

------
tvon
FWIW, if you just want to forward a port you can run:

    
    
        natpmpc -a 9077 9000 tcp 36000
    

which will forward 9077 to 9000 for 3600 seconds.

~~~
voltagex_
Mac user (or at least Airport Express)? NAT-PMP is a competitor to uPNP which
is more likely to be implemented on a consumer grade router.

[http://v2.nat32.com/upnpc.htm](http://v2.nat32.com/upnpc.htm)

It looks like the upnpc and natpmpc apps are in the same package though.

~~~
tvon
Yeah, I came across `natpmpc` when I discovered the Airport Express at the
office does not support uPNP. Our new Asus N66U supports NAT-PMP so I thought
maybe it was more common these days.

------
dscpls
It would be nice to make a upnp version of this for when you're on the same
network, you just don't want to mess with finding your ip

------
jqm
This looks cool but I couldn't imagine putting a development concept through
someone I don't know's server.

------
jschuur
You appear to have 10 hours of traffic a month right now, while it's in beta:

[https://meetfinch.com/pricing](https://meetfinch.com/pricing)

Once they roll out paid plans, their 20 hour/month plan is $15/month. And (at
least based on their pricing page now) you don't get reserved subdomains until
the $25/month option, so you end up getting a random URL whenever you set a
site up (again).

------
csswizardry
I’ve been using Finch for quite a while now, and I absolutely love it. As a
lot of people have pointed out, there are several alternatives and/or
competitors. But, as @lachgr points out, Finch is very user-friendly, which—to
a designery type like me—is invaluable.

------
Mizza
I've made the trip from localtunnel to pagekite to ngrok.. Ngrok is the
greatest of all time. Being able to intercept, modify and replay is a life
safer when debugging webhooks.

[https://ngrok.com](https://ngrok.com)

Good there's competition though.

------
tedchs
Like I said for the last one of these, your own VPS or server plus 2 lines of
Nginx config plus ssh -R gets you the same thing with no additional
dependency. And you control the domain name.

